diff options
Diffstat (limited to 'utils/mkiso.sh')
| -rwxr-xr-x | utils/mkiso.sh | 194 |
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 |