I have a system in which I did not put filesystem labels when I created the partitions in a dual boot laptop, and I am trying to write a workable manual rEFInd stanza. The laptop has both an ssd which contains the linux partitions, and a pre-existing hard drive which has Windows 8 and the ESP. The ESP contains a refind directory which has the refind.conf file as well as the drivers directory which has the ext4 driver that allows rEFInd to load the arch linux kernel at /boot/ when autodetecting the arch linux kernel.
The ESP is mounted at /boot/efi as /boot/efi/EFI/ with a refind directory in the latter.
With auto detection it works fine, but adding a manual stanza to boot arch linux only works if I use a volume line containing the label I found by looking at the text that shows up when the mouse is hovered over the autodetected arch linux icon in the rEFInd graphical screen at boot.
As it stands it boots this entry just fine, but if I uncomment either of the two volume lines containing the PARTUUID of the root partition and the ESP respectively then it no longer works when I select the entry at the rEFInd screen during boot.
Here the arch linux ext4 root "/" partition is at /dev/sdb1 and /boot is simply a directory under / with the kernel and initrd within /boot/ and the ESP EFI partition is at /dev/sda2 formatted as VFAT
What I don't know is whether rEFInd can use a volume line containing a reference to the UUID or PARTUUID for a kernel that is not in the ESP, and if so how it should be specified without using the string for the volume label? I know from the arch linux forums that one user who has his kernel and initrd within the ESP can boot using this method using the PARTUUID for the ESP, but in my case the kernel is on a separate ext4 partition and this is clearly not working in the same way. Are there additional syntax changes needed for me to do this or is rEFInd not able to boot from a kernel that is not in the ESP when the system has two drives with the ESP on a differnt drive to the kernel?
I am using the current arch refind-efi package version 0.7.9
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Use of GUIDs on the volume line in refind.conf was added with version 0.8.0 of rEFInd, so if you want to do that, you must upgrade your version of rEFInd. Alternatively, you can give your filesystem a label (via tune2fs if you're using ext2/3/4fs, as it seems you are) and use that with any recent version of rEFInd.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for the extra information that helps me enormously. I will download your zipped package for rEFInd 0.8.1 and install the files on my laptop. Unfortunately in arch linux the refind-efi package was flagged as out of date about a week and half ago and remains at 0.7.9 so I will try your package instead and hopefully that will fix my problem with using GUID values.
Yes I should boot a rescue disk (so that for safety I can alter the partition label with the partition not mounted) and add a filesystem label with tune2fs (or e2label).
I have been wondering what I had done wrong but the key issue was that I am using an out of date version of rEFInd. Thank you again.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have just downloaded your latest (gnu-efi) zipped package for version 0.8.1 and copied in the refind_x64.efi file to my ESP overwriting the one from the arch linux package. It boots the current arch kernel perfectly using the partuuid as the volume token to define the partition containing the kernel, and boots the grub efi binary from the submenu entry when hitting the insert key at the rEFInd graphical menu. So this is fully resolved. Thank you again for your reply today.
Also thank you for the really excellent boot manager that is rEFInd - all my UEFI machines are now booting with rEFInd.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have a system in which I did not put filesystem labels when I created the partitions in a dual boot laptop, and I am trying to write a workable manual rEFInd stanza. The laptop has both an ssd which contains the linux partitions, and a pre-existing hard drive which has Windows 8 and the ESP. The ESP contains a refind directory which has the refind.conf file as well as the drivers directory which has the ext4 driver that allows rEFInd to load the arch linux kernel at /boot/ when autodetecting the arch linux kernel.
The ESP is mounted at /boot/efi as /boot/efi/EFI/ with a refind directory in the latter.
With auto detection it works fine, but adding a manual stanza to boot arch linux only works if I use a volume line containing the label I found by looking at the text that shows up when the mouse is hovered over the autodetected arch linux icon in the rEFInd graphical screen at boot.
So the manual stanza entry is at present:
menuentry "Arch Linux and grub" {
icon EFI/refind/icons/os_arch.icns
volume "59 GiB ext4 volume"
# volume a01aa42a-8ece-4584-a632-bea1f042c80a
# volume 8476dead-a001-4566-8f30-0e61a7d9149b
loader /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
options "rw root=UUID=352b1b2e-575c-4757-90a8-c7d0162f5b9f PARTUUID=a01aa42a-8ece-4584-a632-bea1f042c80a quiet"
ostype Linux
submenuentry "boot via Grub" {
loader /boot/grub/grubx64_standalone.efi
initrd
options
}
}
As it stands it boots this entry just fine, but if I uncomment either of the two volume lines containing the PARTUUID of the root partition and the ESP respectively then it no longer works when I select the entry at the rEFInd screen during boot.
The blkid output for this machine is:
blkid
/dev/sda1: LABEL="WINRE_DRV" UUID="DEB868D7B868AFA7" TYPE="ntfs" PARTUUID="85bacd42-9445-4534-a81b-3ed772cd76e4"
/dev/sda2: LABEL="SYSTEM_DRV" UUID="586A-8737" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="8476dead-a001-4566-8f30-0e61a7d9149b"
/dev/sda3: PARTLABEL="Microsoft reserved partition" PARTUUID="934d77d5-8f3d-4571-bc5a-1933f631780b"
/dev/sda4: LABEL="Windows8_OS" UUID="06F86D82F86D713B" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="68cca1b1-beea-4607-bf84-931be2ced6c1"
/dev/sda5: UUID="0662C60B62C5FF83" TYPE="ntfs" PARTUUID="460546a7-9f6d-446f-b251-408aee0e60e2"
/dev/sda6: LABEL="Lenovo_Recovery" UUID="88E264D9E264CD4E" TYPE="ntfs" PARTUUID="03691192-0076-4788-a770-a51090510250"
/dev/sda7: UUID="6b1d73d3-745c-4083-a219-eee72aa85938" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="36da193e-e2fb-4721-bd4f-50dc8d7b9a01"
/dev/sda8: UUID="3e1c38e0-0ad7-4bbc-8c7e-f357f360943d" TYPE="swap" PARTLABEL="Linux swap" PARTUUID="f2c7c417-923f-4120-b4b7-d64d476d7546"
/dev/sda9: UUID="0930187f-ec64-4627-8be1-d906ae028dcf" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="4a41d1e0-afb0-4dee-b43e-baf1ad8263d5"
/dev/sdb1: UUID="352b1b2e-575c-4757-90a8-c7d0162f5b9f" TYPE="ext4" PARTLABEL="root" PARTUUID="a01aa42a-8ece-4584-a632-bea1f042c80a"
Here the arch linux ext4 root "/" partition is at /dev/sdb1 and /boot is simply a directory under / with the kernel and initrd within /boot/ and the ESP EFI partition is at /dev/sda2 formatted as VFAT
What I don't know is whether rEFInd can use a volume line containing a reference to the UUID or PARTUUID for a kernel that is not in the ESP, and if so how it should be specified without using the string for the volume label? I know from the arch linux forums that one user who has his kernel and initrd within the ESP can boot using this method using the PARTUUID for the ESP, but in my case the kernel is on a separate ext4 partition and this is clearly not working in the same way. Are there additional syntax changes needed for me to do this or is rEFInd not able to boot from a kernel that is not in the ESP when the system has two drives with the ESP on a differnt drive to the kernel?
I am using the current arch refind-efi package version 0.7.9
Use of GUIDs on the
volume
line inrefind.conf
was added with version 0.8.0 of rEFInd, so if you want to do that, you must upgrade your version of rEFInd. Alternatively, you can give your filesystem a label (viatune2fs
if you're using ext2/3/4fs, as it seems you are) and use that with any recent version of rEFInd.Thank you for the extra information that helps me enormously. I will download your zipped package for rEFInd 0.8.1 and install the files on my laptop. Unfortunately in arch linux the refind-efi package was flagged as out of date about a week and half ago and remains at 0.7.9 so I will try your package instead and hopefully that will fix my problem with using GUID values.
Yes I should boot a rescue disk (so that for safety I can alter the partition label with the partition not mounted) and add a filesystem label with tune2fs (or e2label).
I have been wondering what I had done wrong but the key issue was that I am using an out of date version of rEFInd. Thank you again.
I have just downloaded your latest (gnu-efi) zipped package for version 0.8.1 and copied in the refind_x64.efi file to my ESP overwriting the one from the arch linux package. It boots the current arch kernel perfectly using the partuuid as the volume token to define the partition containing the kernel, and boots the grub efi binary from the submenu entry when hitting the insert key at the rEFInd graphical menu. So this is fully resolved. Thank you again for your reply today.
Also thank you for the really excellent boot manager that is rEFInd - all my UEFI machines are now booting with rEFInd.