3

У меня есть мультизагрузочная система, которой я хотел бы использовать Grub для управления. Версией Grub, поставляемой с моим дистрибутивом Linux, является Grub2, и она устанавливает эквивалент этапа 1.5-2, core.img, в оставшиеся сектора первого трека после MBR, но до первого раздела. К сожалению, эти сектора нужны для другой программы.

У меня есть отдельный основной / загрузочный раздел. Если бы я мог сохранить только boot.img в качестве своей MBR, но он смотрел бы в разделе / boot файл core.img, а не встроенный в секторах, следующих сразу за MBR, все было бы нормально. Это возможно с grub2?

2 ответа2

1

Можно настроить GRUB2 в режиме BIOS для загрузки с раздела без встраивания в область после MBR, но есть некоторые сложности:

  1. Вы должны иметь /boot на простом разделе (это может быть основной или логический раздел, но нельзя использовать программный RAID (md) или LVM). Отдельный раздел для /boot не является абсолютно обязательным, но если /boot хранится в корневой файловой системе, те же ограничения раздела будут применяться к корневому разделу файловой системы.

  2. Файловая система, используемая для /boot должна поддерживать режим установки черного списка. Наиболее часто используемые файловые системы Linux поддерживают это; важными исключениями являются btrfs и xfs (однако btrfs имеет достаточно большую область загрузчика для встраивания туда core.img , так что установка GRUB2 там все еще может работать). Опять же, если у вас нет отдельного раздела для /boot , эти ограничения будут применяться к вашей корневой файловой системе.

    Разработчики GRUB2 не рекомендуют режим установки списка блоков, потому что в этом режиме core.img хранится в файловой системе /boot в виде простого файла, но на самом деле доступ к нему осуществляется с использованием номеров секторов, хранящихся в загрузочном секторе раздела, сгенерированном GRUB (и в core.img ), поэтому выполнение любой файловой операции с этим файлом может прервать загрузку. Это еще одна причина иметь отдельный раздел /boot при использовании этого режима - меньше шансов, что вы выполните какую-либо операцию с файловой системой, которая повлияет на core.img .

  3. Если /boot находится на логическом разделе, у вас должны быть какие-то средства для запуска кода загрузчика из загрузочного сектора раздела - многие версии кода MBR поддерживают загрузку только с основных разделов. Одним из решений является использование кода MBR от Syslinux , который поддерживает загрузку даже из логических разделов.

Предположим, что ваш /boot раздел - /dev/sda2 ; тогда вы должны установить GRUB2 с помощью следующей команды:

grub-install --force /dev/sda2

Вы должны использовать опцию --force потому что последние версии GRUB2 отказываются использовать режим Blocklist установки без него.

Затем вы должны использовать fdisk /dev/sda чтобы отметить активный раздел 2.

Наконец, если в MBR был какой-то нестандартный загрузочный код (например, более старая установка GRUB), вам нужно установить код, который загружает загрузочный сектор из активного раздела - например, вы можете взять mbr.bin из Syslinux:

dd bs=440 count=1 conv=notrunc if=mbr.bin of=/dev/sda

При использовании логического раздела для /boot вы также можете рассмотреть возможность использования altmbr.bin из Syslinux, который берет номер загрузочного раздела из байта в MBR вместо поиска активного раздела, чтобы любая операционная система, отличная от Linux, была установлена на вас. компьютер не будет сбит с толку логическим разделом, помеченным как активный.

0

Насколько я вижу, невозможно настроить Grub2 таким образом, чтобы код в MBR смотрел где-нибудь, кроме следующего сектора, для своего core.img.

Однако вы можете загрузить весь Grub в ваш раздел /boot. Это избавляет от необходимости вмешиваться в любые данные, хранящиеся в начале диска. По умолчанию код в MBR найдет активный раздел и передаст управление первому сектору этого раздела. Если вам требуется подходящий MBR, он поставляется вместе с Syslinux.

Это предполагает, что ваш /boot раздел является обычным основным разделом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .