ПРЕДУПРЕЖДЕНИЕ! Всё, что вы делаете со своим компьютером вы делаете на свой страх и риск. Эта заметка создавалась с целью сохранения накопленного опыта для себя. Возможно, в будущем, я ещё раз проверю все действия и внесу в текст уточнения.
Уж очень много времени убил на поиск рабочего варианта. Итак!
Во-первых, при разметке диска нужно создать раздел с файловой системой FAT. На нём и будут располагаться ядро системы или Grub 2. Этот раздел нужно подключить в /boot/EFI. Хотя я в своё время сделал весь раздел /boot в FAT32. Далее рассматривается именно этот вариант.
Что нам понадобится:
- sys-boot/grub — непосредственно GRUB2. Не забываем включить efi-64 в GRUB_PLATFORMS в файле /etc/portage/make.conf.
- sys-boot/os-prober — нужен если мы ходим, чтобы GRUB2 находил что-то ещё, кроме ядер Linux, например, загрузчик Windows.
- sys-boot/efibootmgr — утилита для настройки EFI.
После сборки нужных пакетов устанавливаем GRUB2:
grub2-install --target=x86_64-efi --efi-directory=/boot
Не забываем положить нужные ядра в /boot. После этого можно сгенерировать конфиг для grub2:
grub2-mkconfig -o /boot/grub/grub.cfg
Проверим, всё ли в порядке c EFI:
# efibootmgr -v BootCurrent: 0000 Timeout: 1 seconds BootOrder: 0000,0001 Boot0000* GRUB2 HD(1,800,f3800,927dfa8b-a8da-4a33-ae18-3cbab9449dbb)File(\EFI\gentoo\grubx64.efi) Boot0001* Windows Boot Manager HD(1,800,96000,b0a33380-d8c1-4402-b7da-7d1214ebfd4c)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...s................
У меня почему-то после первой установки был указан тот же диск, что и для Windows. В любом случае можно удалить неугодные записи через:
efibootmgr -b XXXX -B
и создать угодную нам. ВНИМАНИЕ! Главное не перестарайтесь и не полудаляйте что-нибудь ценное.
efibootmgr -c -d /dev/sdb -p 1 -L "GRUB2" -l \\EFI\\gentoo\\grubx64.efi
(двойных слешей можно не делать, если взять имя файла в кавычки). Обратите внимание на направление слеша - оно не типичное для *nix систем.
Если лень ждать каждый раз загрузку GRUB и выбирать ядро, можно скопировать нужную версию ядра в любую папку в /boot/EFI и указать путь к ней:
efibootmgr -c -d /dev/sdb -p 1 -L "Gentoo Linux" -l \\EFI\\gentoo\\vmlinuz.efi
В результате получим что-то вроде:
# efibootmgr -v BootCurrent: 0000 Timeout: 1 seconds BootOrder: 0000,0002,0001 Boot0000* Grub 2 HD(1,800,f3800,927dfa8b-a8da-4a33-ae18-3cbab9449dbb)File(\EFI\gentoo\grubx64.efi) Boot0001* Windows Boot Manager HD(1,800,96000,b0a33380-d8c1-4402-b7da-7d1214ebfd4c)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...s................ Boot0002* Gentoo Linux HD(1,800,f3800,927dfa8b-a8da-4a33-ae18-3cbab9449dbb)File(\EFI\gentoo\vmlinuz.efi)
Проверяем что пути к файлам указаны верно, слеш в нужную сторону (я убил некоторое время пока пытался использовать разделитель "/", потом ещё немного времени, с тем, чтобы правильно прописался "\".
Если что-то сделали не так (кстати, нужно определённым образом сконфигурировать ядро, об этом позже), то просто выбираем в меню загрузки GRUB2 и грузим рабочее ядро. Если грузить ядро напрямую, то загрузка компьютера производится очень быстро!!!