Назад | Перейти на главную страницу

Что на самом деле делает Grub-install?

У меня есть клиент, который случайно преобразовал таблицу разделов одной из своих систем Linux из DOS в GPT. К сожалению, версия GRUB - 2, и в системе не было загрузочного раздела BIOS, в котором можно было бы разместить дополнительный код загрузчика.

Затем были использованы следующие шаги, чтобы исправить это:

  1. Добавьте загрузочный раздел BIOS на загрузочный диск.
  2. Переустановите приложение grub для диска.

После этого система теперь может нормально загружаться.
Был один момент, который я не мог понять, пожалуйста, помогите.

Сначала я попытался добавить загрузочный раздел BIOS на загрузочный диск, но система тоже не работала. Как только GRUB был переустановлен, он мог нормально загружаться ...

Кто-нибудь, пожалуйста, выясните, включает ли переустановка часть кода GRUB 2 в загрузочный раздел BIOS? Спасибо.

Eсть хорошее объяснение здесь, и вот мое краткое резюме:

И GRUB Legacy (GRUB1), и GRUB2 имеют «двухэтапный» трехступенчатый процесс загрузки (каламбур).

Первый этап (stage1) находится в MBR, и я думаю, что в вашем случае переход на GPT не повлиял на него, поскольку он находится в первом секторе диска перед любой таблицей разделов.

Чаще всего при настройке разделов DOS, stage1 загружает stage1.5 (причина каламбура выше). В разделе MBR (или метке диска DOS) этот этап записывается в пустые сектора после таблицы разделов, до того, как начнутся данные первого фактического раздела. См. Верхнюю часть этот рисунок.

Поскольку создание таблицы разделов GPT включает в себя создание «защитной» MBR, которая вас уничтожит stage1.5. Эта защитная таблица разделов существует, чтобы избежать уничтожения устаревшим инструментом разделов таблицы GPT, о которой он не знает.

Очевидно, stage1.5 тот, который загружает модули, понимает разделы, ищет файловые системы и выполняет сценарий конфигурации для поиска stage2.

Этот последний этап - тот, который умеет загружать все виды ядер и живет на /boot/grub каталог какой-либо файловой системы на официальном разделе.

В grub-install процесс в вашем случае только что ввел stage1.5 (core.img) на новом месте при использовании GPT-таблицы: раздел с флагом BIOS_grub. Смотрите нижнюю часть этого изображения.

В зависимости от геометрии диска и программного обеспечения разделов, он может иногда помещать его после таблицы GPT перед первым разделом, но это довольно редко.

Надеюсь, поможет!

GRUB можно установить как на Таблица разделов GUID (GPT, BIOS и UEFI) и Главная загрузочная запись (Только MBR, BIOS). Поэтому проблема не в типе перегородки.

Вот что произошло на самом деле:

  1. Когда раздел был удален, вместе с ним был удален и GRUB.
  2. При воссоздании раздела он был создан как пустой раздел.
  3. В grub-install установил GRUB в этот пустой MBR / GPT раздел на основе конфигурации в /boot/grub/grub.cfg. Эта конфигурация, возможно, была создана с помощью grub-mkconfig т.е. простая конфигурация из настроек в /etc/grub.d/.