Я выполнял инструкции этого руководства HOWTO: Purge и Reinstall Grub 2 с Live CD, когда я столкнулся с ошибкой на шаге 1, когда я запустил команду
sudo chroot /mnt/temp
. Ошибка была следующее:
chroot: failed to run command `/bin/bash': Exec format error
Откуда это? Как мне пройти?
Убедитесь, что вы используете правильный Live CD. Например, убедитесь, что вы не используете 32-битный компакт-диск вместо 64-битного компакт-диска. Вам нужно 64-битное ядро для запуска 64-битного кода, поэтому проверьте свою архитектуру.
Предполагая, что вы подключили свою систему к chrooted в / media / sda1, чтобы определить архитектуру, которую вы можете:
ls /media/sda1/*
, если вы видите lib64 в выводе, это, вероятно, 64-битная система
Ошибка означает, что ваша тюрьма (/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.
В моем случае я пытался перекопать в 64-разрядную версию Linux, но мой текущий Linux был 32-разрядным.
Я установил образ диска (главное изображение, для репликации на несколько машины).
Я думаю, что это BUG.
`/ bin / bash '
, но не
` / bin / bash'
Действительно, это 64-разрядная 32-разрядная несовместимость.
Хотя с
cp /bin/bash /mount/temp/tmp
(копирует 32-битный exec в новый корень в каталоге tmp
chroot /mount/temp /tmp/bash
chroot в порядке, все команды все равно не работают. Вам придется копировать их по всему.
У меня была такая же проблема при создании изображения арки арфы. Мне пришлось установить qemu-user-static, а затем скопировать его в папку chroot bin.
sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin
Убедитесь, что вы используете правильный Live CD. Например, убедитесь, что вы не используете 32-битный компакт-диск вместо 64-битного компакт-диска. Вам нужно 64-битное ядро для запуска 64-битного кода, поэтому проверьте свою архитектуру.
Предполагая, что вы подключили свою систему к chrooted в / media / sda1, чтобы определить архитектуру, которую вы можете:
ls /media/sda1/*
, если вы видите lib64 в выводе, это, вероятно, 64-битная система
Ошибка означает, что ваша тюрьма (/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.
В моем случае я пытался перекопать в 64-разрядную версию Linux, но мой текущий Linux был 32-разрядным.
Я установил образ диска (главное изображение, для репликации на несколько машины).
Я думаю, что это BUG.
`/ bin / bash '
, но не
` / bin / bash'
Действительно, это 64-разрядная 32-разрядная несовместимость.
Хотя с
cp /bin/bash /mount/temp/tmp
(копирует 32-битный exec в новый корень в каталоге tmp
chroot /mount/temp /tmp/bash
chroot в порядке, все команды все равно не работают. Вам придется копировать их по всему.
У меня была такая же проблема при создании изображения арки арфы. Мне пришлось установить qemu-user-static, а затем скопировать его в папку chroot bin.
sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin
У меня была такая же проблема при создании изображения арки арфы. Мне пришлось установить qemu-user-static
, а затем скопировать его в папку chroot bin.
sudo cp / usr / bin / qemu-arm-static / mnt / chroot / usr / bin
В моем случае я пытался перекопать в 64-разрядную версию Linux, но мой текущий Linux был 32-разрядным.
Я установил образ диска (главное изображение, для репликации на несколько машины).
Я думаю, что это BUG.
`/ bin / bash '
, но не
' bin / bash '
Действительно, это 64-битная 32-битная несовместимость.
Хотя с
cp / bin / bash / mount / temp / tmp
[ ! d8](копирует 32-битный exec в новый корень в каталоге
tmp
chroot / mount / temp / tmp / bash
chroot
в порядке, все команды по-прежнему не работают. Вам придется копировать их по всему.
Ошибка означает, что ваша тюрьма ( / mnt / temp
) не содержит оболочки bash или не содержит библиотек, необходимых для запуска оболочки bash.
If вы создали свою тюрьму, используя что-то вроде этого:
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
.
Убедитесь, что вы используете правильный Live CD. Например, убедитесь, что вы не используете 32-битный компакт-диск вместо 64-битного компакт-диска. Вам нужно 64-битное ядро для запуска 64-битного кода, поэтому проверьте свою архитектуру.
Предполагая, что вы подключили свою систему к chrooted в / media / sda1, чтобы определить архитектуру, которую вы можете:
ls / media / sda1 / *
, если вы видите lib64 в выводе, это, вероятно, 64-битная система
В моем случае я пытался перекопать в 64-разрядную версию Linux, но мой текущий Linux был 32-разрядным.
Я установил образ диска (главное изображение, для репликации на несколько машины).
Я думаю, что это BUG.
`/ bin / bash '
, но не
' bin / bash '
Действительно, это 64-битная 32-битная несовместимость.
Хотя с
cp / bin / bash / mount / temp / tmp
[ ! d8](копирует 32-битный exec в новый корень в каталоге
tmp
chroot / mount / temp / tmp / bash
chroot
в порядке, все команды по-прежнему не работают. Вам придется копировать их по всему.
Убедитесь, что вы используете правильный Live CD. Например, убедитесь, что вы не используете 32-битный компакт-диск вместо 64-битного компакт-диска.
Предполагая, что вы подключили свою систему к chrooted в / media / sda1, чтобы определить архитектуру, вы можете:
ls / media / sda1 / *
, если вы видите lib64 в выводе, это, вероятно, 64-битная система
Ошибка означает, что ваша тюрьма ( / mnt / temp
) не содержит оболочки bash или не содержит библиотек, необходимых для запуска оболочки bash.
If вы создали свою тюрьму, используя что-то вроде этого:
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
.
У меня была такая же проблема при создании изображения арки арфы. Мне пришлось установить qemu-user-static
, а затем скопировать его в папку chroot bin.
sudo cp / usr / bin / qemu-arm-static / mnt / chroot / usr / bin
У меня была такая же проблема при создании изображения арки арфы. Мне пришлось установить qemu-user-static
, а затем скопировать его в папку chroot bin.
sudo cp / usr / bin / qemu-arm-static / mnt / chroot / usr / bin
В моем случае я пытался перекопать в 64-разрядную версию Linux, но мой текущий Linux был 32-разрядным.
Я установил образ диска (главное изображение, для репликации на несколько машины).
Я думаю, что это BUG.
`/ bin / bash '
, но не
' bin / bash '
Действительно, это 64-битная 32-битная несовместимость.
Хотя с
cp / bin / bash / mount / temp / tmp
[ ! d8](копирует 32-битный exec в новый корень в каталоге
tmp
chroot / mount / temp / tmp / bash
chroot
в порядке, все команды по-прежнему не работают. Вам придется копировать их по всему.
Убедитесь, что вы используете правильный Live CD. Например, убедитесь, что вы не используете 32-битный компакт-диск вместо 64-битного компакт-диска.
Предполагая, что вы подключили свою систему к chrooted в / media / sda1, чтобы определить архитектуру, вы можете:
ls / media / sda1 / *
, если вы видите lib64 в выводе, это, вероятно, 64-битная система
Ошибка означает, что ваша тюрьма ( / mnt / temp
) не содержит оболочки bash или не содержит библиотек, необходимых для запуска оболочки bash.
If вы создали свою тюрьму, используя что-то вроде этого:
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
.