[РЕШЕНО] GRUB2. UEFI + Gentoo + Windows 10 на одном HDD. Хочу уточнить, правильно ли я понял?

Здравствуйте! Пытаюсь разобраться с двойной установкой Gentoo + Windows с UEFI и диском с GPT. Есть установленная Win10, которая уже создала свой раздел на /dev/sda2 в формате FAT32. В parted "p" он отображается с Flags = boot, esp. По hendbook нужно сказать parted
(parted)set 2 bios_grub on
Вроде бы, мне нужно будет GRUB2 ставить в раздел /dev/sda2. Я так понял, что он просто допишется в этот раздел при
root #grub-install --efi-directory=/boot/efi
и потом, в UEFI, можно будет выбрать из 2х загрузчиков - видовый и GRUB2. Вот вопрос, нужно ли делать это "set 2 bios_grub on" или нет? Просто я боюсь, что если сделать "set", то Винда потом не загрузится.

Простите, за нубский вопрос, я последний раз gentoo ставил году в 2007 :), тогда всё было проще, было просто MBR и всё. И я не делал двойную загрузку, сносил винду напрочь :) Тогда у меня этих вопросов не возникало :)

/

1. Дуалбут ненужен!
2. Груб ненужен.
3. GPT скорее полезен.
4. sys-boot/refind в помощь.

:wq
--
Live free or die

Спасибо большое! Завтра

Спасибо большое! Завтра попробую сделать, как Вы советуете, по модному :) Нашел статью https://geektimes.ru/post/275854/ Сейчас разбираюсь :)

Не нужны никакие грубы и рефайнды

Собственно, для загрузки в UEFI-системах и пресловутый-какой-то-там-рефайнд тоже ни к чему. Вам свистульки, или ехать?

Провозился несколько дней с

Провозился несколько дней с этим UEFI - вроде бы всё, теперь понял про эти новшества, в общих чертах, НО никак не могу заставить этот rEFInd загружать ядро. Подскажите, где копать? Ситуация такая.
/dev/sda2 - ESP
/dev/sda8 - /
/dev/sda6 - /boot

