You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

79 lines
1.9 KiB

#!/bin/bash
CWD=$(pwd)
SOURCE=/run/initramfs/memory
TEMP=/tmp
REGEX='^$'
if [ "$1" = "-e" ]; then
REGEX="$2"
shift
shift
fi
TARGET="$(readlink -f "$1")"
if [ "$TARGET" = "" ]; then
echo ""
echo "Generate MiniOS ISO image, adding specified modules"
echo "Regular expression is used to exclude any existing path or file with -e regex"
echo ""
echo "Usage:"
echo " $0 [[ -e regex ]] target.iso [[module.sb]] [[module.sb]] ..."
echo ""
echo "Examples:"
echo " # to create MiniOS iso without chromium.sb module:"
echo " $0 -e 'chromium' minios_without_chromium.iso"
echo ""
echo " # to create MiniOS text-mode core only:"
echo " $0 -e 'firmware|xorg|desktop|apps|chromium' minios_textmode.iso"
exit 1
fi
if [ -e "$SOURCE/data/boot/syslinux/isolinux.bin" ]; then
MINIOS=$SOURCE/data
fi
if [ "$MINIOS" = "" ]; then
echo "Cannot find boot/isolinux.bin in MiniOS data" >&2
exit 2
fi
VER=2021
DATE=$(date +%Y-%m-%d-%H-%M)
DIR=$MINIOS ; ISO=$TEMP/minios_$DATE.iso
[ -n "$1" ] && ISO="$1"
B="-b boot/syslinux/isolinux.bin -c boot/syslinux/boot.cat"
C="-no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot"
if [ -x "$(which xorriso 2> /dev/null)" ]; then
M="xorriso -as mkisofs -isohybrid-mbr $DIR/boot/syslinux/isohdpfx.bin"
D=" -isohybrid-gpt-basdat -e"
elif [ -x "$(which genisoimage 2> /dev/null)" ]; then
M=genisoimage ; D="-efi-boot"
else
M=mkisofs ; D="-eltorito-platform 0xEF -eltorito-boot"
fi
E="EFI/boot/efiboot.img -no-emul-boot"
VER="MiniOS $VER"
if ! $M -hide-rr-moved -f -r -J -l -V "$VER" -A "$VER" \
$B $C $D $E -o $ISO $DIR ; then
exit 1
fi
echo ">>> $ISO created"
# xorriso has hybridization built-in
if [ "$(echo $M | cut -d" " -f1)" != "xorriso" ]; then
if [ -x "$(which isohybrid 2> /dev/null)" ]; then
isohybrid -uefi $ISO
else
echo ">>> No isohybrid to hybridize this ISO"
fi
fi
exit 0