Difference between revisions of "Talk:UEFI Bootloaders"

From ArchWiki
Jump to: navigation, search
(comment on new mkinitcpio scripts)
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Incorrect instructions ==
+
== Why so overly complicated? ==
 
+
Why not just use the EFI system partition as /boot? This makes setting up direct boot via efistub as easy as <code>efibootmgr -c -l /vmlinuz-linux -u "$(cat /proc/cmdline)"</code> (assuming the ESP is on /dev/sda1). [[User:Creshal|Creshal]] ([[User talk:Creshal|talk]]) 16:44, 17 August 2013 (UTC)
Hi,
+
 
+
I have already posted some information on the Forums, but since this is the way to go, I'm posting my thoughts here.
+
 
+
The Wiki's says the following about rEFInd:
+
''"Note: As of refind-efi 0.6.5, refind now automatically detects kernels in /boot. They do not have to be renamed to have a .efi extension either. Hence, the following sync scripts aren't needed if using refind."''
+
 
+
But how it is possible for rEFInd to scan the /boot directory? When booting rEFInd, only the dirs inside \EFI are readable for rEFInd. I have tested this and I confirm that rEFInd can't scan /boot until it is mounted by fstab. (the actual booting process). The sync scripts seems to be needed, to successfully boot Arch.
+
 
+
 
