Difference between revisions of "Talk:UEFI Bootloaders"

From ArchWiki
Jump to: navigation, search
(MKinitcpio update hook misses fallback image)
(Merged Talk pages)
(11 intermediate revisions by 10 users not shown)
Line 1: Line 1:
== Incorrect instructions ==
+
#REDIRECT [[Talk:Boot_Loaders]]
 
+
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 ==
+
 
+
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;
+
[[User:Kozaki|kozaki]] ([[User talk:Kozaki|talk]]) 23:31, 3 February 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.
+
 
+
--[[User:Denoyse|Denoyse]] ([[User talk:Denoyse|talk]]) 16:08, 15 February 2013 (UTC)
+

Revision as of 11:56, 24 October 2013

Redirect to: