[Решено] Дуалбут. UEFI + GPT + grub2 + загрузчик windows 8 (меняет порядок загрузки).

Доброго времени суток, уважаемые.

Имеется:
Система с UEFI. SSD c GPT табличкой разделов, на нём две системы -- gentoo linux x86_64 и windows 8.
Windows 8 поставила свой загрузчик, для дженту по хендбуку поставил grub2.
Т.е. GRUB_PLATFORMS="efi-64" в make.conf, конфиги прописаны, установка примерно так.

Граб делает своё дело -- грузит выбранную систему. Однако если эта система windows 8 то в UEFI порядок загрузки меняется (!!) и Windows Boot Manager _занимает_первую_строчку_, и понятное дело, после перезагрузки проиходит прямая загрузка windows 8. Без захода в grub. Вот так выглядит настройка порядка загрузки в UEFI (под записью «gentoo» подразумевается grub2).

Менять вручную порядок бесполезно -- Windows Boot Manager пишет себя на первое место (после первой загрузки в windows 8). Даже если выставить только "gentoo". Я считаю что это просто свинское поведение с его стороны. Ну да речь не о том, собственно вопрос -- это как-нибудь лечится?

.

haku написал(а):
это как-нибудь лечится?

sys-boot/efibootmgr

Мы тоже не всего читали Шнитке!.. © В. Вишневский

efibootmgr -v |

efibootmgr -v | wgetpaste
Your paste can be seen here: http://bpaste.net/show/74137/

Похоже сейчас boot order правильный.
Перегрузился в windows и назад, выхлоп стал таким:

efibootmgr -v | wgetpaste
Your paste can be seen here: http://bpaste.net/show/74138/

дал команду

efibootmgr -o 0002,0000,0001

