Translations:Handbook:X86/Blocks/Bootloader/2/ta

From Gentoo Wiki
Jump to:navigation Jump to:search

!!FUZZY!!There are a few very small exceptions to this 64-bit UEFI firmware rule, namely few early Apple Macs and some Intel Atom powered Dell tablet PCs had support for 32-bit UEFI firmware. The vast majority of readers will never encounter 32-bit UEFI firmware in the wild. For this reason 32-bit UEFI firmware is not covered in the Handbook.


லினக்ஸ் கர்னல் உள்ளமைக்கப்பட்டு, முறைமை கருவிகள் நிறுவப்பட்டு, உள்ளமைவு கோப்புகள் எல்லாம் திருத்தப்பட்டுவிட்டதால், இப்போது லினக்ஸ் நிறுவலின் இறுதி முக்கியமான பாகமான துவக்க ஏற்றியை நிறுவ வேண்டிய நேரம் வந்துவிட்டது.

துவக்க ஏற்றி, துவக்கத்தின்போது லினக்ஸ் கர்னல் துவங்குவதற்கு இது பொறுப்பாகும் - இது இல்லாமல் முறைமைக்குத் திறன் பொத்தானை அழுத்தியவுடன் எவ்வாறு மேற்கொண்டு செல்வது என்று தெரியாது.

கட்டமைப்பிற்கு, BIOS அடிப்படையிலான முறைமைகளுக்கு GRUB2 அல்லது LILO வையும், UEFI அடிப்படையிலான முறைமைகளுக்கு GRUB2 அல்லது efibootmgr வையும் எவ்வாறு உள்ளமைப்பது என நாங்கள் ஆவணப்படுத்தியுள்ளோம்.

கையேட்டின் இந்த பிரிவில், துவக்க ஏற்றித் தொகுப்பை emerge செய்தல் ற்கும், துவக்க ஏற்றியை முறைமை வட்டில் install செய்தல் ற்கும் உள்ள வேறுபாடு விரித்துரைக்கப்பட்டுள்ளது. இங்கு emerge செய்தல் என்பது ஒரு மென்பொருள் தொகுப்பை Portage இடம் கேட்டு முறைமைக்குக் கிடைக்கும்படி செய்வதாகப் பொருள் கொள்ளப்படும். மேலும், install செய்தல் என்பது துவக்க ஏற்றி, கோப்புகளை நகலெடுப்பது அல்லது முறைமையின் வட்டு இயக்ககத்தில் உள்ள பொருத்தமான பிரிவுகளில் மாற்றங்களைச் செய்வது மூலம் துவக்க ஏற்றி செயல்படுத்தப்பட்டு அடுத்த திறன் சுழலில் வேளை செய்ய ஆயத்தமான நிலையில் வைப்பதைக் குறிக்கிறது.

முன்னிருப்பு: GRUB2

இயல்பாக, பெரும்பாலான ஜென்டூ முறைமைகள் GRUB மரபுவழி யின் நேரடி பின்வருநரான GRUB ஐ சார்ந்துள்ளது (sys-boot/grub தொகுப்பில் காணப்படும்). கூடுதல் உள்ளமைவுகள் எதுவும் இல்லாமல் GRUB2 ஆனது பழைய BIOS ("pc") முறைமைகளை ஆதரிக்கிறது. கட்டுதல் நேரத்திற்கு முன் தேவைப்படும் சிறு அளவிலான உள்ளமைவுகள் மூலம், ஆறிற்கும் அதிகமான கூடுதல் இயங்குதளங்களை GRUB2 ஆதரிக்கும். மேலும் தகவல்களுக்கு, GRUB2 கட்டுரையில் உள்ள முன் தேவை பிரிவை காணவும்.

இ-ஒன்றாக்குதல் (Emerge)

MBR பகிர்வு அட்டவணைகளை மட்டுமே ஆதரிக்கும் பழைய BIOS முறைமையைப் பயன்படுத்தும் போது, GRUB ஐ emerge செய்யக் கூடுதல் உள்ளமைவுகள் எதுவும் தேவையில்லை:

root #emerge --ask --verbose sys-boot/grub:2