+
As for '''Systemd Automation''' script, I find the following line a little bit weird:
+
''cp -r /usr/{share/refind/*,lib/refind/*$arch*} $refind_dir/  && ## update bin and dirs''
+
 
+
Should it not be: cp -r {/usr/share/refind/*,/lib/refind/refind_x*$arch*.efi} $refind_dir/  && ## update bin and dirs ?
+
Only the file refind_x*ARCH*, is needed for the /lib directory.
+
 
+
 
+
Also I would like to see instructions how to add a custom boot entry (if needed/other location). They are documented inside rEFInd, but not on the Wiki.
+
menuentry "Arch Linux" {
+
    icon /EFI/refind/icons/os_arch.icns
+
    loader /EFI/arch/vmlinuz-arch.efi
+
    initrd /EFI/arch/initramfs-arch.img
+
    options "root=PARTUUID=xx rootfstype=ext4 ro add_efi_memmap systemd.unit=graphical.target"
+
}
+
 
+
menuentry "Arch Linux Fallback" {
+
    icon /EFI/refind/icons/os_arch.icns
+
    loader /EFI/arch/vmlinuz-arch.efi
+
    initrd /EFI/arch/initramfs-arch-fallback.img
+
    options "root=PARTUUID=xx rootfstype=ext4 ro add_efi_memmap systemd.unit=multi-user.target"
+
}
+
 
+
 
+
Thanks
+
 
+
[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 11:11, 28 January 2013 (UTC)
+
 
+
  
 
== Issue with the Systemd Automation script ==
 
== Issue with the Systemd Automation script ==
Line 54: Line 17:
 
[[User:Kozaki|kozaki]] ([[User talk:Kozaki|talk]]) 23:31, 3 February 2013 (UTC)
 
[[User:Kozaki|kozaki]] ([[User talk:Kozaki|talk]]) 23:31, 3 February 2013 (UTC)
  
 +
: There are at least 2 further issues with these instructions. First, the unit files should really not be installed in /usr. The systemd unit files, for example, should go in /etc/systemd/system/. Second, this won't work any more now rEFInd is entirely in /usr/share/refind rather than split with /usr/lib. Since I don't use any of this, I'm reluctant to change it, though. (I do use systemd units but not the ones here and not with any script.) Could somebody who uses it go through and update it and then test the result? --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 02:25, 25 July 2013 (UTC)
  
 
== MKinitcpio update hook not working ==
 
== MKinitcpio update hook not working ==
Line 110: Line 74:
  
 
[[User:Silverhammermba|Silverhammermba]] ([[User talk:Silverhammermba|talk]]) 04:14, 1 March 2013 (UTC)
 
[[User:Silverhammermba|Silverhammermba]] ([[User talk:Silverhammermba|talk]]) 04:14, 1 March 2013 (UTC)
 +
 +
== Sync EFISTUB Kernel scripts need to be updated because of the move to /usr/bin ==
 +
 +
Hi everyone,
 +
 +
I think the '''sync EFISTUB Kernel''' scripts should be updated. All of them point to /bin/cp, but since the move to /usr/bin they should be pointing to /usr/bin/cp.
 +
 +
I can do it but I was just wondering if it would be agood idea to add a warning somewhere to tell people to update their scripts.
 +
 +
Cheers
 +
[[User:Femtomatic|Femtomatic]] ([[User talk:Femtomatic|talk]]) 19:32, 15 June 2013 (UTC)
 +
: +1 for a note about the change. -- [[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 03:02, 21 June 2013 (UTC)

Revision as of 16:44, 17 August 2013

Why so overly complicated?

Why not just use the EFI system partition as /boot? This makes setting up direct boot via efistub as easy as efibootmgr -c -l /vmlinuz-linux -u "$(cat /proc/cmdline)" (assuming the ESP is on /dev/sda1). Creshal (talk) 16:44, 17 August 2013 (UTC)

Issue with the Systemd Automation script

Beta990 has some reason questioning the Systemd Automation script's line:

 cp -r /usr/{share/refind/*,lib/refind/*$arch*} $refind_dir/  && ## update bin and dirs

As it is on the wiki, it just prints this when launched:

 /usr/lib/systemd/scripts/refind_name_patchv2: ligne31: « update-efi-dir » : identifiant non valable

[in English: unvalid identifier]. Unfortunately editing that single line as follow changes nothing:

 cp -r /usr/{share/refind/*,lib/refind/refind_*$arch*.efi} $refind_dir/ && ## update bin and dirs

Next in the wiki, there might be a typo at the end of the systemctl command (see the « ; »):

 Tip: Enable the systemd path unit by running :
 # systemctl enable refind_update.path;

kozaki (talk) 23:31, 3 February 2013 (UTC)

There are at least 2 further issues with these instructions. First, the unit files should really not be installed in /usr. The systemd unit files, for example, should go in /etc/systemd/system/. Second, this won't work any more now rEFInd is entirely in /usr/share/refind rather than split with /usr/lib. Since I don't use any of this, I'm reluctant to change it, though. (I do use systemd units but not the ones here and not with any script.) Could somebody who uses it go through and update it and then test the result? --cfr (talk) 02:25, 25 July 2013 (UTC)

MKinitcpio update hook not working

The mkinitcpio auto-update hook does not work. I get the following output: "Synced to /boot/efi/EFI/arch", along with some cp errors. Obviously, the parameters are not passed.

If i replace the script with the static cp commands from incron, i get the following output, indicating that the image is copied BEFORE the new one is written:

     -> Running build hook: [efistub-update]
   Synced new kernel and initrd to EFIStub.
   ==> Generating module dependencies
   ==> Creating gzip initcpio image: /boot/initramfs-linux.img
   ==> Image generation successful

As a result, my scripts now look as follows:

   /usr/lib/initcpio/install/efistub-update    

   #!/bin/sh
   
   build() {
       /usr/local/sbin/efistub-update &
   }
   
   help() {
       cat <<HELPEOF
   This hook simply waits for mkinitcpio to finish and copies the finished ramdisk and kernel to UEFI
   HELPEOF
   }

and

   /usr/local/sbin/efistub-update

   #!/bin/sh
   
   while [ [ -d "/proc/$PPID" ]]; do
       sleep 1
   done
   
   /bin/cp -f /boot/vmlinuz-linux /boot/efi/EFI/EFIStub/vmlinuz-arch.efi
   /bin/cp -f /boot/initramfs-linux.img /boot/efi/EFI/EFIStub/initramfs-arch.img
   /bin/cp -f /boot/initramfs-linux-fallback.img /boot/efi/EFI/EFIStub/initramfs-arch-fallback.img
   
   echo "Synced new kernel and initrd to EFIStub."


Also, the watch.sh does not get chmod +x'ed in the existing example.

--Denoyse (talk) 16:08, 15 February 2013 (UTC)

Mkinitcpio update hook inefficiency

I updated the scripts reflecting Denoyse's suggestions, but the scripts still copy all of the files twice: first after building the regular image and again after building the fallback image. Is there a way to make it only run once, or to have different hooks for each image?

Silverhammermba (talk) 04:14, 1 March 2013 (UTC)

Sync EFISTUB Kernel scripts need to be updated because of the move to /usr/bin

Hi everyone,

I think the sync EFISTUB Kernel scripts should be updated. All of them point to /bin/cp, but since the move to /usr/bin they should be pointing to /usr/bin/cp.

I can do it but I was just wondering if it would be agood idea to add a warning somewhere to tell people to update their scripts.

Cheers Femtomatic (talk) 19:32, 15 June 2013 (UTC)

+1 for a note about the change. -- Fengchao (talk) 03:02, 21 June 2013 (UTC)