benötigen Erläuterungen zum Befehl chroot

423
Vignesh k

Ich versuche, chroot zu verstehen.

Ich versuche, nur den Befehl "ls" in der chroot-Umgebung auszuführen.

Also habe ich "ls" und "bash" und ihre Abhängigkeiten (wie von ldd gezeigt) in die entsprechenden Verzeichnisse bin, lib, lib64 im neuen Stammverzeichnis kopiert und den Befehl chroot ausgeführt. Aber ich bekomme folgenden Fehler.

root@vig-debian:/home/vignesh# chroot /home/vignesh/my_chroot/ my_chroot/bin/bash  chroot: failed to run command ‘my_chroot/bin/bash’: No such file or directory 

Unten sind Protokolle von dem, was ich versucht habe.

================================================== =======

root@vig-debian:/home/vignesh/my_chroot# mkdir bin  root@vig-debian:/home/vignesh/my_chroot# mkdir lib  root@vig-debian:/home/vignesh/my_chroot# mkdir lib64  root@vig-debian:/home/vignesh/my_choot# cp /bin/ls bin/  root@vig-debian:/home/vignesh/my_choot# cp /bin/bash bin/  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot# ldd bin/ls  linux-vdso.so.1 (0x00007ffd463f2000)  libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fa1e4bf8000)  libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007fa1e49ef000)  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa1e4644000)  libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fa1e43d6000)  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa1e41d2000)  /lib64/ld-linux-x86-64.so.2 (0x00007fa1e4e1d000)  libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007fa1e3fcd000)  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa1e3db0000)  root@vig-debian:/home/vignesh/my_chroot# ldd bin/bash  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot#  linux-vdso.so.1 (0x00007fff276dd000)  libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007f5ecbaab000)  libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f5ecb881000)  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5ecb67d000)  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5ecb2d2000)  /lib64/ld-linux-x86-64.so.2 (0x00007f5ecbcd0000)  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot# cp /lib/x86_64-linux-gnu/libselinux.so.1 /lib/x86_64-linux-gnu/libacl.so.1 /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libpcre.so.3 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libattr.so.1 /lib/x86_64-linux-gnu/libpthread.so.0 lib/  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot# cp /lib64/ld-linux-x86-64.so.2 lib64/  root@vig-debian:/home/vignesh/my_chroot# cp /lib/x86_64-linux-gnu/libncurses.so.5 /lib/x86_64-linux-gnu/libtinfo.so.5 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libc.so.6 lib/  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot#  root@vig-debian:/home/vignesh/my_chroot# ls  bin lib lib64  root@vig-debian:/home/vignesh/my_chroot# cd ../  root@vig-debian:/home/vignesh# chroot /home/vignesh/my_chroot/ my_chroot/bin/bash  chroot: failed to run command ‘my_chroot/bin/bash’: No such file or directory root@vig-debian:/home/vignesh#  

Ich habe dann ein Debian-Image mit "debootstap" erstellt und konnte dann "chroot" ohne Fehler ausführen.

Ist das, was ich versucht habe, falsch?

2

1 Antwort auf die Frage

3
pim

Du solltest laufen chroot /home/vignesh/my_chroot/ /bin/bash. Das erste Argument ist, wo chroot und das zweite der Befehl ist. Der Pfad des Befehls ist relativ zu dem Ort, an dem Sie chroot sind.