UEFI பயனர்களுக்கான குறிப்பு: மேலுள்ள கட்டளையை இயக்குவது செயல்படுத்தப்பட்டுள்ள GRUB_PLATFORMS மதிப்புகளை emerge செய்வதற்கு முன் வெளியிடும். UEFI திறனுடைய முறைமைகளைப் பயன்படுத்தும்போது, GRUB_PLATFORMS="" என்பது செயல்படுத்தப்பட்டுள்ளதைப் பயனர்கள் உறுதிசெய்ய வேண்டும். அவ்வாறு இல்லையென்றால், GRUB2 வை emerge செய்வதற்கு முன் /etc/portage/make.conf கோப்பில் GRUB_PLATFORMS="" என்பதைச் சேர்க்க வேண்டும். இதன்மூலம் தொகுப்பு EFI செயல்பாட்டுடன் உருவாக்கப்படும்.

root #echo 'GRUB_PLATFORMS=""' >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub:2

If GRUB was somehow emerged without enabling GRUB_PLATFORMS="", the line (as shown above) can be added to make.conf and then dependencies for the world package set can be re-calculated by passing the --update --newuse options to emerge:

root #emerge --ask --update --newuse --verbose sys-boot/grub:2

GRUB2 மென்பொருள் முறைமையோடு ஒன்றாக்கப்பட்டுள்ளது, ஆனால் இன்னும் நிறுவப்படவில்லை.

நிறுவுதல்

அடுத்து, grub-install கட்டளையின் மூலம் தேவையான GRUB2 கோப்புகளை /boot/grub/ அடைவில் நிறுவவும். முதல் வட்டு (முறைமை துவங்கும் இடம்) /dev/sda என்னும் கருதலில், பின்வரும் கட்டளைகளுள் ஒன்று இதைச் செய்யும்:

  • BIOS ஐ பயன்படுத்தும்போது:
root #grub-install /dev/sda

For DOS/Legacy BIOS systems:

root #grub-install /dev/sda
  • UEFI ஐ பயன்படுத்தும்போது:
Important
grub-install ஐ இயக்குவதற்கு முன் EFI முறைமை பகிர்வு ஏற்றப்பட்டுள்ளதா என்பதை உறுதிசெய்து கொள்ளவும். ஏனென்றால் grub-install ஆனது GRUB EFI கோப்பை () எந்தவொரு அடையாளத்தையும் காட்டாமல் தவறான அடைவில் நிறுவி விட வாய்ப்புள்ளது.

For UEFI systems:

root #grub-install --target= --efi-directory=/boot

Upon successful installation, the output should match the output of the previous command. If the output does not match exactly, then proceed to Debugging GRUB, otherwise jump to the Configure step.

Optional: Secure Boot

The sys-boot/grub package does not recognize the secureboot USE flag, this is because the GRUB EFI executable is not installed by the package but is instead built and installed by the grub-install command. GRUB must therefore be manually signed after installation to the boot partition. Additionally, GRUB is a modular bootloader but loading modules is prohibited when Secure Boot is enabled. Therefore all necessary modules must be compiled into the GRUB EFI executable, below an example is shown including some basic modules, this may have to be adjusted for more advanced configurations:

root #emerge --noreplace sbsigntools
root #export GRUB_MODULES="all_video boot btrfs cat chain configfile echo efifwsetup efinet ext2 fat font gettext gfxmenu gfxterm gfxterm_background gzio halt help hfsplus iso9660 jpeg keystatus loadenv loopback linux ls lsefi lsefimmap lsefisystab lssal memdisk minicmd normal ntfs part_apple part_msdos part_gpt password_pbkdf2 png probe reboot regexp search search_fs_uuid search_fs_file search_label sleep smbios squash4 test true video xfs zfs zfscrypt zfsinfo"
root #grub-install --target= --efi-directory= --modules=${GRUB_MODULES} --sbat /usr/share/grub/sbat.csv
root #sbsign /EFI/GRUB/grubx64.efi --key /path/to/kernel_key.pem --cert /path/to/kernel_key.pem --out /EFI/GRUB/grubx64.efi

To successfully boot with secure boot enabled the used certificate must either be accepted by the UEFI firmware, or shim must be used as a pre-loader. Shim is pre-signed with the third-party Microsoft Certificate, accepted by default by most UEFI motherboards.

How to configure the UEFI firmware to accept custom keys depends on the firmware vendor, which is beyond the scope of the handbook. Below is shown how to setup shim instead:

root #emerge sys-boot/shim sys-boot/mokutil sys-boot/efibootmgr
root #cp /usr/share/shim/BOOTX64.EFI /EFI/GRUB/shimx64.efi
root #cp /usr/share/shim/mmx64.efi /EFI/GRUB/mmx64.efi

Shims MOKlist requires keys in the DER format, since the OpenSSL key generated in the example here is in the PEM format, the key must be converted first:

root #openssl x509 -in /path/to/kernel_key.pem -inform PEM -out /path/to/kernel_key.der -outform DER
Note
The path used here must be the path to the pem file containing the certificate belonging to the generated key. In this example both key and certificate are in the same pem file.

Then the converted certificate can be imported into Shims MOKlist:

root #mokutil --import /path/to/kernel_key.der

And finally we register Shim with the UEFI firmware. In the following command, boot-disk and boot-partition-id must be replaced with the disk and partition identifier of the EFI system partition:

root #efibootmgr --create --disk /dev/boot-disk --part boot-partition-id --loader '\EFI\GRUB\shimx64.efi' --label 'shim' --unicode
Debugging GRUB

When debugging GRUB, there are a couple of quick fixes that may result in a bootable installation without having to reboot to a new live image environment.

In the event that "EFI variables are not supported on this system" is displayed somewhere in the output, it is likely the live image was not booted in EFI mode and is presently in Legacy BIOS boot mode. The solution is to try the removable GRUB step mentioned below. This will overwrite the executable EFI file located at /EFI/BOOT/BOOTX64.EFI. Upon rebooting in EFI mode, the motherboard firmware may execute this default boot entry and execute GRUB.

Important
grub-install ஆனது Could not prepare Boot variable: Read-only file system போன்ற பிழைகளை அளித்தால், வெற்றி அடைவதற்கு, efivars சிறப்பு ஏற்றத்தைப் படிக்க-எழுதக் கூடியதாக மறு ஏற்றம் செய்ய வேண்டிய தேவை ஏற்படலாம்.
root #mount -o remount,rw /sys/firmware/efi/efivars
root #mount -o remount,rw,nosuid,nodev,noexec --types efivarfs efivarfs /sys/firmware/efi/efivars

This is caused by certain non-official Gentoo environments not mounting the special EFI filesystem by default. If the previous command does not run, then reboot using an official Gentoo live image environment in EFI mode.

Some motherboard manufacturers with poor UEFI implementations seem to only support the /EFI/BOOT directory location for the .EFI file in the EFI System Partition (ESP). The GRUB installer can create the .EFI file in this location automatically by appending the --removable option to the install command. Ensure the ESP has been mounted before running the following command; presuming it is mounted at (as defined earlier), run:

root #grub-install --target= --efi-directory=/boot --removable

இது UEFI தனிக்குறிப்பீட்டால் வரையறுக்கப்பட்ட முன்னிருப்பு அடைவை உருவாக்கி, பின் அதில் உள்ள 'முன்னிருப்பு' EFI கோப்பு இருப்பிடத்தில் கோப்பை நகலெடுத்து வைக்கும்.

உள்ளமைத்தல்

அடுத்து, /etc/default/grub கோப்பு மற்றும் /etc/grub.d குறுநிரல்களில் குறிப்பிட்டுள்ள பயனர் உள்ளமைவுகளின் அடிப்படையில் GRUB2 உள்ளமைவை உருவாக்கவும். பெரும்பாலான வழக்கில், எந்த கருநிரலை துவக்க வேண்டும் (/boot/ இல் கிடைக்கக்கூடிய மிக உயர்ந்த ஒன்று) மற்றும் என்ன வேர் கோப்பு முறைமை என்பதைத் தானியக்கமாக GRUB2 ஆனது கண்டறியும் என்பதால் பயனர் அளிக்கக்கூடிய உள்ளமைவுகள் எதுவும் தேவைப்படாது. GRUB_CMDLINE_LINUX மாறியைப் பயன்படுத்தி /etc/default/grub இல் கருநிரல் அளவுருக்களை பின்னொட்டு செய்ய இயலும்.

இறுதி GRUB2 உள்ளமைவை உருவாக்க, grub-mkconfig கட்டளையை இயக்கவும்:

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-
Found initrd image: /boot/initramfs-genkernel--
done

The output of the command must mention that at least one Linux image is found, as those are needed to boot the system. If an initramfs is used or genkernel was used to build the kernel, the correct initrd image should be detected as well. If this is not the case, go to /boot/ and check the contents using the ls command. If the files are indeed missing, go back to the kernel configuration and installation instructions.

Tip
இணைக்கப்பட்டுள்ள இயக்ககத்தில் உள்ள மற்ற இயக்குதளங்களைக் கண்டறிய GRUB2 உடன் os-prober பயன்கூறு நிரலைப் பயன்படுத்திக் கொள்ளலாம். இது Windows 7, 8.1, 10 மற்றும் இதர லினக்ஸ் வழங்கல்களைக் கண்டறியும். இரு துவக்க முறைமையாகப் பயன்படுத்த விரும்புவோர், sys-boot/os-prober தொகுப்பை நிறுவி பின் grub-mkconfig கட்டளையை (மேலே உள்ளது போல்) மறு-இயக்கவும். இதில் எதாவது இடர்ப்பாடு ஏற்பட்டால், ஜென்டூ சமூகக்குழுவிடம் உதவி கேட்பதற்கு முன் GRUB2 கட்டுரையை முழுவதுமாக படித்து பொருள் உணர்ந்திருப்பதை உறுதிசெய்து கொள்ளவும்.

மாற்றுவழி 1:LILO

இ-ஒன்றாக்குதல் (Emerge)

LILO, the LInuxLOader, is the tried and true workhorse of Linux boot loaders. However, it lacks features when compared to GRUB. LILO is still used because, on some systems, GRUB does not work and LILO does. Of course, it is also used because some people know LILO and want to stick with it. Either way, Gentoo supports both bootloaders.

LILO வை எளிமையாக நிறுவலாம்; இதற்கு emerge ஐ பயன்படுத்தவும்.

root #emerge --ask sys-boot/lilo

உள்ளமைத்தல்

LILO வை உள்ளமைக்க, முதலில் /etc/lilo.conf கோப்பை உருவாக்கவும்:

root #nano -w /etc/lilo.conf

In the configuration file, sections are used to refer to the bootable kernel. Make sure that the kernel files (with kernel version) and initramfs files are known, as they need to be referred to in this configuration file.

Note
வேர் கோப்பு முறைமையானது JFS ஆக இருந்தால், படித்தல்-எழுதல் ஏற்றுதலுக்கு முன் அதன் குறிப்புப்பதிவை JFS மீண்டும் இயக்க வேண்டும் என்பதால் append="ro" வரியை ஒவ்வொரு துவக்க உருப்படிக்குப் பின் சேர்க்கவும்.
FILE /etc/lilo.confஎடுத்துக்காட்டு LILO உள்ளமைவு
'"`UNIQ--pre-00000005-QINU`"'
Note
வெவ்வேறு பகிர்வு திட்டம் மற்றும்/அல்லது கர்னல் படம் பயன்படுத்தப்பட்டால், அதன்படி சரிசெய்துகொள்ளவும்.

initramfs இன்றியமையாததாக இருந்தால், இந்த initramfs கோப்பை குறிப்பிட்டு, வேர் சாதனம் எங்கு உள்ளது என்பதை initramfs இடம் கூறுவதன் மூலம் உள்ளமைவை மாற்றவும்:

FILE /etc/lilo.confinitramfs தகவல்களை துவக்க பதிவில் சேர்த்தல்
'"`UNIQ--pre-00000008-QINU`"'

கூடுதல் விருப்பத்தேர்வுகளை கருநிரலுக்கு தர வேண்டும் என்றால், append கூற்றைப் பயன்படுத்தவும். எடுத்துக்காட்டாக, சட்ட இடையகத்தை செயல்படுத்த video கூற்றைச் சேர்க்கவும்:

FILE /etc/lilo.confஒளிஉரு அளபுருக்களை துவக்க விருப்பத்தேர்வுகளுக்கு சேர்த்தல்
'"`UNIQ--pre-0000000B-QINU`"'

genkernel ஐ பயன்படுத்திய பயனர்கள் தங்கள் கருநிரல் நிறுவல் குறுந்தகட்டிற்குப் பயன்படுத்திய துவக்க விருப்பத்தேர்வுகளைத் தான் பயன்படுத்துகிறதா என்பதை அறிந்திருக்க வேண்டும். எடுத்துக்காட்டாக, SCSI சாதனங்களுக்கான ஆதரவு செயல்படுத்தப்பட்டிருக்க வேண்டும் என்றால் doscsi என்பதை கருநிரல் விருப்பத்தேர்வாகச் சேர்க்கவும்.

இப்போது கோப்பை சேமித்து பின் வெளியேறவும்.

நிறுவுதல்

To finish up, run the /sbin/lilo executable so LILO can apply the /etc/lilo.conf settings to the system (i.e. install itself on the disk). Keep in mind that /sbin/lilo must be executed each time a new kernel is installed or a change has been made to the lilo.conf file in order for the system to boot if the filename of the kernel has changed.

root #/sbin/lilo

மாற்றுவழி 2: efibootmgr

Computer systems with UEFI-based firmware technically do not need secondary bootloaders (e.g. GRUB) in order to boot kernels. Secondary bootloaders exist to extend the functionality of UEFI firmware during the boot process. Using GRUB (see the prior section) is typically easier and more robust because it offers a more flexible approach for quickly modifying kernel parameters at boot time.

System administrators who desire to take a minimalist, although more rigid, approach to booting the system can avoid secondary bootloaders and boot the Linux kernel as an EFI stub.

நினைவில் கொள்ளவும், sys-boot/efibootmgr செயலியானது துவக்க ஏற்றி இல்லை; இது UEFI திடப்பொருளுடன் ஊடாடி அதன் அமைப்புகளை இற்றைப்படுத்தும் ஒரு கருவியாகும், இதன் விளைவாக முன்னதாக நிறுவப்பட்ட லினக்ஸ் கருநிரல் கூடுதல் விருப்பத்தேர்வுகளுடன் (இன்றியமையாததாக இருந்தால்) துவக்க இயலும், அல்லது பல துவக்கப் பதிவுகளை அனுமதிக்கும். இந்த ஊடாடல் EFI மாறிகள் மூலம் நடக்கிறது (எனவே EFI மாறிகளின் கருநிரல் ஆதரவு தேவை).

Ensure the EFI stub kernel article has been reviewed before continuing. The kernel must have specific options enabled to be directly bootable by the UEFI firmware. It may be necessary to recompile the kernel in order to build-in this support.

It is also a good idea to take a look at the efibootmgr article for additional information.

Note
To reiterate, efibootmgr is not a requirement to boot an UEFI system; it is merely necessary to add an entry for an EFI-stub kernel into the UEFI firmware. When built appropriately with EFI stub support, the Linux kernel itself can be booted directly. Additional kernel command-line options can be built-in to the Linux kernel (there is a kernel configuration option called CONFIG_CMDLINE. Similarly, support for initramfs can be 'built-in' to the kernel as well. These decisions must be made prior to kernel compilation, resulting in a more static boot configuration.

இந்த வழியைத் தேர்ந்தெடுக்க முடிவு செய்தவர்கள் இந்த மென்பொருளைக் கட்டாயம் நிறுவ வேண்டும்:

root #emerge --ask sys-boot/efibootmgr

பிறகு, /boot/efi/boot/ இருப்பிடத்தை உருவாக்கி அதில் கர்னலை நகலெடுத்து வைக்கவும், இதை என அழைக்கலாம்:

root #mkdir -p /boot/efi/boot
root #cp /boot/vmlinuz-* /boot/efi/boot/
Note
UEFI வரையறுத்தல்களைப் பயன்படுத்தும்போது, \ ஐ அடைவு பிரிப்பானாகப் பயன்படுத்துவது கட்டாயமாகும்.

அடுத்து, UEFI திடப்பொருளிடம் "Gentoo" என அழைக்கப்படும் துவக்கப் பதிவு உருவாக்கப்பட வேண்டும் எனக் கூறவும், இது புதிதாகத் தொகுக்கப்பட்ட EFI முளை கர்னலை கொண்டிருக்கும்:

root #efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\"

தொடக்க RAM கோப்பு முறைமை (initramfs) பயன்படுத்தப்பட்டால், முறையான துவக்க விருப்பத்தேர்வுகளைச் சேர்க்கவும்:

root #efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\" initrd='\initramfs-genkernel--'

Note that the above command presumes an initramfs file was copied into the ESP inside the same directory as the file.

இந்த மாற்றங்கள் எல்லாம் முடிந்தவுடன், முறைமை மறு இயக்கம் செய்யும்போது, "Gentoo" என அழைக்கப்படும் துவக்கப் பதிவு கிடைக்கப்பெறும்.

Unified Kernel Image

If installkernel was configured to build and install unified kernel images. The unified kernel image should already be installed to the EFI/Linux directory on the EFI system partition, if this is not the case ensure the directory exists and then run the kernel installation again as described earlier in the handbook.

To add a direct boot entry for the installed unified kernel image:

root #efibootmgr --create --disk /dev/sda --part 1 --label "gentoo" --loader /EFI/Linux/gentoo-x.y.z.efi

மாற்றுவழி 3: Syslinux

Syslinux is yet another bootloader alternative for the architecture. It supports MBR and, as of version 6.00, it supports EFI boot. PXE (network) boot and lesser-known options are also supported. Although Syslinux is a popular bootloader for many it is unsupported by the Handbook. Readers can find information on emerging and then installing this bootloader in the Syslinux article.

Alternative 4: systemd-boot

Another option is systemd-boot, which works on both OpenRC and systemd machines. It is a thin chainloader and works well with secure boot.

To install systemd-boot:

root #bootctl install
Important
Make sure the EFI system partition has been mounted before running bootctl install.

When using this bootloader, before rebooting, verify that a new bootable entry exists using:

root #bootctl list

If no new entry exists, ensure the sys-kernel/installkernel package has been installed with the systemd-boot USE flag enabled, and re-run the kernel installation.

For the distribution kernels:

root #emerge --ask --config sys-kernel/gentoo-kernel

For a manually configured and compiled kernel:

root #make install
Important
When installing kernels for systemd-boot, no root= kernel command line argument is added by default. On systemd systems that are using an initramfs users may rely instead on systemd-gpt-auto-generator to automatically find the root partition at boot. Otherwise users should manually specify the location of the root partition by setting root= in /etc/kernel/cmdline as well as any other kernel command line arguments that should be used. And then reinstalling the kernel as described above.

Optional: Secure Boot

When the secureboot USE flag is enabled, the systemd-boot EFI executable will be signed automatically. bootctl install will automatically install the signed version.

To successfully boot with secure boot enabled the used certificate must either be accepted by the UEFI firmware, or shim must be used as a pre-loader. Shim is pre-signed with the third-party Microsoft Certificate, accepted by default by most UEFI motherboards.

How to configure the UEFI firmware to accept custom keys depends on the firmware vendor, which is beyond the scope of the handbook. A postinst hook to automatically update systemd-boot and set it up with shim instead is provided on the systemd-boot wiki page. However the first time this should be done manually by following the steps below:

root #emerge --ask sys-boot/shim sys-boot/mokutil sys-boot/efibootmgr
root #cp /usr/share/shim/BOOTX64.EFI /EFI/BOOT/BOOTX64.EFI
root #cp /usr/share/shim/mmx64.efi /EFI/BOOT/mmx64.efi
root #cp /EFI/systemd/systemd-bootx64.efi /EFI/BOOT/grubx64.efi
Note
Shim is hardcoded to load grubx64.efi. As such the systemd-boot bootloader must be named as if it were GRUB.

Shims MOKlist requires keys in the DER format, since the OpenSSL key generated in the example here is in the PEM format, the key must be converted first:

root #openssl x509 -in /path/to/kernel_key.pem -inform PEM -out /path/to/kernel_key.der -outform DER
Note
The path used here must be the path to the pem file containing the certificate belonging to the generated key. In this example both key and certificate are in the same pem file.

Then the converted certificate can be imported into Shims MOKlist:

root #mokutil --import /path/to/kernel_key.der

And finally we register Shim with the UEFI firmware. In the following command, boot-disk and boot-partition-id must be replaced with the disk and partition identifier of the EFI system partition:

root #efibootmgr --create --disk /dev/boot-disk --part boot-partition-id --loader '\EFI\BOOT\BOOTX64.EFI' --label 'shim' --unicode