From a7236977f31d417116ee39915c92ca9b461f95ba Mon Sep 17 00:00:00 2001 From: Elliu <elliu@hashi.re> Date: Sun, 14 Nov 2021 18:49:49 +0100 Subject: [PATCH] Add script to patch an ubuntu iso (should work with debian I guess) --- .gitignore | 1 + patchIso.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 .gitignore create mode 100755 patchIso.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6267c43 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.iso diff --git a/patchIso.sh b/patchIso.sh new file mode 100755 index 0000000..e79fbd6 --- /dev/null +++ b/patchIso.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Usage: ./patchIso.sh ubuntu.iso casper/filesystem.squasfs tmpPatch arise + +set -e + +baseIso="${1}" +squashFs="${2}" +workingDir="${3}" +plymouthThemeDir="${4}" + +mkdir -p "${workingDir}/mnt" +sudo mount -o loop "${baseIso}" "${workingDir}/mnt" + +cd "${workingDir}" +mkdir extract-cd +sudo rsync --exclude="${squashFs}" -a mnt/ extract-cd + +sudo unsquashfs "mnt/${squashFs}" +sudo mv squashfs-root edit +sudo umount mnt + +sudo mount --bind /dev/ edit/dev +sudo chroot edit mount -t proc none /proc +sudo chroot edit mount -t sysfs none /sys +sudo chroot edit mount -t devpts none /dev/pts + +sudo cp -r "../${plymouthThemeDir}" "edit/usr/share/plymouth/themes/" +echo "update-alternatives --install "/usr/share/plymouth/themes/default.plymouth" default.plymouth /usr/share/plymouth/themes/${plymouthThemeDir}/`basename ${plymouthThemeDir}`.plymouth 100" | sudo chroot edit bash -s +echo "update-alternatives --set default.plymouth /usr/share/plymouth/themes/${plymouthThemeDir}/`basename ${plymouthThemeDir}`.plymouth" | sudo chroot edit bash -s + +sudo umount edit/dev/pts +sudo umount edit/sys +sudo umount edit/proc +sudo umount edit/dev + +sudo mksquashfs edit "extract-cd/${squashFs}" + +echo "printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/`dirname ${squashFs}``basename -s .squashfs ${squashFs}`.size" | sudo su -c bash + +cd extract-cd +sudo rm md5sum.txt +find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt + +sudo mkisofs -D -r -V "ubuntu_arise" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../../ubuntu-arise.iso . -- GitLab