2015-11-10 3 views
3

В процессе попытки спасти незагружаемой систему Debian Jessie, я получаю следующее сообщение об ошибке при попытке Chroot:корневым: не удалось выполнить команду «/ bin/баш»: Нет такого файла или каталога

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

Я искал сайт, и это связано с 64-битным/32-битным столкновением (chrooting от 32 бит до 64 бит или наоборот), но я не вижу, как это можно применить здесь, так как я спасаю 64-битную систему с 64-битной жить-гибрид-Debian-USB-палки.

/bin/bash находится в каталоге chroot, а также зависит от библиотеки, согласно ldd.

У кого-нибудь есть идея, что вызывает ошибку?

Ниже приведены мои точки монтирования, а лс

# mount |grep mnt 
/dev/mapper/centos_vh200-root on /mnt/vh2 type ext4 (rw,relatime,data=ordered) 
/dev/sda1 on /mnt/vh2/boot type ext4 (rw,relatime,data=ordered) 
none on /mnt/vh2/proc type proc (rw,relatime) 
devtmpfs on /mnt/vh2/dev type devtmpfs (rw,nosuid,size=10240k,nr_inodes=414264,mode=755) 
sys on /mnt/vh2/sys type sysfs (rw,relatime) 


    # ls -l /mnt/vh2/bin/bash 
-rwxr-xr-x 1 root root 1029624 Nov 12 2014 /mnt/vh2/bin/bash 

Это выход LDD для Баш:

# ldd /mnt/vh2/bin/bash 
     linux-vdso.so.1 (0x00007ffd49bcc000) 
     libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007fad99f1a000) 
     libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fad99cf0000) 
     libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fad99aec000) 
     libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fad99743000) 
     /lib64/ld-linux-x86-64.so.2 (0x00007fad9a13f000) 

терминальной сессии:

# mount /dev/centos_vh200/root /mnt/vh2 
    # mount /dev/sda1 /mnt/vh2/boot/ 
    # mount -t proc none /mnt/vh2/proc/ 
    # mount -o bind /dev /mnt/vh2/dev/ 
    # mount -t sysfs sys /mnt/vh2/sys/ 
    # chroot /mnt/vh2/ /bin/bash 
chroot: failed to run command ‘/bin/bash’: No such file or directory 
+0

Показать 'mount' и' ls -l bin/bash' в chroot. Также будет полезен весь сеанс терминала. –

+0

'ldd/mnt/vh2/bin/bash' делается вне chroot, поэтому он находит ваши живые системные библиотеки. Ищите библиотеки в '/ mnt/vh2 /' не в '/'. –

+0

О, правильно ... это имеет смысл. Библиотеки отсутствовали, наряду с множеством других вещей, которые должны были быть в директории '/ lib'. Итак, я выполнил резервное копирование и обработал 'chroot/mnt/vh2// bin/bash'. Спасибо за помощь. – ajnabi

ответ

3

ldd /mnt/vh2/bin/bash осуществляется вне корневым поэтому он находит ваши живые системные библиотеки. Ищите библиотеки в /mnt/vh2/ не в /.