]> code.delx.au - monosys/commitdiff
multiboot: support Arch Linux isos
authorJames Bunton <jamesbunton@delx.net.au>
Wed, 1 Jun 2016 14:40:02 +0000 (00:40 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Wed, 1 Jun 2016 14:40:02 +0000 (00:40 +1000)
scripts/multiboot-setup.sh

index 8b38df2e394b02ce709560e743bea89a7aec784b..c42ae115dc474aaddc29a5d2e97eab708c23dfad 100755 (executable)
@@ -18,7 +18,8 @@ function install_syslinux {
 
     echo "UI menu.c32" >> "$SYSLINUX_CFG"
 
-    echo "Install syslinux:"
+    echo "Run these commands to configure set up your bootable device:"
+    echo "  # dosfslabel /dev/sdX multiboot"
     echo "  # dd bs=440 count=1 if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdX"
     echo "  # extlinux -i -d /<mountpoint>/syslinux"
 }
@@ -57,6 +58,8 @@ function set_boot_vars {
         set_ubuntu_boot_vars
     elif [[ "$ISOFILE" == *fedora*.iso ]]; then
         set_fedora_boot_vars
+    elif [[ "$ISOFILE" == *archlinux*.iso ]]; then
+        set_archlinux_boot_vars
     else
         echo "Unsupported ISO! $ISOFILE"
     fi
@@ -80,6 +83,15 @@ function set_fedora_boot_vars {
     bootparams="root=live:CDLABEL=$(basename "$ISOFILE" .iso) rootfstype=auto iso-scan/filename=/${unpackdir}/$(basename "$ISOFILE")"
 }
 
+function set_archlinux_boot_vars {
+    version="$(basename "$ISOFILE" .iso | sed -e 's/archlinux-//' -e 's/-dual//')"
+    menulabel="ArchLinux $version"
+    unpackdir="distros/archlinux_$(generate_safe_filename "$version")"
+    kernel="/mnt/arch/boot/x86_64/vmlinuz"
+    initrd="/mnt/arch/boot/x86_64/archiso.img"
+    bootparams="img_label=multiboot img_loop=${unpackdir}/$(basename "$ISOFILE") archisobasedir=arch earlymodules=loop"
+}
+
 function generate_safe_filename {
     echo -n "$1" | tr -c '[:alnum:]\n' '_'
 }