Во время попытки chroot я получил эту ошибку: & ldquo; chroot: не удалось запустить команду '/ bin / bash': ошибка формата exec & rdquo;

Я следовал инструкциям этого урока HOWTO: Очистить и переустановить Grub 2 с Live CD , когда я обнаружил ошибку на шаге 1 при запуске команды

sudo chroot /mnt/temp
[ 114] Ошибка была следующей:

chroot: failed to run command `/bin/bash': Exec format error

Откуда это взялось? Как мне пройти?

24
задан 21 November 2010 в 14:34

6 ответов

Убедитесь, что вы используете правильный Live CD. Например, проверьте, что Вы используете не 32-битный CD, а 64-битный. Для запуска 64-битного кода необходимо 64-битное ядро, поэтому проверьте свою архитектуру.

Предполагая, что вы смонтировали свою систему для chrooted в /media/sda1, для определения архитектуры можно:

ls /media/sda1/*

если вы видите lib64 в выводе, то это, вероятно, 64-битная система

24
ответ дан 21 November 2010 в 14:34

Действительно, это 64-битная 32-битная несовместимость.

Хотя с

cp /bin/bash /mount/temp/tmp

(копирует 32-битный exec в новый корень в tmp каталог

chroot /mount/temp /tmp/bash

chroot в порядке, все команды по-прежнему не работают. Вам придется скопировать их все.

0
ответ дан 21 November 2010 в 14:34

В моем случае я пытался выполнить chroot в 64-битной версии Linux, но мой текущий Linux был 32-битным.

Я смонтировал образ диска (главный образ, для репликации на несколько машин).

-1
ответ дан 21 November 2010 в 14:34

Ошибка означает, что ваша тюрьма (/mnt/temp) не содержит оболочки bash или библиотек, необходимых для запуска оболочки bash.

Если вы создали свою тюрьму, используя нечто подобное:

debootstrap --variant=buildd --arch i386 lucid /mnt/temp \
    http://archive.ubuntu.com/ubuntu/

Скорее всего, вы хотели сделать это вместо:

debootstrap --variant=minbase --arch i386 lucid /mnt/temp \
    http://archive.ubuntu.com/ubuntu/

Однако, в качестве технического ответа на вашу проблему, попробуйте:

cp -r /bin /lib /mnt/temp

Это должно позволить вам успешно работать в chroot, В этот момент вы можете делать и другие вещи.

Хотя в этом есть около миллиона неправильных вещей, и почти наверняка вы не захотите этого делать. Используйте minbase, когда создаёте свою тюрьму, или установите ubuntu на пустую цель (например, виртуальную машину) и создайте tar-архив всей системы, который затем распакуйте в /mnt/temp.

1
ответ дан 21 November 2010 в 14:34

У меня была такая же проблема при создании образа для armhf arch.Мне пришлось установить qemu-user-static , а затем скопировать его в папку chroot bin.

sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin
3
ответ дан 21 November 2010 в 14:34

Я думаю, что это BUG.

`/bin/bash'

, но не

'bin/bash'

-2
ответ дан 21 November 2010 в 14:34

Другие вопросы по тегам:

Похожие вопросы: