From 417b1209e2cedf56a94b15d095300a47a6c25236 Mon Sep 17 00:00:00 2001 From: Ward from fusion-voyager-3 Date: Thu, 1 Aug 2024 19:05:23 +0300 Subject: [PATCH] first attempt at making GPT only refind image --- .github/push-iso | 2 +- build.sh | 36 +++++++++++++++++++++----- chroot_scripts/2-install-live-lists.sh | 8 +++--- data/refind/EFI/boot/icons/README | 2 +- data/refind/refind_linux.conf | 3 +++ info.sh | 5 ++++ 6 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 data/refind/refind_linux.conf diff --git a/.github/push-iso b/.github/push-iso index 2bd5a0a..4099407 100644 --- a/.github/push-iso +++ b/.github/push-iso @@ -1 +1 @@ -22 +23 diff --git a/build.sh b/build.sh index 1c749a3..46697a6 100755 --- a/build.sh +++ b/build.sh @@ -21,7 +21,7 @@ mount -t sysfs sys "$ROOTFS_PATH/sys" -o nosuid,nodev,noexec,ro cp -rvf ./chroot_scripts "$ROOTFS_PATH/" cp -rvf ./hooks "$ROOTFS_PATH/chroot_scripts/" -cp -rvf ./live-lists "$ROOTFS_PATH/chroot_scripts/" +cp -rvf ./linux/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/" @@ -40,11 +40,9 @@ umount "$ROOTFS_PATH/sys" || umount -lf "$ROOTFS_PATH/sys" || true # Generate Squashfs image -mkdir -p $LIVE_BOOT_PATH/live - mksquashfs \ "$ROOTFS_PATH" \ - "$LIVE_BOOT_PATH/live/filesystem.squashfs" \ + "$LIVE_BOOT_PATH/linux/live/filesystem.squashfs" \ -e boot \ -noappend \ -comp xz \ @@ -54,6 +52,32 @@ mksquashfs \ # Copy Kernel to live cp "$ROOTFS_PATH/boot"/vmlinuz-* \ - "$LIVE_BOOT_PATH/live/vmlinuz" && \ + "$LIVE_BOOT_PATH/linux/live/vmlinuz" && \ cp "$ROOTFS_PATH/boot"/initrd.img-* \ - "$LIVE_BOOT_PATH/live/initrd" + "$LIVE_BOOT_PATH/linux/live/initrd" && \ +cp ./data/refind/refind_linux.conf \ + "$LIVE_BOOT_PATH/linux/live/refind_linux.conf" + +# Generate bootable EFI Image from refind + +dd if=/dev/zero of=disk.img bs=1M count=20 +losetup --offset 1048576 --sizelimit 46934528 /dev/loop5 disk.img +mkfs.vfat /dev/loop5 +mkdir -p /mnt/efi-disk +mount /dev/loop5 /mnt/efi-disk +mkdir -p /mnt/efi-disk/EFI +rsync -av ./data/refind/EFI/* /mnt/efi-disk/EFI/ +mkisofs -o "$LIVE_BOOT_PATH/efiboot.img" /mnt/efi-disk/ +umount -l /mnt/efi-disk +rm -rfv disk.img + +# Create Bootable UEFI Full Image +mkdir -p ./output + +xorriso \ + -as mkisofs \ + -V $LIVE_BOOT_VOLUME_NAME \ + -e "$LIVE_BOOT_PATH/efiboot.img" \ + -no-emul-boot \ + -o "./output/$ISO_IMAGE" \ + "$LIVE_BOOT_PATH/linux" diff --git a/chroot_scripts/2-install-live-lists.sh b/chroot_scripts/2-install-live-lists.sh index 7b19671..f1c7f47 100755 --- a/chroot_scripts/2-install-live-lists.sh +++ b/chroot_scripts/2-install-live-lists.sh @@ -4,19 +4,19 @@ set -e export DEBIAN_FRONTEND="noninteractive" -touch /chroot_scripts/live_list +touch /chroot_scripts/linux/live_list -for live_list in /chroot_scripts/live-lists/*.list +for live_list in /chroot_scripts/linux/live-lists/*.list do for pkg in $(cat $live_list) do if [[ $pkg != "#"* ]] then - echo $pkg >> /chroot_scripts/live_list + echo $pkg >> /chroot_scripts/linux/live_list fi done done -apt-get install --yes --no-install-recommends --option Dpkg::Options::="--force-confnew" $(cat /chroot_scripts/live_list | tr "\n" " ") +apt-get install --yes --no-install-recommends --option Dpkg::Options::="--force-confnew" $(cat /chroot_scripts/linux/live_list | tr "\n" " ") diff --git a/data/refind/EFI/boot/icons/README b/data/refind/EFI/boot/icons/README index bad6fab..c52da51 100644 --- a/data/refind/EFI/boot/icons/README +++ b/data/refind/EFI/boot/icons/README @@ -82,7 +82,7 @@ os_mandriva.png -- AwOken/clear/128x128/start-here/start-here-mandriva5.png os_network.png -- AwOken/clear/128x128/places/network-workgroup1.png os_uefi.png -- AwOkenWhite/clear/128x128/start-here/start-here-umbrella3.png os_unknown.png -- AwOken/clear/128x128/actions/color-line1.png -os_win8.png -- AwOken/clear/128x128/apps/live1.png +os_win8.png -- AwOken/clear/128x128/apps/linux/live1.png Icons modified from AwOken 2.5: diff --git a/data/refind/refind_linux.conf b/data/refind/refind_linux.conf new file mode 100644 index 0000000..2013653 --- /dev/null +++ b/data/refind/refind_linux.conf @@ -0,0 +1,3 @@ +"Boot live image with standard options" "boot=live quiet splash ---" +"Boot live image with logging" "boot=live ---" +"Boot live image with safe graphics" "boot=live nomodeset ---" diff --git a/info.sh b/info.sh index 90bd4e2..43ce0be 100755 --- a/info.sh +++ b/info.sh @@ -3,3 +3,8 @@ export LIVE_BOOT_PATH="$(pwd)/LIVE_BOOT" export ROOTFS_PATH="$LIVE_BOOT_DIR/rootfs" export LIVE_HOSTNAME="pikaos" +export ISO_ARCH="amd64-v3" +export ISO_RELEASE="4.0" +export ISO_DESKTOP="GNOME" +export ISO_IMAGE="PikaOS-$DESKTOP-$RELEASE-$ARCH-$(date '+%y.%m.%d')" +export LIVE_BOOT_VOLUME_NAME="PikaOS-$DESKTOP-$RELEASE-$ARCH"