«Самое краткое руководство» — чуть более подробно
Загрузочное меню надо реализовывать на уровне загрузчика — править текстовые конфиги гораздо проще и безопасней.
Загрузочная запись нам не нужна — дело в том, что при выставлении в настройках BIOS загрузки с диска прошивка UEFI сначала ищет на нём EFI-раздел, а затем пытается исполнить файл по строго фиксированному адресу на этом разделе: /EFI/Boot/BOOTX64.EFI
Что такое «EFI-раздел»? В теории, он должен иметь особый тип «EFI System» (ef00). На практике, годится первый раздел на GPT-диске, отформатированный в FAT32 и имеющий достаточно места, чтобы разместить загрузчик и вспомогательные файлы (если есть).
Пункт 3: «Скачиваем из интернета любой UEFI-загрузчик». Что это значит? Загрузчик — это просто исполняемый файл определенного формата, к которому в комплекте идет конфиг. К примеру, если у вас есть под рукой установленный пакет с systemd — файл загрузчика можно найти по адресу /usr/lib/systemd/boot/efi/systemd-bootx64.efi, переименовать его в bootx64.efi и скопировать в /EFI/Boot/ на EFI-разделе. Нет под рукой systemd? Скачайте архив с сайта Archlinux. Или с репозитария Ubuntu. Или Debian. Есть под рукой система с Windows? Возьмите виндовый загрузчик оттуда, тоже сгодится )) Если сумеете настроить, я честно говоря не пробовал.
Пункт 4: «Настроить конфиг». Как и обычная программа, когда загрузчик запускается — он ожидает найти по определенным путям файлы конфигурации. Обычно эту информацию легко найти в интернете. Для загрузчика systemd-boot нам необходимо в корне EFI-раздела создать каталог «loader», а в нём файл «loader.conf» с тремя строчками (привожу свои):
Параметр editor отвечает за возможность отредактировать пункт загрузочного меню перед запуском.
Рядом с loader.conf необходимо создать каталог entries — один файл в нём будет отвечать за одну загрузочную запись в boot-меню. У меня там один файл arch.conf с таким содержанием:
Я не упомянул, но довольно очевидно — ядро и initramfs должны лежать в одной файловой системе с загрузчиком, то есть на EFI-разделе. Пути к ним в конфигах отсчитываются от корня этой ФС.
Способ 1
Что делать в случае ошибки unknown filesystem grub-rescue? Перед вами окно, в котором можно использовать только 4 команды, их вполне достаточно, чтобы исправить все проблемы и успешно загрузиться:
- ls — позволяет вывести всё содержимое;
- set — применяется для установки переменных;
- unset — очищает переменную;
- insmod — необходима для загрузки модулей.
Также можно сделать доступным ряд других команд. Сделать их доступными можно, загрузив модуль «normal». Для этого пропишите:
После этого станут доступны:
- dump — для очистки памяти;
- exit — команда выхода из загрузчика;
- chainloader — необходима, чтобы указать последующей команде boot передать управление цепочечному загрузчику;
- kfreebsd — несколько команд, позволяющих загрузить ядро FreeBSD, его модули;
- rmmod — позволяет выгрузить указанный модуль ядра;
- multiboot.
Первым делом нужно отыскать модули, чтобы загрузить их. Для этого введите:
Результатом выполнения команды будет следующее:
Из этого можно сделать вывод, что загрузчик не может определить файловые системы дисков, поэтому определяет их как msdos. Теперь необходимо угадать видимые диски. В конкретном примере перед вами два диска: hd0 (с тремя разделами) и hd1 (с двумя разделами). Допустим, вы знаете, что Linux инсталлирован на диск, который имеет три раздела. В таком случае вам нужен диск с индексом «0».
GRUB даёт названия разделам в обратном порядке. В связи с этим, неясно как трактовать запись: «(hd0,msdos3)». Ведь можно посчитать это как первым разделом, так и третьим. К счастью, из этой ситуации можно выйти при помощи такого синтаксиса команды: «(hd0,1)»
Обратите внимание, что в программе-загрузчике GRUB отсчёт дисков идёт с 0, а разделов с 1
Допустим, что Линукс хранится в первом разделе, тогда он будет обозначаться (hd0,1). В этом случае команда, которую необходимо прописать, будет иметь вид:
Теперь модули могут быть загружены. Использовать их можно только после загрузки.
После того как вы выбрали нужный диск, проверьте содержится ли там то, что нужно. Для этого пропишите:
В результате выполнения на экране появится список md файлов.
Далее, пропишите:
После этого загрузчик будет переведён в режим полной функциональности. Затем автоматически будут найдены разделы с операционной системой, и откроется меню программы.
Теперь остаётся загрузить Linux. Делается это при помощи команды:
Загрузочные параметры ядра
В процессе загрузки Linux требуется ряд параметров, посредством которых ядру предоставляется информация об аппаратных средствах. В частности, нам приходится иметь дело с этими параметрами, когда ядро не способно определить конкретный параметр самостоятельно, и мы добавляем его вручную. А иногда мы редактируем параметры для переопределения их значений, обнаруживаемых ядром.
За загрузку и запуск ядра Linux отвечает загрузчик ОС, поэтому, чтобы иметь возможность передать параметры загрузки, мы используем специализированный загрузчик вроде GRUB.
Загрузочные параметры ядра определяются в виде списка строк, разделённых пробелами следующим образом:name….
На данный момент код ядра может обрабатывать максимум 10 отделённых запятыми значений параметров. Тем не менее допускается переиспользование одного и того же ключевого слова.
К примеру, приведу конфигурацию grub для инстанса на Amazon Linux 1. В ней я изменил параметр “console”, определив для него 2 значения (допускается до 10).
kernel /boot/vmlinuz-4.14.77-70.59.amzn1.x86_64 root=LABEL=/ console=ttyS0,tty1 selinux=0
Мы можем также предоставить ядру параметры загрузки, приведённые ниже. Здесь вместо определения значений “console” в виде одного параметра мы повторно использовали console для определения другого значения. При необходимости каждый параметр “console” может содержать до 10 значений, что позволяет выйти за рамки предыдущих ограничений.
kernel /boot/vmlinuz-4.14.77-70.59.amzn1.x86_64 root=LABEL=/ console=ttyS0 console=tty1 selinux=0
Существует несколько способов изменения загрузочных параметров ядра. Кроме того, все дистрибутивы Linux (кроме Ubuntu), упомянутые ранее, используют схожие шаги для изменения этих параметров.
See also
- In Chainloading the use of GRUB2 to boot other boot loaders is described. This is important to read when dual-booting systems, or when GRUB2 needs to be configured to boot ISO files.
- In Advanced storage the necessary steps are documented on how to install and use GRUB on more advanced storage situations, such as software RAID, logical volumes or encrypted file systems.
- In Configuration variables an exhaustive list of GRUB configuration variables, as used by /etc/default/grub, is documented.
- In Troubleshooting a list of common GRUB errors (with their solutions) is presented.
- In Hybrid partition table the use of a mixed MBR/GPT setup is documented, as well as how to use such hybrid partition layout with GRUB.
Восстановление GRUB 2
Восстановление после неудачной загрузки
Вдруг случится, что вы повредите GRUB 2? Должен же быть способ восстановить его и спасти положение? Все как обычно, есть два пути: легкий и сложный.
Сложный путь: Ручное исправление с помощью live CD
Вам необходим live CD, подобный Ubuntu или Kubuntu, который имеет на борту GRUB 2. Загрузитесь в live сессию (сессия временной загрузки операционной системы), монтируйте жесткий диск и установите GRUB 2 в MBR.
Вот последовательность команд, которые необходимо выполнить (предполагая, что диск = /dev/sda). Вам необходимо смонтировать раздел с установленным дистрибутивом (например, Ubuntu) и содержащим /boot директорию. Он может быть отдельным разделом в системе, это зависит от параметров, выбранных во время установки системы.
После его монтирования вам нужно запустить еще раз команду grub-install.
$ mount /dev/sda1 /mnt/$ grub-install --root-directory=/mnt /dev/sda
Применяйте команду fdisk для поиска корневого устройства до его монтирования. В качестве примера, предположим, что /dev/sda1 отведен под /boot раздел, а /dev/sda2 является корневым разделом в вашем дистрибутиве.
$ sudo mount /dev/sda2 /mnt
Если у вас /boot раздел размещен на отдельном разделе, то вам необходимо монтировать и его.
$ sudo mount /dev/sda1 /mnt/boot
$ sudo mount --bind /dev /mnt/dev
Фактически, сейчас у вас есть корневая система для монтирования. Теперь вы можете изменить размещение root (/) на /mnt. Это можно сделать с помощью команды chroot.
$ sudo chroot /mnt
Это значит, что команда выполненная в этом терминале будет обращаться к /mnt/. Теперь, переконфигурируем GRUB пакет:
$ dpkg-reconfigure grub-pc
Вам должны сказать GRUB, какое устройство нужно использовать. Вы можете осуществить выбор с помощью клавиши пробел. Показанные устройства будут совпадать с данными из файла карты устройств. Если у вас только одно устройство, то путаницы быть не должно.
После этого вы можете выйти из рабочей среды команды chroot. Это делается нажатием сочетания клавиш Ctrl + D. Затем демонтируйте устройства. Первым демонтируйте /dev, а после все остальные.
$ sudo umount /mnt/dev$ sudo umount /mnt
Теперь выполните перезагрузку. GRUB 2 будет восстановлен.
Расширенные возможности
В GRUB2 есть много возможностей, которые делают GRUB2 очень мощным загрузчиком. Он поддерживает:
- Загрузку с платформ UEFI.
- Загрузку с дисков с таблицей разделов GPT без необходимости использования гибридного MBR (при необходимости, гибридный MBR можно включить для совместимости или переносимости).
- Загрузку с раздела /boot с файловой системой btrfs.
- Загрузка с ZFS pool.
- Непосредственную загрузку с raid set btrfs без необходимости использования initramfs для настройки раннего монтирования.
- Непосредственную загрузку с системы управления логическими томами (например, LVM2).
- Загрузку с поддержкой DM-RAID (RAID 0, 1, 4, 5, 6, 9 и 10).
- Загрузку с зашифрованных устройств (LUKS).
Некоторые возможности будут рассмотрены более детально дальше.
Chainloading
GRUB2 была улучшена поддержка режима chainload по сравнению с GRUB Legacy. Чтобы загрузить другой загрузчик с помощью chainloader используйте опцию .
Файл Загрузка другого загрузчика с помощью chainloader
menuentry "Custom Super-bootloader example" { insmod part_msdos insmod chain chainloader (hd1,1)+1 }
Для более подробной информации о chainloading, пожалуйста, смотрите статью Chainloading.
Password protection of GRUB menu
If you want to secure GRUB so it is not possible for anyone to change boot parameters or use the command line, you can add a user/password combination to GRUB’s configuration files. The program grub-mkpasswd-pbkdf2 generates password hashes for GRUBː
Then, add the following toː
Файл
# Grub user echo 'set superusers="username"' # Grub password echo 'password_pbkdf2 <username> <password>'
Использование фрейбуфера
Чтобы GRUB2 использовал framebuffer, перекомпилируйте GRUB с включенным USE-флагом . Это установит шрифт True Type по умолчанию, а также утилиту для преобразования шрифтов.
Приступим к конфигурации конфигурационного файла по умолчанию GRUB2, который расположен в /etc/default/grub. Например:
Файл Настройки связанные с фрейбуфером
# настройка разрешения и глубины цвета GRUB_GFXMODE=1366x768x32 # сохранить разрешение после загрузки ядра GRUB_GFXPAYLOAD_LINUX=keep # настройка фонового изображения GRUB_BACKGROUND="/boot/grub/bg.png" # использование пользовательского шрифта, конвертированного с помощью утилиты grub-mkfont GRUB_FONT="/boot/grub/fonts/roboto.pf2"
Возможности программы
Чтобы получить верное представление о назначении утилиты, необходимо разобраться, с какими задачами может справиться приложение. Программа выполняет функции менеджера загрузки операционной системы, эмулятора установочных дисков, платформы для настройки собственного интерфейса и программирования системных компонентов запуска в Windows.
Для начала работы с приложением необходимо установить его на компьютер. Данное мероприятие требует подготовки. Принятые меры позволят избежать множества проблем при работе с утилитой. Какие задачи нужно выполнить, чтобы осуществить запуск Grub4Dos?
Extended features
GRUB 2 has many features that make it a very powerful boot loader. It supports:
- Booting from UEFI platforms.
- Booting from GPT partitioned drives without needing a hybrid MBR (hybrid MBR can enabled as needed for compatibility or portability).
- Booting from a btrfs formatted /boot partition.
- Booting from a ZFS pool.
- Booting directly from a btrfs raid set without needing an initramfs for early mount setup.
- Booting directly from logical volume management (such as LVM2).
- Booting with support for DM-RAID (RAID 0, 1, 4, 5, 6, 9 and 10).
- Booting from encrypted devices (LUKS).
Some specific features are explained in more detail next.
Chainloading
GRUB 2 was built with a truly improved chainload mode when compared to GRUB Legacy. To chainload another boot loader, use the option.
FILE Chainloading another bootloader
menuentry "Custom Super-bootloader example" { insmod part_msdos insmod chain chainloader (hd1,1)+1 }
For more information on chainloading, please see the Chainloading sub-page.
Password protection of GRUB menu
To secure GRUB so it is not possible for anyone to change boot parameters or use the command line, add a user/password combination to GRUB’s configuration files. The program grub-mkpasswd-pbkdf2 generates password hashes for GRUBː
Then, add the following toː
FILE
# Grub user echo 'set superusers="username"' # Grub password echo 'password_pbkdf2 <username> <password>'
Using framebuffer display
To have GRUB use a framebuffer graphical display, re-emerge GRUB with the USE flag enabled. This will install a default True Type font as well as a font conversion utility.
Proceed to configure the default configuration file located at /etc/default/grub. For example:
FILE Framebuffer related settings
# Set resolution and color depth GRUB_GFXMODE=1366x768x32 # Keep resolution when loading the kernel GRUB_GFXPAYLOAD_LINUX=keep # Set a background image GRUB_BACKGROUND="/boot/grub/bg.png" # Use a custom font, converted using grub-mkfont utility GRUB_FONT="/boot/grub/fonts/roboto.pf2" # Set the menu colors GRUB_COLOR_NORMAL="light-blue/black" GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
Роль GRUB
После выбора операционной системы для загрузки, GRUB загрузит выбранное ядро. GRUB использует параметры ядра, чтобы узнать, где находится ядро и другие важные параметры, которые нужно использовать.
- initrd: используется для указания начального RAM-диска.
- BOOT_IMAGE: расположение образа ядра Linux.
- root: указывает расположение корневой файловой системы. Используется ядром для поиска init, который, в свою очередь, загружает критически важные службы.
- ro: Отвечает за монтирование файловой системы в режиме только для чтения.
- quiet: скрывает некоторые системные сообщения при загрузке компьютера.
- splash: используется для отображения заставки при загрузке системы.
Когда вы находитесь в меню параметров GRUB, вы можете редактировать параметры ядра, нажав клавишу E на клавиатуре.
Понимание конфигурации GRUB2
Загрузочные параметры ядра дистрибутивов, использующих GRUB2, определены в каталоге /etc/default/grub. Давайте взглянем на пример из инстанса на Amazon Linux 2:
# cat /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0" GRUB_TIMEOUT=0 GRUB_DISABLE_RECOVERY="true"
“GRUB_CMDLINE_LINUX_DEFAULT” содержит загрузочные параметры (командной строки) ядра. Это строка, в которой мы редактируем конфигурацию grub для изменения загрузочных параметров.
Подготовка к установке
Для начала следует найти и скачать архив с утилитой. Стоит заметить, что при работе с программой на Windows 7 необходимо загрузить дополнительно приложение BCDEdit. С помощью этой утилиты в системные настройки добавляется мультизагрузочная Grub4Dos. Данная программа не распознается ОС. Без утилиты BCDEdit приложение не запускается поверх стандартного загрузчика.
Стоит отметить особенность, касающуюся распространения установщика программы. Нужно ли скачивать инсталлятор? Специалисты не советуют делать этого. Утилита распространяется в виде архива. Его следует распаковать и настроить.
Конфигурация GRUB
# cat /etc/grub.conf # создаётся с помощью imagebuilder default=0 timeout=0 hiddenmenutitle Amazon Linux 2018.03 (4.14.181-108.257.amzn1.x86_64) root (hd0,0) kernel /boot/vmlinuz-4.14.181-108.257.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 initrd /boot/initramfs-4.14.181-108.257.amzn1.x86_64.imgtitle Amazon Linux 2018.03 (4.14.177-107.254.amzn1.x86_64) root (hd0,0) kernel /boot/vmlinuz-4.14.177-107.254.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 initrd /boot/initramfs-4.14.177-107.254.amzn1.x86_64.img
Здесь, как вы видите, присутствует более 1 записи меню. Запись меню наряду с параметрами содержит информацию о расположении образов ядра и initrd. Каждая запись начинается с “title…” и содержит численный порядок, начиная с 0. Значение “default” определяет текущий образ ядра, который используется для загрузки serve=. В конфигурации, приведённой выше, значение представлено как “0”. Это означает, что действует первая запись меню (4.14.181–108.257.amzn1.x86_64). Давайте взглянем на строку ядра. Вся структура name, указанная после местоположения образа ядра (выделена жирным курсивом и разделена пробелами), представляет параметры загрузки:
Важно знать её, чтобы добавлять параметры в правильную запись меню
Fixing reboot/shutdown freezes
If your machine freezes upon attempts to shutdown or reboot, try modifying /etc/default/grub. Open the file with gksudo gedit /etc/default/grub (graphical interface) or sudo nano /etc/default/grub (command-line). Any other plaintext editor (Vim, Emacs, Kate, Leafpad) is fine too. Find the line that starts with GRUB_CMDLINE_LINUX_DEFAULT and add reboot=bios to the end.
If done properly it should result in something like GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=bios"
Then save the file, run sudo update-grub and reboot in any way that’s possible for you. After that, reboots and shutdowns should start working properly.
With certain hardware (notably DELL) the kernel parameter that you add needs to be reboot=pci (instead of reboot=bios), the procedure remains the same.
Displays
GRUB 2 can do more than provide a simple black & white menu. Its menu can be customized by the user to present a more visually-appealing menu by changing font colors, backgrounds and resolutions.
For information on using splash images and changing font colors and menu resolutions, please refer to the Grub2/Displays community documentation.
Themes
GRUB 2 Theming is still under development, as is integration with gfxmenu. Theme elements will include colors, fonts, progress indicators, menus, and labels. Both of these hold great promise but are not ready for release with Ubuntu 9.10. Check the Links section at the bottom of this page for references.
Installing/Reinstalling/Moving GRUB2
Please visit the Grub2/Installing community documentation. Information concerning upgrades from GRUB 0.97 (Legacy) to GRUB 2 is now located at Grub2/Upgrading.
Booting an ISO from a Menuentry
Ubuntu ISOs, as well as many utility ISOs and some other Linux operating systems, can be booted from a hard drive via a GRUB menuentry. This eliminates the need to create a CD/DVD and allows bootable image files to be stored only on the hard drive.
For information on this Grub 2 feature, please visit the Grub2/ISOBoot community documentation page.
Создание загрузочного носителя
Для удобства работы с приложением можно установить Grub4Dos на флешку. Это позволит пользователю всегда иметь утилиту под рукой и применять ее при необходимости.
Для создания внешнего загрузочного носителя рекомендуется обратить внимание на видоизмененную версию приложения Grub4DOS Installer 1.1. Она отличается тем, что разработана с учетом последующей установки на флешку
Данная версия русифицирована. Это означает, что работать с Grub4Dos menu намного легче.
Для чего нужен загрузочный носитель? Уникальная структура приложения предоставляет возможность хранить на флешке одновременно несколько ОС. В процессе переустановки Windows пользователь сам выбирает, какую операционную систему требуется загрузить. Теперь нет необходимости хранить диски с ОС.
GRUB for UEFI
Compiling GRUB
Older GRUB versions are riddled with nasty bugs. As this probably includes the version from your package management, you should be compiling GRUB from source. As we’re compiling for UEFI, you should pass the appropriate flags to configure. An example invocation might look something like this:
../grub-2.02~rc2/configure --prefix="$HOME/opt/grub" --target=x86_64 --with-platform=efi
After completing the build, GRUB refused to do anything as it was missing a font file. To fix this, run
bin/grub-mkfont -o share/grub/unicode.pf2 /usr/share/fonts/truetype/unifont/unifont.ttf
GRUB might warn you about share/locale/ missing. To solution is to create the missing directory.
Building a GRUB UEFI binary (BOOTX64.EFI)
This method builds a standalone GRUB binary you can copy to a FAT partition. However, note that some UEFI implementations assume that it is located at for x86_64 platforms.
Generally, all compiled modules are included in this binary; if you want to cut down on its size, you can specify what modules to include.
This method uses two separate configuration files; this is needed as all GRUB data is located within the binary, but we’ll be working around that. The binary contains a memdisk, which also serves as the prefix. As far as I’m aware, there’s no way of working around this fact directly. We can, however, use the memdisk grub.cfg to load a configuration file from the disk. This way, we don’t have to recreate the binary for every configuration change.
Start off with creating the memdisk grub.cfg. I saved it at build/grub.cfg (we’ll need this path later on):
insmod part_msdos configfile (hd0,msdos1)/boot/grub/grub.cfg
All this does is loading the module for reading the disk partitions (line 1) and loading the configuration file from the disk (line 2). Note that it doesn’t have to be located at /boot/grub/grub.cfg; you can change this path on the disk to whatever you like, just remember to apply the changes to the memdisk grub.cfg.
The second grub.cfg (the one on the disk) is pretty much up to you, except that you have to load the part_msdos module and set the root (which by default is memdisk):
insmod part_msdos set root=(hd0,msdos1)
Add your regular GRUB2 configuration below the line.
Finally, all that’s left is to create the binary. Note that you have to specify what file to include at what path in the memdisk:
bin/grub-mkstandalone -O x86_64-efi -o BOOTX64.EFI "boot/grub/grub.cfg=build/grub.cfg"
Blessing the binary on macOS
Macs require bootable binaries to be ‘blessed’ by a utility:
bless --verbose --folder=/Volumes/EFI --file=/Volumes/EFI/EFI/BOOT/BOOTX64.EFI --setBoot
Метод 1: вручную перенастроить загрузчик GRUB
Безусловно, наиболее эффективное исправление, с которого вам следует начать, поскольку оно наименее разрушительно — это вручную перенастроить загрузчик GRUB и убедиться, что приоритет отдается основной ОС.
Несколько затронутых пользователей подтвердили, что им наконец удалось обойти состояние восстановления GRUB, выполнив ряд инструкций, предназначенных для ручной перенастройки загрузчика GRUP для определения приоритета основной ОС.
Если этот сценарий применим, следуйте приведенным ниже инструкциям, чтобы сделать это непосредственно через меню восстановления GRUB:
- Когда ваш компьютер войдет в режим восстановления GRUB, введите следующую команду и нажмите Enter, чтобы просмотреть все доступные разделы: ls
- После того, как вы это сделаете, вы должны получить обзор всех разделов, которые в настоящее время есть на вашем основном диске. На этом этапе вам необходимо убедиться, что вы выбрали основную ОС. В нашем случае правильный раздел (hd0, msdos2), поэтому мы использовали следующую команду для опроса раздела: ls (hd0, msdos2)
Примечание. Убедитесь, что вы заменили раздел правильным примером в вашем случае. Если вы получили сообщение вроде «Файловая система — это ext2 или ext3», вы правильно определили раздел, в котором находится ваша основная ОС.Примечание 2: Если вы опрашиваете раздел и получаете сообщение «Файловая система неизвестна», вы выбрали неправильный раздел.
Сообщение об ошибке неправильного раздела в GRUB
- После выбора правильного раздела введите «set» и нажмите Enter, чтобы запросить и получить окончательный список вашего основного раздела.
- Затем введите следующие команды и нажмите Enter после каждой команды, чтобы изменить приоритет загрузчика GRUB на правильный: set boot = (hd0, msdos5) set prefix = (hd0, msdos5) / boot / grub insmod normal normal
- После того, как вы введете последнюю команду, вы попадете в главное меню GNU Grub. Как только вы попадете на этот экран, просто выберите ОС, с которой вы хотите загрузиться, и нажмите Enter.Загрузка с основного раздела в GRUB
В случае, если этот метод не сработал для вас и последовательность загрузки в конечном итоге загрузится с той же ошибкой No such Partition -Grub Rescue, вернитесь к следующему потенциальному исправлению ниже.
Что за жалобы про BIOS Boot Partition?[править]
При загрузке под PC BIOS используется MBR и небольшая свободная область диска после него (31 килобайт до 63-го сектора) — соответственно первая стадия и core.img; при использовании UEFI ожидается GPT-разбивка загрузочного диска, при которой нет ни MBR, ни этой области. Отсюда возникает необходимость встроить вторую стадию загрузчика куда-то ещё. Таким местом и решили взять определённый в GPT тип раздела BIOS Boot Partition.
Инструмент разбивки дисков в составе инсталятора ALT Linux сделает такой раздел автоматически под UEFI, если разбиваете вручную или большой диск для BIOS — может потребоваться создать раздел минимального объёма (RED Hat рекомендует 1 мегабайт) с типом «bios boot partition» в терминологии alterator-vm либо меткой «bios_grub» в терминологии parted.
Установка
It is recommended all systems should upgrade to GRUB2, since it supports all the same features sets as Legacy. Legacy was removed from the Gentoo ebuild repository.
Предварительные требования
Чтобы контролировать на какие платформы будет установлен установите переменную GRUB_PLATFORMS в файле make.conf. Архитектура amd64 включает в себя профиль по умолчанию, который подходит для большинства систем.
Файл Пример настройки GRUB_PLATFORMS для платформ EMU, EFI и PC
GRUB_PLATFORMS="emu efi-32 efi-64 pc"
Следующие платформы поддерживаются, в зависимости от целевого CPU:
Target | |||||||
---|---|---|---|---|---|---|---|
Platform | i386 | ia64 | mips | mipsel | powerpc | sparc64 | x86_64 |
ARC | No | No | No | Yes | No | No | No |
Coreboot | Yes | No | No | No | No | No | 32-bit |
EFI | Yes | Yes | No | No | No | No | Yes |
EMU | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
IEEE 1275 (Open Firmware) | Yes | No | No | No | Yes | Yes | 32-bit |
Loongson | No | No | No | Yes | No | No | No |
Multiboot | Yes | No | No | No | No | No | 32-bit |
QEMU | Yes | No | No | No | No | No | 32-bit |
QEMU-MIPS | No | No | Yes | No | No | No | No |
PC | Yes | No | No | No | No | No | 32-bit |
ЗаметкаКаждый раз когда значение в переменной GRUB_PLATFORMS корректируется GRUB2 необходимо будет перекомпилировать для перекомпиляции измененных двоичных файлов. Убедитесь, что это делается с опцией , как это показано в ниже.
Профили amd64 по умолчанию включают поддержку (U)EFI-функциональности. В случае использования систем на базе BIOS, установите в переменной GRUB_PLATFORMS значение , чтобы избежать ненужных зависимостей.
USE flags for
sys-boot/grub
GNU GRUB boot loader
Enable support for device-mapper from sys-fs/lvm2 | |
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally | |
Build and install the efiemu runtimes | |
Build and install fonts for the gfxterm module | |
Enable support for sys-fs/zfs | |
Build and install the grub-mount utility | |
Add Native Language Support (using gettextGNU locale utilities) | |
Add support for Simple Direct Layer (media library) | |
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) | |
Build and install GRUB themes (starfield) | |
Build and install grub-mkfont conversion utility |