#!/bin/sh set -e ISO=$(mktemp -d) STORE=$(mktemp -d) PATCHES=/tmp PATHTOISO=$STORE/fake_slackware64-current_20180501.iso mount /data/images_iso/slackware64-current-install-dvd.iso /mnt printf %b "Copying the genuine ISO in a temp directory...\n" cp -a /mnt/* $ISO umount /mnt TMP=$(mktemp -d) mkdir $TMP/initrd ( cd $TMP/initrd gunzip -cd $ISO/isolinux/initrd.img | \ cpio -i -d -m -H newc --no-absolute-filenames \ ) (cd $TMP/initrd/usr/lib/setup patch -p0 --verbose < $PATCHES/SeTEFI.diff sleep 15 ) ( cd $TMP/initrd find . -print | cpio -o --owner root:root -H newc | gzip -9 > $ISO/isolinux/initrd.img ) printf %b "Rebuilding the new ISO...\n" ( cd $ISO EFIOPTIONS="-eltorito-alt-boot -e isolinux/efiboot.img -isohybrid-gpt-basdat -no-emul-boot" xorriso -as mkisofs \ -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \ -hide-rr-moved \ -U \ -V "FAKESLACK" \ -J \ -joliet-long \ -r \ -v \ -x source \ -x slackware64 \ -x extra \ -x patches \ -x testing \ -o $PATHTOISO \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot \ -boot-info-table $EFIOPTIONS . \ ) 2>${PATHTOISO%iso}log.txt printf %b "Hopefully, $PATHTOISO has been built\n" printf %b "Check the log file ${PATHTOISO%iso}log.txt\n" printf %b "Don't forget to remove $STORE $ISO and $TMP when you are done\n"