#1 01.12.2014 08:16:05

VQV
Administrator
Зарегистрирован: 04.05.2014
Сообщений: 15
IP-адрес

Помогите победить UEFI/GPT

Здравствуйте,

есть диск на который хочу поставить систему и чтоб она грузилась с этого диска

как я понял есть флаг EF00 - для UEFI и флаг EF00 - затычка для биоса

сначала хотел чтоб грузилось через UEFI

разбил диск так

   1            2048         2099199   1024.0 MiB  EF00   ------------------------- FAT32  >> /boot/efi (EF00)
   2         2099200         2433023   163.0 MiB   0700  --------------------------------- ext4 >> /boot
   3         2433024        54861823   25.0 GiB    0700 ----------------------------- ext4 >> /


делал как в wiki gentoo описано
[console]root # mkdosfs -F 32 -n efi-boot /dev/sdc1
root # mkdir /boot/efi
root # echo 'LABEL=efi-boot /boot/efi vfat defaults 0 2' >> /etc/fstab
root # mount /boot/efi[/console]
всё прошло успешно

[console]grub2-install --target=x86_64-efi[/console] (правдо в выводе есть ошибки)
[console]Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Installation finished. No error reported.[/console]

но всёравно после этого в в /boot/efi появляются файлы с расширениями .efi

потом

[console]grub-mkconfig -o /boot/grub/grub.cfg[/console]
после перезагрузки не работает..

ну и как тут http://docs.slackware.com/howtos:slackware_admin:installing_with_gpt_without_uefi описано тоже пробова

лило не работает
груб тоже

делал раздел 2мб с флагом EF02
и[console]# grub-install --modules=part_gpt /dev/sdc
# grub-mkconfig -o /boot/grub/grub.cfg
[/console]

* исправлена разметка сообщения. -- bormant

#2 01.12.2014 11:50:11

bormant
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 265
IP-адрес

Помогите победить UEFI/GPT

Quote by VQV
есть флаг EF00 - для UEFI и флаг EF00 - затычка для биоса

И в чём отличие?
Quote by VQV
[console]Try 'modprobe efivars' as root.[/console]

Дело говорит.

Тут нужно понимать, чего хочется.
Если MB грузится в режиме UEFI, то пункты загрузки прописаны в nvram. Доступ к nvram изнутри Линукса осуществляется посредством модуля efivars. Нет модуля -- не прописался в nvram пункт с GRUB-ом, загрузчик MB про него не в курсе.

В некоторых материнках можно пойти в утилиту настройки и прописать пункт руками, в других подобного сервиса может не быть.

После перезагрузки UEFI смотрит в nvram, загрузочного пункта с GRUB-ом там не видит, причины см.выше.

#3 01.12.2014 12:57:14

bormant
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 265
IP-адрес

Помогите победить UEFI/GPT

PS. По поводу:

[console]# echo 'LABEL=efi-boot /boot/efi vfat defaults 0 2' >> /etc/fstab[/console]

хочу обратить внимание на:
1) man fstab оттуда: http://linux.die.net/man/5/fstab
The first field, (fs_spec), describes the block special device or remote filesystem to be mounted.
...
Instead of giving the device explicitly, one may indicate the (ext2 or xfs) filesystem that is to be mounted by its UUID or volume label (cf. e2label(8) or xfs_admin(8)), writing LABEL=<label> or UUID=<uuid>, e.g., 'LABEL=Boot' or 'UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'.
Подчеркнуто мной. vfat нет в списке ФС, которые стоит прописывать по LABEL=.
Но дело даже не в этом. Если у меня в initrd нет драйвера vfat, то udev успевает дважды ругнуться по 10-секундному таймауту на ранней стадии загрузки. Если добавить в initrd модуль vfat (fat добавится по зависимостям), этот момент пройдет. Очевидно, без драйвера ФС читать метку с раздела FAT32 некому.

Вписать в /etc/fstab /dev/sda1 и забыть про необходимость добавлять -m vfat при генерации initrd, или оставить LABEL=efi-boot и помнить -- решать вам.

#4 02.12.2014 02:57:36

VQV
Administrator
Зарегистрирован: 04.05.2014
Сообщений: 15
IP-адрес

Помогите победить UEFI/GPT

есть флаг EF00 - для UEFI и флаг EF02* - затычка для биоса


[console]
# modprobe efivars
modprobe: ERROR: could not insert 'efivars': No such device
[/console]

и чтоб efivars заработал это мне надо с UEFI загрузится?

#5 02.12.2014 03:02:46

VQV
Administrator
Зарегистрирован: 04.05.2014
Сообщений: 15
IP-адрес

Помогите победить UEFI/GPT

примерно так должно выглядеть ?


/dev/sdb1        /boot/efi        auto        defaults         0   0

#6 02.12.2014 05:45:16

bormant
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 265
IP-адрес

Помогите победить UEFI/GPT

Почти:

/dev/sdb1        /boot/efi        vfat        defaults         0   0

чтобы efivars заработал это мне надо с UEFI загрузиться?

Да. При этом ядро должно быть собрано с поддержкой EFI (это так для Slackware64-14.1) и загружено без параметра noefi.

#7 02.12.2014 06:40:15

VQV
Administrator
Зарегистрирован: 04.05.2014
Сообщений: 15
IP-адрес

Помогите победить UEFI/GPT

Почти:
/dev/sdb1        /boot/efi        vfat        defaults         0   0

чтобы efivars заработал это мне надо с UEFI загрузиться?

Да. При этом ядро должно быть собрано с поддержкой EFI (это так для Slackware64-14.1) и загружено без параметра noefi.



у меня Slackware 14.1 64

как я смогу с UEFI загрузится если в меню загрузки UEFI нет пункта со слакой?

#8 02.12.2014 07:29:36

VQV
Administrator
Зарегистрирован: 04.05.2014
Сообщений: 15
IP-адрес

Помогите победить UEFI/GPT

всё разобрался заработало!!!

спасибо!

#9 02.12.2014 07:36:39

VQV
Administrator
Зарегистрирован: 04.05.2014
Сообщений: 15
IP-адрес

Помогите победить UEFI/GPT

ещё вопрос по разбивки

лучше оставить как есть отдельный раздел под /boot/efi

или сделать 1 раздел /boot ?

#10 02.12.2014 08:02:13

bormant
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 265
IP-адрес

Помогите победить UEFI/GPT

VQV,
Для UEFI нужен раздел типа EF00, нынешний /dev/sda1, отформатированный в FAT32 (то есть материнской плате он нужен для загрузки в UEFI режиме).
/boot удобнее иметь с Linux-овой ФС, поддерживающей симлинки и прочие прелести.
Отдельный раздел под /boot необязателен, если в nvram прописывать собственно ядро, лежащее на EF00 разделе. Если с этого раздела грузится только GRUB/ELILO, а ядро читает где-то еще (ну а вдруг?) и по каким-то причинам не может дотянуться до какой-то области диска (мало ли какие баги возможны от производителя материнки), то отдельный /boot может иметь смысл.
Но даже если это и не так и от отдельного /boot пользы в данном конкретном случае нет, то и вреда тоже нет никакого.

Резюме:
/boot/efi -- отдельный, EF00, FAT32
/boot -- или на корне, или отдельный, без разницы (если нет "специфики" имени производителя)

С efibootmgr поосторожнее, Samsung-овые ноутбуки имели зело легко изменяемые установки, позволяющие перезаписать в nvram запись загрузки программы настройки (то, что обычно называют Bios Setup Utility), превращая сей чудный девайс в тыкву. Возможно, они в подобном не одиноки.

Board footer