cleaner boot from loopmounted iso file

Currently, when booting loopmounted iso file, it is necessary to
specify not only img_dev and img_loop (which should be sufficient),
but also archisolabel or archisodevice. With this patch, archisodevice
is directly populated with the correct loop device, and it is not
necessary to specify the label when booting from loopmounted iso,
which makes for leaner and cleaner grub.cfg.
This commit is contained in:
Adam Purkrt 2015-08-30 00:39:41 +02:00 committed by Gerardo Exequiel Pozzi
parent 217a05eb86
commit d35d87f252
2 changed files with 5 additions and 3 deletions

View File

@ -18,7 +18,9 @@ archiso_loop_mount_handler () {
echo $(readlink -f ${img_dev}) >> /run/archiso/used_block_devices
fi
if ! _dev_loop=$(losetup --find --show --read-only "/run/archiso/img_dev/${img_loop}"); then
if _dev_loop=$(losetup --find --show --read-only "/run/archiso/img_dev/${img_loop}"); then
archisodevice="${_dev_loop}"
else
echo "ERROR: Setting loopback device for file '/run/archiso/img_dev/${img_loop}'"
launch_interactive_shell
fi

View File

@ -31,14 +31,14 @@ Note: Described method is for using with GRUB2.
menuentry "Arch Linux (x86_64)" {
set isofile="/<TARGET-PATH>/archlinux-<YYYY>.<MM>.<DD>-dual.iso"
loopback loop (hd<D>,<P>)$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=<FS-LABEL> img_label=<TARGET-FS-LABEL> img_loop=$isofile
linux (loop)/arch/boot/x86_64/vmlinuz img_label=<TARGET-FS-LABEL> img_loop=$isofile
initrd (loop)/arch/boot/x86_64/archiso.img
}
menuentry "Arch Linux (i686)" {
set isofile="/<TARGET-PATH>/archlinux-<YYYY>.<MM>.<DD>-dual.iso"
loopback loop (hd<D>,<P>)$isofile
linux (loop)/arch/boot/i686/vmlinuz archisolabel=<FS-LABEL> img_label=<TARGET-FS-LABEL> img_loop=$isofile
linux (loop)/arch/boot/i686/vmlinuz img_label=<TARGET-FS-LABEL> img_loop=$isofile
initrd (loop)/arch/boot/i686/archiso.img
}