Можна налаштувати GRUB2 в режимі BIOS для завантаження з розділу без вбудовування в область після MBR, але є деякі ускладнення:
Ви повинні мати /boot
звичайний розділ (це може бути первинний або логічний розділ, але не слід використовувати програмні RAID (md) або LVM). Окремий розділ для /boot
не є абсолютно необхідним, але якщо /boot
він зберігається в кореневій файловій системі, ті самі обмеження розділів застосовуватимуться до розділу кореневої файлової системи.
Файлова система, яка використовується для, /boot
повинна підтримувати режим встановлення блок-списку. Найчастіше це підтримує файлові системи Linux; Важливими винятками є btrfs
і xfs
(однак, btrfs
є достатньо велика площа завантажувача для вбудовування core.img
туди, тому встановлення GRUB2 там ще може працювати). Знову ж таки, якщо у вас немає окремого розділу /boot
, ці обмеження застосовуватимуться до вашої кореневої файлової системи.
Режим встановлення блочного списку розробникам GRUB2 не рекомендується, тому що в цьому режимі core.img
зберігається у /boot
файловій системі як звичайний файл, але насправді до нього можна скористатись секторальними номерами, що зберігаються в завантажувальному секторі розділу, генерованому GRUB (і core.img
сам по собі), тому роблячи будь-яка операція з цим файлом може порушити завантаження. Це ще одна причина мати окремий /boot
розділ при використанні цього режиму - менше шансів, що ви виконаєте деяку операцію з файловою системою, яка вплине core.img
.
Якщо ви /boot
перебуваєте на логічному розділі, ви повинні мати певні засоби для запуску коду завантажувача з сектору завантаження розділу - багато версій коду MBR підтримують завантаження лише з первинних розділів. Одне рішення - використовувати код MBR від Syslinux , який підтримує завантаження навіть з логічних розділів.
Припустимо, що ваш /boot
розділ /dev/sda2
; то слід встановити там GRUB2 із такою командою:
grub-install --force /dev/sda2
Вам потрібно скористатися --force
опцією, оскільки останні версії GRUB2 відмовляються від використання режиму установки блочного списку без нього.
Потім слід використовувати 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 на комп'ютері, не буде плутати логічний розділ, позначений як активний.