перезагрузился, попал в grub, выбрал windows 8, загрузился в неё, нажал перезагрузку и снова загрузился в windows минуя grub!
Она меняет порядок загрузки сама =(

efibootmgr -v | wgetpaste
Your paste can be seen here: http://bpaste.net/show/74141/

-_-

не пробовали играться с загрузчиком win8 из самой виндовс?

Если просто удалить Windows

Если просто удалить Windows Boot Manager, то и grub перестанет windows грузить, ведь сам grub просто передаёт ему управление.
Запустил EasyBCD -- он показал что загрузчик "gentoo" первый и по умолчанию. Врёт. Или показывает что-то не то.

Нашел выход из ситуации

была такая же проблема как у вас, но на ubuntu. помогло исключение в строчке
efibootmgr -o 0002,0000,0001
записи о виндовс, то ессть в ваше случае должно выглядеть так :
efibootmgr -o 0000,0001.

У меня Secure Boot нет. 7-ка

У меня Secure Boot нет. 7-ка стоит на отдельном диске (не разделе).
В качестве загрузчика юзаю refind. Мать Asus.
Гружу винду через биос. Просто выбираю нужный диск.
refind как был первый, так и стоит. Пару раз сбивался сам по себе, по крайнем мере никаких зависимостей я не заметил... тогда грузилось в винду. Приходилось грузится в генту с флешки и снова выполнять efibootmng.

Пока что у меня опыт работы с UEFI только негативный.

Вот и у меня сейчас вместо

Вот и у меня сейчас вместо менеджера загрузки кнопка F11 и выбор загрузочного устройства (типа как загрузится с флешки или cd-rom, только в gentoo).
И да -- тоже без Secure Boot.

У вас случаем нет команды

У вас случаем нет команды makeactive в grub, в секции, описывающей запуск Windows ?

Да нет, ничего похожего не вижу.

menuentry "Microsoft Windows Vista/7/8 x86_64 UEFI-GPT" {
        insmod part_gpt
        insmod fat
        insmod search_fs_uuid
        insmod chain
        search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 780B-8B6D
        chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

Вобщем, чтобы проверить в

Вобщем, чтобы проверить в грабе ли дело, собрал ядро как приложение EFI. И создал две новые EFI загрузочные записи:

efibootmgr --create  --label 'gentoo.efi' --loader '\bzImage.efi' --part 5
efibootmgr --create  --label 'Win8' --loader '\EFI\Microsoft\Boot\bootmgfw.efi' --part 5

Где bzImage.efi просто образ ядра лежащий в корне EFS раздела. Т.е. EFI передаёт упрвление выбранной ОС напрямую, не трогая GRUB. Фиг там. Gentoo нормально грузится, окошко создаёт свой "Windows Boot Manager" и ставит ему самый первый номер в списке загрузочных устройств.

Как раз для этого можно юзать

Как раз для этого можно юзать refind. То есть EFI грузить Refind, а уже в нем выбираем OS.

.

RazrFalcon написал(а):
для этого можно юзать refind. То есть EFI грузить Refind, а уже в нем выбираем OS

В данном случае как это поможет? Диспетчер rEFInd - точно такое же приложение EFI, соотв., если в BIOS очерёдность изменится, то и управление будет передаваться не в него, а снова в вынь-загрузчик...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

.

haku написал(а):
создал две новые EFI загрузочные записи:
...
efibootmgr --create --label 'Win8' --loader '\EFI\Microsoft\Boot\bootmgfw.efi' --part 5
...

А зачем две? Для вынь у вас запись и так уже была (созданная вынь-инсталлером) - лучше бы наоборот, удалили её нафих, добавить-то потом завсегда можно... И ещё - "part 5" это в какой (вернее - в чьей) нумерации? В EFI партиции не совпадают с партициями в понимании православного линуксоида (в конкретике не разбирался, но помню, что там там как-то хитро с этим)...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Две? Просто чтобы грузить обе

Две? Просто чтобы грузить обе системы без grub. Своими записями. Экспериментировал.
"--part 5" это EFS раздел (для UEFI он нужен). FAT32 с соответствующими флагами. sda5 по-нашему.

Поудалять / попереименовывать UEFI-записи попробую на днях. Отпишусь.

Да нет, знаешь, шаманил и

Да нет, знаешь, шаманил и так, и эдак. Ни в какую. Понятия не имею как ещё это можно обойти.

Специально зарегистрировался

грузишься с live cd ubuntu

sudo apt-get install efibootmgr
sudo efibootmgr

находишь номер точки входа в загрузчик windows boot mgr

допустим это номер boot0004

пишешь
sudo efibootmgr -b 0004 -a

делаешь ее не активной. У меня работает

Спасибо, однако efibootmgr -b

Спасибо, однако efibootmgr -b 0004 -A
И нет, после первой перезагрузки в шindoшs 8 всё возвращается на свои места. Ох уж этот UEFI.

Быть может, тут есть нужная

Быть может, тут есть нужная инфа?

Тут загрузка ядра средствами

Тут загрузка ядра средствами EFI, пробовл, работает, (можно выбросить такую сущность как GRUB). Однако в данном случае это не помогает, ибо проблема в порядке EFI-записей для загрузок и том что шиндовс его самовольно меняет.

Но всё-равно спасибо.

Публикую решение, может

Публикую решение, может кому-то сэкономит кучу нервов и сил:

  1. грузимся в windos
  2. запускаем cmd от root-а
  3. даём на выполнение строку "bcdedit /set {bootmgr} path \EFI\gentoo\grubx64.efi"
  4. Profit! (хоть и костыль): при каждой своей загрузке виндос по прежнему передёргивает uefi. Ставит первой загрузочной записью Windows Boot Manager. Однако теперь Windows Boot Manager передаёт управление grub2, в котором мы и выбираем что именно грузить.

P.S. Отдельное спасибо топику http://askubuntu.com/questions/235567/windows-8-removes-grub-as-default-boot-manager (не сочтите за рекламу).

Реклама – это ерунда, а вот

Реклама – это ерунда, а вот ссылки на бубунту, особенно в качестве решения для гентушников, некоторыми могут быть расценены как гнуснейшая ересь :D

А все-таки лучше снести

А все-таки лучше снести винду.

и почему?

и почему?

Beelzebubbie написал(а): и

Beelzebubbie написал(а):
и почему?

не нужна она... не нужна

_вообще_ не нужна? :D и

_вообще_ не нужна? :D и никому?

Beelzebubbie

Beelzebubbie написал(а):
_вообще_ не нужна? :D и никому?

изначально я имел в виду - на одном винте с линуксом,
но если так глобально... то тоже да, скорее не нужна, чем нужна

Пойми меня правильно, я винду

Пойми меня правильно, я винду плохо знаю, тем-более восьмую, тем-более их вуду-магию с порядком загрузки через Windows Boot Manager в UEFI.
Поэтому бубунте простое человеческое спасибо за нужную строку. Ещё бы 12309 побороть, но это уже оффтоп)

я не о себе говорил :) а

я не о себе говорил :) знания можно получить и с форумов MS

Beelzebubbie

Beelzebubbie написал(а):
Реклама – это ерунда, а вот ссылки на бубунту, особенно в качестве решения для гентушников, некоторыми могут быть расценены как гнуснейшая ересь :D

Пусть они сначала предложат Gentoo-style решение!.. ;)

православный метод

http://www.gentoo.ru/node/26656#comment-205146 вообще-то, этот метод куда проще

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

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