aboutsummaryrefslogtreecommitdiff
path: root/utils/mkiso.sh
diff options
context:
space:
mode:
Diffstat (limited to 'utils/mkiso.sh')
-rwxr-xr-xutils/mkiso.sh194
1 files changed, 0 insertions, 194 deletions
diff --git a/utils/mkiso.sh b/utils/mkiso.sh
deleted file mode 100755
index c6fc083d..00000000
--- a/utils/mkiso.sh
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/bin/sh -e
-
-msg() { echo "-> $@"; }
-cleanup() { rm -rf $WORKDIR; }
-
-prepare_rootfs() {
- [ -d $ROOTFS ] && return
- basepkg="baselayout autils binutils bison busybox
- bzip2 ca-certificates curl file flex gcc
- git gmp initscripts linux-headers m4 make
- mpc mpfr musl openssl patch spm xz zlib"
- requiredpkg="linux grub syslinux efibootmgr"
- extrapkg="pfetch sway swaybg swayidle swaylock wmenu mpv
- foot firefox fff ranger dejavu-fonts-ttf wpa_supplicant dhcpcd
- imv lm-sensors opendoas zstd rsync squashfs-tools"
- mkdir -p $ROOTFS/var/lib/spm/db
- APKG_NOPROMPT=1 APKG_ROOT=$ROOTFS apkg -I $basepkg $requiredpkg $extrapkg
-}
-
-squashfs_rootfs() {
- [ -f $ISODIR/boot/rootfs.sfs ] && return
- mkdir -p $ISODIR/boot
-
- msg "squashing rootfs..."
- mksquashfs \
- $ROOTFS \
- $ISODIR/boot/rootfs.sfs \
- -b 1048576 \
- -comp xz \
- -wildcards \
- -e tmp/* -e root/* -e sys/* -e dev/* -e proc/* -e run/*
-}
-
-add_kmod() {
- [ -f $INITRAMFSDIR/$KERNEL_MODULES_DIR/$1 ] && continue
- mkdir -p $INITRAMFSDIR/$KERNEL_MODULES_DIR/${1%/*}
- cp $ROOTFS/$KERNEL_MODULES_DIR/$1 $INITRAMFSDIR/$KERNEL_MODULES_DIR/${1%/*}
- for d in $(grep $1: $ROOTFS/$KERNEL_MODULES_DIR/modules.dep | tr ' ' '\n' | tail -n+2); do
- add_kmod $d
- done
-}
-
-make_initramfs() {
- [ -f $ISODIR/boot/initrd ] && return
- mkdir -p $INITRAMFSDIR/bin
- cp $MKISOD/init $INITRAMFSDIR
- chmod +x $INITRAMFSDIR/init
- cp /bin/busybox $INITRAMFSDIR/bin
-
- KERNEL_VER=$(file $ROOTFS/boot/vmlinuz-linux | awk '{print $9}')
- KERNEL_MODULES_DIR=lib/modules/$KERNEL_VER
-
- msg "copying kernel modules..."
- ( cd $ROOTFS/$KERNEL_MODULES_DIR
- for rk in $required_kmods; do
- [ -d kernel/$rk ] || continue
- for f in $(find kernel/$rk -type f); do
- add_kmod $f
- done
- done
- )
-
- for i in order builtin builtin.modinfo; do
- cp $ROOTFS/$KERNEL_MODULES_DIR/modules.$i $INITRAMFSDIR/lib/modules/$KERNEL_VER/
- done
- depmod -b $INITRAMFSDIR $KERNEL_VER
-
- msg "generating live initrd..."
- ( cd $INITRAMFSDIR ; find . | cpio -o -H newc | gzip -9 ) > $ISODIR/boot/initrd
-}
-
-prepare_grub() {
- [ -f $ISODIR/boot/efiboot.img ] && return
- msg "preparing grub boot files..."
- mkdir -p $ISODIR/boot/grub/x86_64-efi $ISODIR/boot/grub/fonts
- echo "set prefix=/boot/grub" > $ISODIR/boot/grub-early.cfg
- cp -a $ROOTFS/usr/lib/grub/x86_64-efi/*.mod $ISODIR/boot/grub/x86_64-efi
- cp -a $ROOTFS/usr/lib/grub/x86_64-efi/*.lst $ISODIR/boot/grub/x86_64-efi
- cp $ROOTFS/usr/share/grub/unicode.pf2 $ISODIR/boot/grub/fonts/unicode.pf2
-
- # UEFI
- rm -f $ISODIR/boot/efiboot.img
- mkdir -p $ISODIR/efi/boot
- grub-mkimage -c $ISODIR/boot/grub-early.cfg -o $ISODIR/efi/boot/bootx64.efi -O x86_64-efi -p "" iso9660 normal search search_fs_file
- modprobe loop
- dd if=/dev/zero of=$ISODIR/boot/efiboot.img count=4096
- mkdosfs -n LIVE-UEFI $ISODIR/boot/efiboot.img
- mkdir -p $ISODIR/boot/efiboot
- mount -o loop $ISODIR/boot/efiboot.img $ISODIR/boot/efiboot
- mkdir -p $ISODIR/boot/efiboot/EFI/boot
- cp $ISODIR/efi/boot/bootx64.efi $ISODIR/boot/efiboot/EFI/boot
- umount $ISODIR/boot/efiboot
- rm -fr $ISODIR/boot/efiboot
-}
-
-prepare_syslinux() {
- [ -f $ISODIR/isolinux/isolinux.bin ] && return
- msg "preparing syslinux boot files..."
- mkdir -p $ISODIR/isolinux
- cp $ROOTFS/usr/share/syslinux/ldlinux.c32 $ISODIR/isolinux
- cp $ROOTFS/usr/share/syslinux/isolinux.bin $ISODIR/isolinux
-}
-
-make_iso() {
- cp $ROOTFS/boot/vmlinuz-linux $ISODIR/boot/vmlinuz
- [ -f $MKISOD/live_script.sh ] && cp $MKISOD/live_script.sh $ISODIR/boot
- touch $ISODIR/boot/livemedia
-
- if [ -d $MKISOD/include ]; then
- echo "include rootfs files..."
- (
- cd $MKISOD/include
- chown -R 0:0 *
- tar -czf $ISODIR/boot/rootfs.gz *
- )
- fi
-
- cat << EOF > $ISODIR/isolinux/isolinux.cfg
-#UI /isolinux/menu.c32
-DEFAULT silent
-TIMEOUT 0
-
-LABEL silent
-LINUX /boot/vmlinuz
-APPEND initrd=/boot/initrd
-EOF
-
- cat << EOF > $ISODIR/boot/grub/grub.cfg
-set default=0
-set timeout=3
-set timeout_style=hidden
-
-menuentry 'Alice Linux' {
- linux /boot/vmlinuz
- initrd /boot/initrd
-}
-EOF
-
- msg "generating iso..."
- rm -f $OUTPUT
- xorriso -as mkisofs \
- -isohybrid-mbr $ROOTFS/usr/share/syslinux/isohdpfx.bin \
- -c isolinux/boot.cat \
- -b isolinux/isolinux.bin \
- -no-emul-boot \
- -boot-load-size 4 \
- -boot-info-table \
- -eltorito-alt-boot \
- -e boot/efiboot.img \
- -no-emul-boot \
- -isohybrid-gpt-basdat \
- -volid ALICE \
- -o $OUTPUT $ISODIR
-
- sha256sum $OUTPUT > $ISOSUM
-}
-
-WORKDIR=/tmp/alice-iso
-ROOTFS=$WORKDIR/rootfs
-ISODIR=$WORKDIR/liveiso
-INITRAMFSDIR=$WORKDIR/initramfs
-MKISOD=$PWD/mkiso.d
-OUTPUT=$PWD/alicelinux-$(date +%Y%m%d).iso
-ISOSUM=$OUTPUT.sha256sum
-
-required_kmods="crypto
- fs lib
- drivers/block
- drivers/md
- drivers/ata
- drivers/firewire
- drivers/input/keyboard
- drivers/input/mouse
- drivers/scsi
- drivers/message
- drivers/pcmcia
- drivers/virtio
- drivers/usb/host
- drivers/usb/storage
- drivers/hid
- drivers/cdrom"
-
-cleanup
-prepare_rootfs
-squashfs_rootfs
-make_initramfs
-prepare_grub
-prepare_syslinux
-make_iso
-cleanup
-
-msg "making iso done"
-
-exit 0