私はChrootを理解しようとしています。
Chroot環境で「LS」コマンドだけを実行しようとしています。
そのため、新しいルートディレクトリのlib64ディレクトリとran chrootコマンドのlib64ディレクトリに "LS"と "Bash"とその依存関係とその依存関係をコピーしました。しかし、私は次のエラーが発生します。
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#
_
その後、「DebootStap」を使用してDebianイメージを作成し、エラーなしで「chroot」を実行できます。
だから、私が間違ってみたものは何でもですか?
chroot /home/vignesh/my_chroot/ /bin/bash
を実行する必要があります。最初の引数は、Chrootと2番目のコマンドの場所です。コマンドのパスは、CHROOTを基準にしています。