1 (01.12.2014 14:37:40 отредактировано bormant)

Тема: Помогите победить 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 описано

Консоль
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

всё прошло успешно

Консоль
grub2-install --target=x86_64-efi
(правдо в выводе есть ошибки)
Консоль
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.

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

потом

Консоль
grub-mkconfig -o /boot/grub/grub.cfg

после перезагрузки не работает..

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

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

делал раздел 2мб с флагом EF02
и

Консоль
# grub-install --modules=part_gpt /dev/sdc
# grub-mkconfig -o /boot/grub/grub.cfg

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

2

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

VQV пишет

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

И в чём отличие?

VQV пишет

Консоль
Try 'modprobe efivars' as root.

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

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

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

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

3

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

PS. По поводу:

Консоль
# echo 'LABEL=efi-boot /boot/efi vfat defaults 0 2' >> /etc/fstab

хочу обратить внимание на:
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 и помнить -- решать вам.

+ VQV

4 (02.12.2014 05:57:51 отредактировано VQV)

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

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


Консоль

# modprobe efivars
modprobe: ERROR: could not insert 'efivars': No such device

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

5

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

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

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

6

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

Почти:

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

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

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

+ VQV

7

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

bormant пишет

Почти:

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

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

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


у меня Slackware 14.1 64

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

8

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

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

спасибо!

9

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

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

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

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

10

Re: Помогите победить 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), превращая сей чудный девайс в тыкву. Возможно, они в подобном не одиноки.