Both sides previous revisionPrevious revisionNext revision | Previous revision |
howtos:slackware_admin:linux_kernel_options_for_uefi_and_elilo [2019/05/08 19:18 (UTC)] – [Using the new EFI variable filesystem] Fixed linkrot for efibootmgr hwpfeil | howtos:slackware_admin:linux_kernel_options_for_uefi_and_elilo [2021/01/11 07:07 (UTC)] (current) – fix for mmcblk louigi600 |
---|
In order to boot from UEFI you need to create an EFI System Partition (ESP) using ''gdisk'' or ''cgdisk'' instead of the old ''fdisk'' and ''cfdisk''. The Slackware [[ftp://mirrors.usc.edu/pub/linux/distributions/slackware/slackware64-14.1/README_UEFI.TXT|README_UEFI.TXT]] recommends a size of 100M, which is also the minimum partition size (except for 4K native drives, where it is 260M). You also need to set the partition hex code to ''EF00'', which identifies it as the ESP. | In order to boot from UEFI you need to create an EFI System Partition (ESP) using ''gdisk'' or ''cgdisk'' instead of the old ''fdisk'' and ''cfdisk''. The Slackware [[ftp://mirrors.usc.edu/pub/linux/distributions/slackware/slackware64-14.1/README_UEFI.TXT|README_UEFI.TXT]] recommends a size of 100M, which is also the minimum partition size (except for 4K native drives, where it is 260M). You also need to set the partition hex code to ''EF00'', which identifies it as the ESP. |
==== UEFI and ELILO ==== | ==== UEFI and ELILO ==== |
During the install procedure of Slackware 14.1 for ELILO (the ''eliloconfig'' script), the following happens and is required for booting from UEFI using ELILO. | During the install procedure of Slackware 14.1 or above for ELILO (the ''eliloconfig'' script), the following happens and is required for booting from UEFI using ELILO. |
| |
- The EFI System Partition (ESP) is located and mounted. On a running system it is usually found already mounted at ''/boot/efi''. This is a special FAT partition that is basically the UEFI firmware replacement of what the MBR was for BIOS. However, it can not only hold a bootloader (all the MBR was capable of), but also config files, the kernel, and other things you might want to access using the UEFI firmware. | - The EFI System Partition (ESP) is located and mounted. On a running system it is usually found already mounted at ''/boot/efi''. This is a special FAT partition that is basically the UEFI firmware replacement of what the MBR was for BIOS. However, it can not only hold a bootloader (all the MBR was capable of), but also config files, the kernel, and other things you might want to access using the UEFI firmware. |
- The kernel, usually titled ''vmlinuz'' | - The kernel, usually titled ''vmlinuz'' |
- A boot entry variable is registered in the UEFI firmware using ''efibootmgr''. The exact command that is run is <code bash> | - A boot entry variable is registered in the UEFI firmware using ''efibootmgr''. The exact command that is run is <code bash> |
EFI_DEVICE=$(mount | grep vfat | grep -w /boot/efi | cut -b 1-8) | EFIDISK=$(df /boot/efi/ |awk 'END{printf("%s\n",$1)}') |
EFI_PARTITION=$(mount | grep vfat | grep -w /boot/efi | cut -f 1 -d ' ' | cut -b 9-) | EFI_DEVICE=$(sed 's%[0-9]\+$%%;s%\([0-9]\)p%\1%' <<< $EFIDISK) |
| EFI_PARTITION=$(sed 's%.*[a-z]\([0-9]\+\)$%\1%' <<< $EFIDISK) |
efibootmgr -q -c -d $EFI_DEVICE -p $EFI_PARTITION -l "\\EFI\\Slackware\\elilo.efi" -L "Slackware" | efibootmgr -q -c -d $EFI_DEVICE -p $EFI_PARTITION -l "\\EFI\\Slackware\\elilo.efi" -L "Slackware" |
</code> so if ''mount'' outputs <code>/dev/sda1 on /boot/efi type vfat (rw)</code>EFI_DEVICE would be ''/dev/sda'' and EFI_PARTITION would be ''1'', each components of ''/dev/sda1'', which is the ESP. | </code> so if ''mount'' outputs <code>/dev/sda1 on /boot/efi type vfat (rw)</code>EFI_DEVICE would be ''/dev/sda'' and EFI_PARTITION would be ''1'', each components of ''/dev/sda1'', which is the ESP. |