4

I'm already successfully booting the loop mounted arch installation iso (and couple of other isos) using grub on flashdrive. I have grub files in /boot/grub on the flash, iso files in /boot/iso (see https://wiki.archlinux.org/index.php/Multiboot_USB_drive). The relevant part of grub.cfg is

imgdevpath="/dev/disk/by-uuid/CF3D-EC7C"

menuentry '[loopback]archlinux-2015.07.01-dual.iso i686' {
    set isofile='/boot/iso/archlinux-2015.07.01-dual.iso'
    loopback loop $isofile
    linux (loop)/arch/boot/i686/vmlinuz archisolabel=ARCH_201507 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop
    initrd (loop)/arch/boot/i686/archiso.img
}

This works fine - when the UUID in imgdevpath is correct. So, one has to manually update the line beforehand. Only then does it work.

I would like to read the UUID of the GRUB's root partition (which is also the partition where I store the iso files), from within grub, into a variable, at boot time. Can this be done?

It would simplify the booting from (loop mounted) iso file. "ls ($root)" already displays the UUID (among other things), but it can't be fed into a variable (or at least I don't know how). Ideally, I would like to do something like

foobar_readuuid ($root) --set=rootuuid
imgdevpath="/dev/disk/by-uuid/$rootuuid"
...

I'm not looking for a "search" command; as far as I can tell, it's output is always the "device,partition" i.e. something like hdX,msdosY. And I already know that, it's in $root. Just want to read the uuid, so I could feed it to the $imgdevpath

1
  • 1
    Best question on grub2 ever, IMHO!
    – xpt
    Oct 25, 2021 at 1:53

1 Answer 1

5

Got the answer from help-grub mailing list:

probe -u $root --set=abc

use $abc as uuid variable of $root.

So, in my specific case, the relevant part of grub.cfg became:

probe -u $root --set=rootuuid
set imgdevpath="/dev/disk/by-uuid/$rootuuid"

And it works great.

1
  • 1
    Great solution! It's a pity and a bit shame that such valuable solution didn't catch much attention from people.
    – xpt
    Oct 25, 2021 at 1:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .