chroot: не удалось запустить команду '/bin/bash': такого файла или каталога нет

chroot: не удалось запустить команду '/bin/bash': такого файла или каталога нет

При запуске chrootкоманды выдается ошибка:

failed to run command ‘/bin/bash’: No such file or directory 

решение1

/bin/bashЭта ошибка означает, что каталог отсутствует.внутри chroot. Убедитесь, что вы указали ему местонахождение bashисполняемого файла (или другой оболочки) в chrootкаталоге.

Если у вас есть, /mnt/somedir/usr/bin/bashто выполните chroot /mnt/somedir /usr/bin/bash.

Помимо вышесказанного, вам также необходимо добавить libcзависимости каталогов, как указано в ответе.здесь.

решение2

У меня был /bin/bashвнутренний chrooted каталог, но у меня не было /libи /lib64внутри него. Сообщение от chrootмогло бы быть более описательным. "нет такого файла или каталога" на самом деле означает "Я не могу запустить это...".

/bin/bashзависит, конечно libc, от ld-linux, libdlи т. д., вы можете использовать ldd /bin/bash, чтобы увидеть, какие библиотеки требуются.

  1. Вы можете найти mount -o bindэти каталоги в разделеchroot
  2. Или вы можете скопировать эти библиотеки в chroot, если вы не уверены, что chrooted-окружение не повредит их, например так:
    cp -a /usr rootfs/
    cp -a /lib rootfs/
    cp -a /lib64 rootfs/
    

решение3

chrootпытается запустить оболочку, установленную в $SHELLпеременной окружения по умолчанию, но ищет ее в новом корневом каталоге, который, похоже, не содержит /bin/bash, поэтому она не может запуститься.

Вы можете указать chroot запустить другую программу внутри нового корня, просто добавив ее в качестве параметра:

chroot /your/new/root /bin/foo --options...

Обратите внимание, что путь команды интерпретируетсявнутриваш новый корень, поэтому в этом примере вызываемая программа на самом деле находится в/your/new/root/bin/foo

решение4

Я получал ту же ошибку при попытке ssh к chrooted-аккаунту на удаленном сервере. В моем случае в удаленном каталоге lib64 отсутствовал следующий файл.Сервер Centos6.9

ld-linux-x86-64.so.2

Это было исправлено путем выполнения следующего:

cp /lib64/ld-linux-x86-64.so.2 /secure/jail/lib64/

Связанный контент