Subject: bug#49961: Need support for booting from installation iso file directly for multiboot project

From: Shyam Saran <[email-masked]>
Date: Mon, 9 Aug 2021 21:32:39 +0530

Need support for loopback.cfg
like Ubuntu distribution to boot from ios files for
multiboot [https://github.com/eengstrom/multiboot/blob/master/grub/grub.cfg]

Here tried similar thing with installation iso and its /boot/grub/grub.cfg
in https://github.com/aguslr/multibootusb

For this
added file mbusb.d/guix-system.d/install-generic.cfg

with content

<src>
for isofile in $isopath/*/guix-system-install-*.iso
$isopath/guix-system-install-*.iso; do
  if [ -e "$isofile" ]; then
    regexp --set=isoname "$isopath/(.*)" "$isofile"
    submenu "$isoname (grub.cfg) ->" "$isofile" {
      iso_path="$2"
      export iso_path
      search --set=root --file "$iso_path"
      loopback loop "$iso_path"
      root=(loop)
      configfile /boot/grub/grub.cfg
      loopback --delete loop
    }
  fi
done

With this got grub entry like below

setparam 'Guixsd/guix-system-install-1.2.0.x86_64-linux.iso (loopbak.cfg)
->' '/boot/isos/guix-system-install-1.2.0.x86_64-linux.iso'

  iso_path="$2"
  export iso_pathj
  search --set=root --file "$iso_path"
  loopback loop "$iso_path"
  root=(loop)
  configile /boot/grub/grub.cfg
  loopback --delete loop
</src>

After booting from here, getting menu from ios's /boot/grub/grub.cfg
where --root=31393730-3031-3031-3139-343934363833

When I boot from here, getting below error

waiting for partition '31393730-3031-3031-3139-343934363833' to appear
ice-9/boot-9.scm:1669:16: In procedure raise-excepion:
failed to resolve partition "31393730-3031-3031-3139-343934363833"

and finally it shows guile scheme prompt

scheme@(guile-user)>

Thanks
--
/syam