Спасение Debian GRUB - недействительная независимая от арки магия ELF

Недавно я выполнил двойную загрузку ПК с Windows с помощью Debian Wheezy. Установка прошла нормально, без ошибок, но когда я загружаюсь в Debian, меня сразу же встречает спасение GRUB:

Welcome to GRUB!

error: unknown filesystem.
Entering rescue mode...

После дальнейшего изучения с помощью команды set я заметил, что она загружается не в тот раздел:

grub rescue> set
prefix=(hd0,gpt4)/boot/grub
root=hd0,gpt4

Здесь он указывает на (hd0,gpt4), когда место установки Debian — (hd0,gpt5). Итак, я сделал быстрое исправление, используя set, чтобы изменить переменные обратно на то, что они должны быть:

grub rescue> set prefix=(hd0,gpt5)/boot/grub
grub rescue> set root=gd0,gpt5

После этого я сделал только то, что, как я помнил, должен был сделать для загрузки ОС, и запустил:

grub rescue> insmod normal

Здесь все начинает идти не так, как я получаю сообщение об ошибке:

error: invalid arch independent ELF magic.

Затем я провел некоторое исследование этой проблемы, и мне показалось, что распространенным решением является переустановка GRUB с живого компакт-диска. Итак, я загрузился с живого компакт-диска Debian и запустил следующее:

sudo mount /dev/sda5 /mnt
sudo grub-install --root-directory=/mnt /dev/sda

Где мне дают ошибку:

The file /mnt/boot/grub/stage1 not read correctly.

Хотя я могу заверить, что этот файл существует и доступен для редактирования, так как я мог редактировать его с помощью

sudo nano /mnt/boot/grub/stage1

Так в чем может быть проблема?


person Parker Hoyes    schedule 08.08.2013    source источник
comment
спасибо за параметр --root-directory!   -  person MegaTux    schedule 24.07.2014
comment
Интересно, есть ли у них ИТ-поддержка на Северном полюсе.   -  person flarn2006    schedule 23.05.2021


Ответы (3)


При установке исправленных вещей grub-efi в вашей системе (поскольку он поддерживает как традиционный процесс загрузки BIOS, так и загрузку EFI), если вы хотите исправить исходную установку grub, ответ, возможно, будет таким:

apt-get install --reinstall grub-pc-bin grub-pc

с последующим:

grub-install /dev/sdX

где /dev/sdX следует заменить вашим загрузочным диском (или дисками).

... это заменит то, что выглядит как поврежденные версии двоичных файлов grub (что означает «недействительная магия ELF, независимая от архитектуры») на загрузочном диске.

person Tim Small    schedule 23.04.2014

Оказывается ответ был прост, мне нужно было установить пакет grub-efi:

sudo apt-get install grub-efi
person Parker Hoyes    schedule 08.08.2013

Вы можете восстановить главный загрузочный сектор с помощью bootrec.exe, инструмента, доступного в среде восстановления Windows.

  1. Вставьте установочный диск Windows
  2. Нажмите любую клавишу при появлении сообщения «Нажмите любую клавишу для загрузки с компакт-диска или DVD», чтобы загрузиться с диска.
  3. Выберите Восстановить компьютер после выбора языка, времени и метода клавиатуры (для пользователей Windows 7). Пользователи XP: нажмите R, чтобы получить доступ к консоли восстановления.
  4. Выберите установочный диск Windows (обычно C:) и нажмите «Далее». У пользователей XP этот шаг может отсутствовать.
  5. Выберите «Командная строка» в поле «Параметры восстановления системы». Пользователям XP потребуется ввести пароль администратора, чтобы открыть командную строку.
  6. Напишите следующие команды в командной строке:

     bootrec /fixmbr
     bootrec /fixboot
     bootrec /rebuildbcd
    
person Vikas    schedule 31.07.2014