O que fiz foi criar um diretório chamado Thunderbolt
na minha pasta pessoal. Então, para os executáveis que eu queria, executei ldd
e copiei as bibliotecas necessárias e o executável real no meu diretório Thunderbolt
, como
$ ldd /bin/bash
linux-gate.so.1 => (0xb7781000)
libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xb7743000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb773e000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7593000)
/lib/ld-linux.so.2 (0xb7782000)
Para o próprio Java, junto com a cópia das bibliotecas necessárias, usei mount --bind
para ligar o diretório inicial do Java ( /usr/lib/jvm/java-7-openjdk-i386/
):
$ mount --bind -o ro /usr/lib/jvm/java-7-openjdk-i386/ sys/java/
Para executar o chroot
, criei um script chamado thunderbolt
que chamava .profile
(que configurava o ambiente) do que executava meu aplicativo Java ( /sys/Thunderbolt.sys
é um arquivo Jar, acabei de alterar a extensão) :
source /.profile
/sys/java/bin/java -jar /sys/Thunderbolt.sys Files
Para executar o chroot
, usei o seguinte comando
sudo chroot /home/mspencer/Thunderbolt /bin/bash /thunderbolt
NOTA: Isso não funciona perfeitamente ainda, estou recebendo este aviso sempre que executo o Java: OpenJDK Server VM warning: Can't detect initial thread stack location - find_vma failed