2. Installation des bibliothèques

La raison pour laquelle bash n'a pas voulu se lancer est la suivante: /bin/bash est dynamiquement lié à certaines bibliothèques. Il s'agit donc de trouver lesquelles, de les copier au bon endroit dans la nouvelle racine /mnt/chroot, et de recommencer. Pour cela, ldd est notre ami:

# ldd /bin/bash
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40020000)
libdl.so.2 => /lib/libdl.so.2 (0x40025000)
libc.so.6 => /lib/i686/libc.so.6 (0x40029000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
	

Copions ces fichiers, et les fichiers sur lesquels ils pointent quand il s'agit d'un lien, au bon endroit (vérifiez comme moi que vous n'en copiez pas trop quand vous mettez une étoile) :

cp /lib/libtermcap.so* /mnt/chroot/lib
cp /lib/libdl* /mnt/chroot/lib
cp /lib/libc.so* /mnt/chroot/lib
cp /lib/libc-* /mnt/chroot/lib
cp /lib/ld* /mnt/chroot/lib
	

Et maintenant, recommençons:

# chroot /mnt/chroot/ /bin/bash
[I have no name!@localhost /]# 

Cela a marché! Allons plus loin pour vérifier que nous sommes bien à la nouvelle racine:

[I have no name!@localhost /]# ls
bash: ls: command not found
	

Dommage, cela semblait si simple, finalement!

création est mise à disposition sous un contrat Creative Commons