Bootloader? Не, не слышали... Загрузка через EFISTUB без костылей

Опрос

Пользуетесь ли вы UEFI загрузкой?
Да, это стильно-модно-молодежно
Пользовался бы, но нет железа с поддержкой
Нафик оно надо? У меня и так все хорошо
А?
vasek
Похоже, неправильно оформлен fstab - почитай внимательнее 1 страницу топика
Запись в fstab:
UUID=7FC3-0F91 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
правильная.
Если б не было EFI (а был бы чистый grub), то с уверенностью бы заявил, что fstab здесь не причем.
Как когда то писал Natrio - fstab не имеет прямого отношения к загрузчику. Когда монтируется корень, будь он как угодно прописан в fstab – сам fstab в этот момент находится в ещё не смонтированном корне и потому ещё недоступен.
Да и сам экспериментировал — вполне можно загружаться и без fstab.
А вот с EFI не работал никогда, ничего сказать не могу. Так что жди прихода спецов по нему.
Ошибки не исчезают с опытом - они просто умнеют
vasek
Если б не было EFI
А какая разница, EFI или GRUB?
На момент монтирования корня ядром fstab всё равно недоступен.
Загрузчик (GRUB или EFI) тут ни при чём – он всего лишь передаёт ядру строчку параметров ДО старта ядра, и уж тем более никакой загрузчик не умеет парсить fstab :)
Natrio, мозгами это понимаю, но не знание процесса загрузки EFI вызывало сомнения.
Прошу прощения за offtop, но интересен один технический момент:
Исходя из вывода - $ zgrep FAT_DEFAULT_IOCHARSET /proc/config.gz................CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
и сообщения об ошибке - FAT: IO charset ISO-8859-1 not found
следует ли, что ядро еще и не грузилось???
Ошибки не исчезают с опытом - они просто умнеют
Проблема с кодировкой решилась добавлением модуля nls_iso8859-1 в mkinitcpio.conf. Теперь при загрузке система пишет:
:: mounting '/dev/sda1' on real root
:: running cleanup hook [udev]
ERROR: Root device mounted successfully, but /sbin/init does not exist.
/etc/fstab:
# UUID=0844cf34-38f2-4354-be76-506e76b11655
/dev/sda2    /    reiserfs    rw,relatime    0 1

# /dev/sda1
UUID=7FC3-0F91    /boot     vfat    rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro    0 2

# UUID=87d71a5f-f9da-4d06-a827-74f6a094d26b
/dev/sda3    /home    ext4    rw,relatime    0 2
Grub же загружает систему как положено, без проблем.
Да, есть ли какая-нибудь разница между UUID и /dev/sdX в fstab?
efibootmgr
есть ли какая-нибудь разница между UUID и /dev/sdX в fstab?
Есть.
1) UUID это ID ФС на разделе, sdX – номер устройства в порядке инициализации при загрузке.
2) UUID длиннее и его невозможно вписать руками по памяти, только копипастить.
3) /dev/sdX может меняться при перезагрузке, если у вас несколько таких девайсов, подключённых к разным контроллерам.
вот спасибо, завелось с пол оборота, все работает...запилил флешку, грузится на разном железе - и с BIOS и с UEFI (флешку разбил после ознакомления с этим блогом )
farwayer
Добавляем BootXXXX запись с помощью efibootmgr:

# modprobe efivars
как по мне, то это не работает до тех пор, пока не поправить вот так
# modprobe efivarfs
а в остальном все получилось и в паре с ssd просто прелесть
...правда вместо длиннющих
UUID=<хз_чьо>
использовал
PARTLABEL=<имя раздела>
которое можно изменить в gdisk по ключу с, либо пользовать то, что gdisk присвоит по умолчанию
Я использую GPT разметку и загрузку в режиме EFI, потому что мне так удобнее, а не стильно-модно-молодежно :))
 
Зарегистрироваться или войдите чтобы оставить сообщение.