#!/bin/sh # umbrelOS USB installer image INSTALLER=https://download.umbrel.com/release/1.1.2/umbrelos-amd64-usb-installer.img.xz # use CentOS' kernel/initrd to make bootable CD VMLINUZ=http://ftp.jaist.ac.jp/pub/Linux/CentOS-stream/9-stream/BaseOS/x86_64/os/isolinux/vmlinuz INITRD=http://ftp.jaist.ac.jp/pub/Linux/CentOS-stream/9-stream/BaseOS/x86_64/os/isolinux/initrd.img # isolinux ISOLINUX_BIN=http://ftp.jaist.ac.jp/pub/Linux/CentOS-stream/9-stream/BaseOS/x86_64/os/isolinux/isolinux.bin LDLINUX_C32=http://ftp.jaist.ac.jp/pub/Linux/CentOS-stream/9-stream/BaseOS/x86_64/os/isolinux/ldlinux.c32 # output image ISO_OUTPUT=output.iso # work directory WORKDIR=./work LIVEOS_DIR=$WORKDIR/LiveOS BOOT_DIR=$WORKDIR/boot ISOLINUX_ISO_DIR=isolinux ISOLINUX_DIR=$WORKDIR/$ISOLINUX_ISO_DIR # setup directory rm -rf $WORKDIR mkdir -p $LIVEOS_DIR mkdir -p $BOOT_DIR mkdir -p $ISOLINUX_DIR # settle contents wget -P $BOOT_DIR $VMLINUZ wget -P $BOOT_DIR $INITRD wget -P $ISOLINUX_DIR $ISOLINUX_BIN wget -P $ISOLINUX_DIR $LDLINUX_C32 cat - << EOS > $ISOLINUX_DIR/isolinux.cfg default boot label boot kernel ../boot/vmlinuz initrd ../boot/initrd.img append root=live:CDLABEL=linux rd.live.image EOS # create squashfs.img LOOP_DEV=`/sbin/losetup -f` LOOP_PART=${LOOP_DEV}p2 INSTALLER_FILE_XZ=`echo $INSTALLER | sed 's/\// /g' | awk '{print $NF}'` INSTALLER_FILE=`echo $INSTALLER_FILE_XZ | sed 's/\.xz//'` rm -rf $INSTALLER_FILE $INSTALLER_FILE_XZ wget $INSTALLER xz -d $INSTALLER_FILE_XZ sudo /sbin/losetup -P $LOOP_DEV $INSTALLER_FILE sudo mount $LOOP_PART /mnt sudo mksquashfs /mnt $LIVEOS_DIR/squashfs.img sudo umount /mnt sudo /sbin/losetup -d $LOOP_DEV # create ISO image rm -rf $ISO_OUTPUT mkisofs -o $ISO_OUTPUT -R -J -V linux -b $ISOLINUX_ISO_DIR/isolinux.bin -c $ISOLINUX_ISO_DIR/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table $WORKDIR