ошибка паники ядра [dубликат]

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

sudo chroot /mnt/temp

. Ошибка была следующее:

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

Откуда это? Как мне пройти?

18
задан 21 November 2010 в 15:34

42 ответа

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

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

ls /media/sda1/*

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

20
ответ дан 25 July 2018 в 14:00

Ошибка означает, что ваша тюрьма (/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
ответ дан 25 July 2018 в 14:00

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

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

-1
ответ дан 25 July 2018 в 14:00
  • 1
    Тот же ответ, что и @ GrandOxymore выше. – Karl Richter 4 June 2017 в 18:45
  • 2
    @KarlRichter Аналогично, но не то же самое. Запуск 32-битной программы в 64-битной ОС - это не то же самое, что запуск 32-разрядной программы в 64-битной виртуальной среде (или ОС). Я мог бы запустить 32-битную гостевую ОС, и все было бы нормально. – azuer88 5 June 2017 в 07:32

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

`/ bin / bash '

, но не

` / bin / bash'

-2
ответ дан 25 July 2018 в 14:00

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

Хотя с

cp /bin/bash /mount/temp/tmp

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

chroot /mount/temp /tmp/bash

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

0
ответ дан 25 July 2018 в 14:00

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

sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin
1
ответ дан 25 July 2018 в 14:00

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

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

ls /media/sda1/*

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

20
ответ дан 1 August 2018 в 20:49

Ошибка означает, что ваша тюрьма (/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
ответ дан 1 August 2018 в 20:49

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

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

-1
ответ дан 1 August 2018 в 20:49
  • 1
    Тот же ответ, что и @ GrandOxymore выше. – Karl Richter 4 June 2017 в 18:45
  • 2
    @KarlRichter Аналогично, но не то же самое. Запуск 32-битной программы в 64-битной ОС - это не то же самое, что запуск 32-разрядной программы в 64-битной виртуальной среде (или ОС). Я мог бы запустить 32-битную гостевую ОС, и все было бы нормально. – azuer88 5 June 2017 в 07:32

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

`/ bin / bash '

, но не

` / bin / bash'

-2
ответ дан 1 August 2018 в 20:49

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

Хотя с

cp /bin/bash /mount/temp/tmp

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

chroot /mount/temp /tmp/bash

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

0
ответ дан 1 August 2018 в 20:49

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

sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin
1
ответ дан 1 August 2018 в 20:49

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

  sudo cp / usr / bin / qemu-arm-static / mnt /  chroot / usr / bin  
1
ответ дан 4 August 2018 в 12:30

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

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

-1
ответ дан 4 August 2018 в 12:30

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

`/ bin / bash '

, но не

' bin / bash '

-2
ответ дан 4 August 2018 в 12:30

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

Хотя с

  cp / bin / bash / mount / temp / tmp  [  ! d8] 

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

  chroot / mount / temp / tmp / bash   

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

0
ответ дан 4 August 2018 в 12:30

Ошибка означает, что ваша тюрьма ( / 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 .

1
ответ дан 4 August 2018 в 12:30

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

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

ls / media / sda1 / *

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

20
ответ дан 4 August 2018 в 12:30

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

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

-1
ответ дан 5 August 2018 в 20:41

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

`/ bin / bash '

, но не

' bin / bash '

-2
ответ дан 5 August 2018 в 20:41

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

Хотя с

  cp / bin / bash / mount / temp / tmp  [  ! d8] 

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

  chroot / mount / temp / tmp / bash   

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

0
ответ дан 5 August 2018 в 20:41

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

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

ls / media / sda1 / *

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

20
ответ дан 5 August 2018 в 20:41

Ошибка означает, что ваша тюрьма ( / 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 .

1
ответ дан 5 August 2018 в 20:41

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

  sudo cp / usr / bin / qemu-arm-static / mnt /  chroot / usr / bin  
1
ответ дан 5 August 2018 в 20:41

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

  sudo cp / usr / bin / qemu-arm-static / mnt /  chroot / usr / bin  
1
ответ дан 7 August 2018 в 13:58

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

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

-1
ответ дан 7 August 2018 в 13:58

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

`/ bin / bash '

, но не

' bin / bash '

-2
ответ дан 7 August 2018 в 13:58

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

Хотя с

  cp / bin / bash / mount / temp / tmp  [  ! d8] 

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

  chroot / mount / temp / tmp / bash   

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

0
ответ дан 7 August 2018 в 13:58

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

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

ls / media / sda1 / *

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

20
ответ дан 7 August 2018 в 13:58

Ошибка означает, что ваша тюрьма ( / 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 .

1
ответ дан 7 August 2018 в 13:58

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

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