From 1fcc45dd321e75e130a6048f1cacaad33d94890c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20Sj=C3=B6strom?= <lars@radicore.se> Date: Fri, 14 Mar 2025 07:52:35 +0100 Subject: [PATCH] feat: add factory reset UKI --- pkgs/image/mkimage.sh | 25 ++++++++++++++++++++++--- pkgs/rootfs/mkrootfs.sh | 4 ++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/pkgs/image/mkimage.sh b/pkgs/image/mkimage.sh index df56849..8c94348 100644 --- a/pkgs/image/mkimage.sh +++ b/pkgs/image/mkimage.sh @@ -74,21 +74,40 @@ $systemd/usr/bin/ukify build \ --os-release @rootfs/etc/os-release \ --cmdline "$kernelCmdLine roothash=$roothash" \ -o patos_${version}.efi + +cat <<EOF > reset-os-release +NAME=PatOS +PRETTY_NAME=PatOS Factory Reset +IMAGE_ID=patos +ID=patos +IMAGE_VERSION=${version} +VERSION=${version} +VERSION_ID=patos +EOF + +$systemd/usr/bin/ukify build \ + --linux $kernel/bzImage \ + --initrd $initrd/initrd.xz \ + --os-release @./reset-os-release \ + --cmdline "$kernelCmdLine roothash=$roothash systemd.factory_reset=yes" \ + -o patos_factory_reset.efi rm -rf rootfs cp patos_${version}.efi boot/ +cp patos_factory_reset.efi boot/ cp ${systemd}/usr/lib/systemd/boot/efi/systemd-bootx64.efi boot/ -echo "timeout 1" > boot/loader.conf +echo "timeout 2" > boot/loader.conf # Final partitioning cat <<EOF > final.repart.d/10-esp.conf [Partition] Type=esp Format=vfat -SizeMinBytes=96M -SizeMaxBytes=96M +SizeMinBytes=160M +SizeMaxBytes=160M CopyFiles=/boot/systemd-bootx64.efi:/EFI/BOOT/BOOTX64.EFI CopyFiles=/boot/patos_${version}.efi:/EFI/Linux/patos_${version}.efi +CopyFiles=/boot/patos_factory_reset.efi:/EFI/Linux/patos_factory_reset.efi CopyFiles=/boot/loader.conf:/loader/loader.conf EOF diff --git a/pkgs/rootfs/mkrootfs.sh b/pkgs/rootfs/mkrootfs.sh index 7e8df9e..3ccc93c 100644 --- a/pkgs/rootfs/mkrootfs.sh +++ b/pkgs/rootfs/mkrootfs.sh @@ -52,8 +52,8 @@ cat <<EOF > $out/etc/repart.d/10-esp.conf [Partition] Type=esp Format=vfat -SizeMaxBytes=96M -SizeMinBytes=96M +SizeMaxBytes=160M +SizeMinBytes=160M EOF cat <<EOF > $out/etc/repart.d/20-root-a.conf