live-iso-kde/build.sh
Ward from fusion-voyager-3 202cb625df Try to fix the ridiclous
2024-08-11 01:22:03 +03:00

98 lines
2.9 KiB
Bash
Executable File

#! /bin/bash
set -e
source ./info.sh
if [[ -z $ROOTFS_PATH ]]
then
echo "Error: ROOTFS PATH is not set!"
exit 1
fi
# Mount
mount --bind /dev "$ROOTFS_PATH/dev"
mount -t tmpfs run "$ROOTFS_PATH/run" -o mode=0755,nosuid,nodev
mount -t proc proc "$ROOTFS_PATH/proc" -o nosuid,nodev,noexec
mount -t sysfs sys "$ROOTFS_PATH/sys" -o nosuid,nodev,noexec,ro
# Setup Chroot scripts
cp -rvf ./chroot_scripts "$ROOTFS_PATH/"
cp -rvf ./hooks "$ROOTFS_PATH/chroot_scripts/"
cp -rvf ./live-lists "$ROOTFS_PATH/chroot_scripts/"
cp -rvf ./pool-lists "$ROOTFS_PATH/chroot_scripts/"
cp -rvf ./rem-lists "$ROOTFS_PATH/chroot_scripts/"
cp -rvf ./info.sh "$ROOTFS_PATH/chroot_scripts/"
# Run chroot_script inside ROOTFS
chroot "$ROOTFS_PATH" bash -c "/chroot_scripts/0-chroot.sh"
rm -rfv "$ROOTFS_PATH/chroot_scripts"
# Unmount
umount "$ROOTFS_PATH/dev" || umount -lf "$ROOTFS_PATH/dev" || true
umount "$ROOTFS_PATH/run" || umount -lf "$ROOTFS_PATH/run" || true
umount "$ROOTFS_PATH/proc" || umount -lf "$ROOTFS_PATH/proc" || true
umount "$ROOTFS_PATH/sys" || umount -lf "$ROOTFS_PATH/sys" || true
# Generate Squashfs image
mksquashfs \
"$ROOTFS_PATH" \
"$LIVE_BOOT_LIVE_PATH/filesystem.squashfs" \
-noappend \
-comp xz \
-b 1M \
-Xdict-size 1M \
-Xbcj x86
# Copy Kernel to live (Disabled, Copy Kernels to refind instead)
#cp "$ROOTFS_PATH/boot"/vmlinuz-* \
# "$LIVE_BOOT_LIVE_PATH/vmlinuz" && \
#cp "$ROOTFS_PATH/boot"/initrd.img-* \
# "$LIVE_BOOT_LIVE_PATH/initrd" && \
#cp ./data/refind/refind_linux.conf \
# "$LIVE_BOOT_LIVE_PATH/refind_linux.conf"
# Generate bootable EFI Image from refind
# Copy kernel to refind
mkdir -p ./data/refind/EFI
cp -vf "$ROOTFS_PATH/boot"/vmlinuz-"$ISO_KERNEL" "./data/refind/EFI/vmlinuz"
cp -vf "$ROOTFS_PATH/boot"/initrd.img-"$ISO_KERNEL" "./data/refind/EFI/initrd"
# Create Refind Image
dd if=/dev/zero of="$DD_BOOT_IMAGE" bs=1 count=$REFIND_SIZE
mkfs.vfat -F 32 "$DD_BOOT_IMAGE"
for directory in $(find ./data/refind/EFI/ -type d | cut -d'/' -f4-)
do
mmd -i "$DD_BOOT_IMAGE" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')"
done
for file in $(find ./data/refind/EFI/ -type f)
do
mcopy -i "$DD_BOOT_IMAGE" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')"
done
# Create Live medium image
dd if=/dev/zero of="$DD_LIVE_IMAGE" bs=1 count=$LIVE_SIZE
mkfs.ext4 "$DD_LIVE_IMAGE"
for directory in $(find $LIVE_BOOT_LIVE_PATH -type d | cut -d'/' -f4-)
do
mmd -i "$DD_LIVE_IMAGE" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')"
done
for file in $(find $LIVE_BOOT_LIVE_PATH -type f)
do
mcopy -i "$DD_LIVE_IMAGE" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')"
done
cat $DD_BOOT_IMAGE $DD_LIVE_IMAGE > "./output/$ISO_IMAGE".iso
# Generate an integrity sum
touch "./output/$ISO_IMAGE".md5
md5sum "./output/$ISO_IMAGE".iso > "./output/$ISO_IMAGE".md5