2

Я пытаюсь понять chroot.

Я пытаюсь запустить просто команду "ls" в среде chroot.

Поэтому я скопировал "ls" и "bash" и их зависимости (как показано ldd) в соответствующие каталоги bin, lib, lib64 в новом корневом каталоге и выполнил команду chroot. Но я получаю следующую ошибку.

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/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# 

Затем я создал образ Debian с помощью "debootstap" и затем мог выполнить "chroot" без каких-либо ошибок.

Итак, что я пытался сделать неправильно?

1 ответ1

3

Вы должны запустить chroot /home/vignesh/my_chroot/ /bin/bash . Первый аргумент - это где chroot, а второй - команда. Путь команды зависит от того, где вы используете chroot.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .