[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Action disabled: register

Welcome to the Slackware Documentation Project

Встановлення завантажувача Grub на UEFI обладнання

Встановлення та запуск Slackware на комп’ютер який використовує (Уніфікований Розширювальний Інтерфейс Прошивок Unified Extensible Firmware Interface (UEFI)) складніше, ніж це робиться на традиційному BIOS комп'ютері. Не можливо завантажити офіційний диск встановлювача напряму через UEFI, так як той не містить завантажувача UEFI.

Процес встановлення Slackware на систему з UEFI, описано на сторінці http://docs.slackware.com/howtos:slackware_admin:installing_on_uefi_hardware На тій сторінці описано процес створення USB носія, який буде у в змозі завантажити slackware.

На цій сторінці описано встановлення завантажувача Grub2 для систем базованих на UEFI. Grub2 має перевагу, так як може показувати меню, яке надає можливість зробити подвійне завантаження (dual boot) з Windows. Передбачається, що Slackware встановлена та завантажується на системі базованій на UEFI.

Наступна послідовність складається з

  1. Встановлення Grub2-efi на завантажувальну USB флешку (Цей крок можна пропустити, але безпечніше перевірити спочатку встановлення на флешку)
  2. Як тільки завантаження з USB флешки працює, Grub2-efi встановлюється на жорсткий диск
  3. Модифікація завантажувального меню UEFI

Встановлення Grub2-efi

Встановіть grub2 використовуючи slackbuild, але відредагуйте налаштування додавши

--with-platform=efi \ 

у ./configure

Потім дотримуйтесь інструкції з https://wiki.archlinux.org/index.php/Grub#UEFI_systems_2

Починаючи з монтування USB флеш носія у /boot/efi

#mount /dev/sdc1 -t vfat /boot/efi (where sdc1 is your USB stick)
#modprobe dm-mod
#grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck --debug
#mkdir -p /boot/grub/locale
#cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

Налаштуйте grub.cfg командою

#grub-mkconfig -o /boot/grub/grub.cfg

Цей процес повинен створити файл на USB носії

/EFI/grub/grubx64.efi.

З цієї миті рекомендовано перевірити, чи можливо завантажити USB флеш носій з grubx64.efi. Якщо система UEFI не бачить ії, скопіюйте файл у /EFI/BOOT/bootx64.efi

Встановлення grubx64.efi на жорсткий диск

Розділ EFI жорсткого диску, повинен бути смонтований. Цей розділ повинен мати структуру як наприклад:

/EFI/Boot/bootx64.efi

Там може бути директорія /EFI/Microsoft/Boot та файл для завантаження windows bootmgr.efi

Кращим шляхом зараз, це створити окрему нову директорію, наприклад /EFI/Linux/ та покласти в неї grubx64.EFI.

З цієї миті, варто перевірити, чи бачить система UEFI новий пункт завантаження Linux, зазвичай це можна зробити натиснувши клавішу F8 під час завантаження комп'ютера. Якщо система UEFI бачить новий пункт, далі буде не складно встановити Linux як варіант за замовченням. Також якщо нового пункту немає, то потрібно замінити пацюючий файл .efi (наприклад /EFI/Boot/bootx64.efi чи /EFI/Microsoft/Bootbootmgr.efi) чи відредагувати меню завантаження UEFI. Заміна існуючого файлу призведе к неможливості завантажувати Windows. Якщо ви маєте намір зробити подвійне завантажування, то потрібно відредагувати меню завантаження UEFI.

Редагування меню завантаження UEFI

Завантажте efibootmger з http://linux.dell.com/efibootmgr/

розпакуйте його, увійдіть у нову директорію, та запустіть make

Скопіюйте src/efibootmgr/efibootmgr у /usr/sbin та виконайте chown для root.

Змонтуйте розділ efi жорсткого диску у директорію /boot/efi

# mount /dev/sdXy -t vfat /boot/efi 
де X = диск, та y = розділ
# modprobe efivars
# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Linux" -l '\EFI\Linux\bootx64.efi' 
припускається що файл grubx64.efi скопійовано до \EFI\Linux\bootx64.efi

Під час наступного перезавантаження Linux з Grub, з'явиться меню у завантажувачі.

Джерела

* Автор статті arubin

 uk:howtos:slackware_admin:set_up_grub_as_boot_loader_on_uefi_based_hardware ()
This translation is older than the original page and might be outdated. See what has changed.