Сделал chroot, установил portage и всё прочее по handbook. Установил rEFInd по этой инструкции
https://wiki.gentoo.org/wiki/Refind
записал rEFInd в NVRAM
и так (по инструкции в вышеприведенной ссылке)
# efibootmgr -c -l '\EFI\refind\refind_x64.efi' -L rEFInd -p 1
и так (http://www.rodsbooks.com/refind/installing.html#linux)
# efibootmgr -c -l \\EFI\\refind\\refind_x64.efi -L rEFInd2

В UEFI пробую по очереди загрузку с помощью этих созданных записей (rEFInd и rEFInd2). Ожидаю, увидеть интерфейс загрузки rEFInd и, то, что будет грузитсья хотя бы Win10. В итоге после перезагрузки попадаю обратно в UEFI(BIOS). Т.е. ничего не загружается (меню от rEFInd не наблюдаю). Что я делаю не так? Подскажите пожалуйста, мне ещё ядро настраивать, потом ещё дрова от nVidia и CUDA, и Theano с CUDA'ой скрещивать, закопался я совсем, на этой загрузке застрял :)

А в UEFI(BIOS) случаем нельзя

А в UEFI(BIOS) случаем нельзя ли выбрать что за систему загружать?
Ну и на всякий случай - а установка и настройка были сделаны загрузившись в UEFI режиме?

Можно. В UEFI я выбираю, что

Можно. В UEFI я выбираю, что загружать, Wind'у или rEFInd. Выбираю, разумеется, rEFInd.

Ну вообще изначально я накосячил при установке rEFInd'а. Я загрузился с minimal CD, который загрузился в режиме legacy, разметил диск по handbook, установил portage, скомпилировал ядро и пр. Потом сделал emerge sys-boot/refind. Только потом смонтировал ESP в /boot/efi (папку efi я создал сам, поскольку у меня её не было), скопировал всё, что было надо по (https://wiki.gentoo.org/wiki/Refind) в соотв места в ESP, да ещё и скрипт запустил refind-install, хотя нужно было что-то одно сделать (или вручную или скрипт). При этом efibootmgr не запускал. Потом после перезагрузки понял, что ничего не грузится, решил запустить efibootmgr. Смонтировал всё обратно, сделал chroot, установил efibootmgr и запустил, он не отработал, поскольку я был в режиме legacy и он не имел доступа к VMRAM. Потом загрузился с SystemRescueCd (на этот раз получилось загрузиться в EFI-режиме) (http://www.system-rescue-cd.org/) опять всё смонтировал и сделал chroot и только потом у меня смог отработать efibootmgr. Т.е. не совсем по инструкции получилось :)

PS У меня материнка ASUS P9X79E_WS (https://www.asus.com/ru/Motherboards/P9X79E_WS/overview/) БИОС обновлял в 2013 - 2016 (точно не помню). Данные из UEFI. Версия BIOS (1704 x64); Дата создания (05/08/2015); Версия EC (MBEC-x79-0606); Версия ME (8.1.10.1286). Хотя внизу экрана написано Version 2.10.1208. Copyright (2013) American и пр.

Тоесть, сам rEFInd

Тоесть, сам rEFInd запускается, можно бродить по его менюшкам но он не находит ОС ?

Нет, как раз rEFInd и не

Нет, как раз rEFInd и не запускается. Начинается загрузка, но до rEFInd (и до его меню) дело так и не доходит. Просто комп грузится, а потом сам попадает в UEFI(bios) (без всякого нажатия Del или F2).

Кстати, тоже самое происходит, если попытаться загрузится с minimal CD, заспанному на флешку. Т.е. если в UEFI поставить флешку единственным устройством для загрузки в режиме uefi, то при загрузке опять попадаешь в UEFI(bios) и так каждый раз, до тех пор пока в ручную в UEFI не выберешь загрузиться с usb(флешка, без uefi). При этом, если записать этот образ (http://www.system-rescue-cd.org/) , то всё ок, грузиться с флешки и в uefi снова не попадает.

Похоже, что я понял в чем

Похоже, что я понял в чем дело, только не знаю, как поправить. Вот вывод команды efibootmgr -v
https://cloud.mail.ru/public/DTt6/N24X6raKS
Получается, что efi запись Microsoft и refinder ссылаются на разные разделы диска - HD(2, GPT, .....) и HD(1, GPT, .....) соответственно. Как можно указать конкретный диск efibootmgr'у при создании записи в NVRAM? Хотелось бы точной подсказки, а то я начитался в интернетах про окирпичивании мат. плат - не хочется лишний раз экспериментировать с NVRAM и efibootmgr :)

refind-install вообще-то

refind-install

вообще-то есть
ну а про порчу nvram – да, сталкивался с устойчивым косяком на каком-то ноуте гнусмаса. в этом случае как раз-таки рефинд и полезен, ибо при обновлении ядра не надо ничего изменять в nvram.

вот рабочая конфигурация:
# mount /boot/efi
# lsl /boot/efi/EFI/gentoo/ ↑
total 10308
-rwxr-xr-x 1 root root 793 Mar 26 12:40 refind_linux.conf
-rwxr-xr-x 1 root root 5273856 Mar 31 13:58 vmlinuz-4.10_p2-pf-Mar21.efi
-rwxr-xr-x 1 root root 5275040 Apr 4 09:33 vmlinuz-4.10_p3-pf-Apr04.efi

# lsl /boot/efi/EFI/tools ↑ 5m
total 1920
-rwxr-xr-x 1 root root 74834 Mar 22 2016 gptsync_x64.efi
-rwxr-xr-x 1 root root 5020 Mar 26 2016 MemTest86.log
-rwxr-xr-x 1 root root 930136 Mar 22 2016 memtest86_x64.efi
-rwxr-xr-x 1 root root 943552 Mar 27 2016 shell.efi

# lsl /boot/efi/EFI/refind/drivers_x64
total 364
-rwxr-xr-x 1 root root 83584 Nov 2 08:37 btrfs_x64.efi
-rwxr-xr-x 1 root root 67642 Nov 2 08:37 ext2_x64.efi
-rwxr-xr-x 1 root root 68154 Nov 2 08:37 ext4_x64.efi
-rwxr-xr-x 1 root root 67678 Nov 2 08:37 iso9660_x64.efi
-rwxr-xr-x 1 root root 76361 Nov 2 08:37 ntfs_x64.efi

# cat /boot/efi/EFI/gentoo/refind_linux.conf
"Default" "root=PARTUUID=xxxxxxxxx ro rootfstype=btrfs resume=PARTUUID=yyyyyyy enable_mtrr_cleanup mtrr_spare_reg_nr=1"
"-mtrr" "root=PARTUUID=xxxxxxxxx ro rootfstype=btrfs resume=PARTUUID=yyyyyyy"
"Console" "root=PARTUUID=xxxxxxxxx ro rootfstype=btrfs resume=PARTUUID=yyyyyyy quiet nox"
"Console+PM debug" "root=PARTUUID=xxxxxxxxx ro rootfstype=btrfs resume=PARTUUID=yyyyyyy quiet nox no_console_suspend"
"Emergency" "root=PARTUUID=xxxxxxxxx ro rootfstype=btrfs 1"

# GR '^ *[^#]' /boot/efi/EFI/refind/refind.conf ↑
timeout 10
textonly
textmode 2
showtools shell, memtest, windows_recovery, about, reboot, exit, firmware
scanfor internal,external,hdbios,biosexternal,optical,cd
scan_delay 2
dont_scan_dirs ESP:/EFI/boot,EFI/Dell,EFI/memtest86
default_selection "SSD_EFI,vmlinuz"

в refind.conf все menuentry отключены:

menuentry * {
    …
    disabled
}

Похоже, что тоже сам

Похоже, что тоже сам разобрался :) Эта строчка меня спасла
efibootmgr -c -l \\EFI\\refind\\refind_x64.efi -L rEFIndMULTI -d /dev/sda -p 2

Анархисты не нужны,

ходить только строем, печатая шаг, начинать только с левой ноги! %)

нужен os-prober или как там его, в общем чтоб вин увидел и в конфиг груба добавил. Я делал без efi по старинке как двойную загрузку с вин 7. Тогда и в вин можно выбрать windows/gentoo и в grub тоже windows/gentoo

bcdedit /create /d "Gentoo" /application BOOTSECTOR
bcdedit /set {ID} device partition=c:
bcdedit /set {ID}  path \gentoo.bin
bcdedit /displayorder {ID} /addlast
bcdedit /timeout 7

типа такого. Выглядит страшно, но работает
а grub ставил в /dev/sda насколько помню

Спасибо! Попробую совет

Спасибо! Попробую совет Anarchist'а, уж больно красиво автор статьи https://geektimes.ru/post/275854/ всё рассказал, подробно :) Похоже на более современный вариант. Если не получится, то попробую Ваш вариант. Ещё раз спасибо за помощь.

Всем огромное спасибо,

Всем огромное спасибо, проблема решена! Всё грузится, буду переходить к настройке ядра. Отдельное спасибо, Anarchist'у за наводку на rEFInd - теперь у меня всё красиво и удобно загружается :)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".