diff --git a/live/config-cdroot/fix_bootconfig.aarch64 b/live/config-cdroot/fix_bootconfig.aarch64 index 68d221d7af..520d9cfdb4 100755 --- a/live/config-cdroot/fix_bootconfig.aarch64 +++ b/live/config-cdroot/fix_bootconfig.aarch64 @@ -97,6 +97,13 @@ menuentry "Check Installation Medium" --class os --unrestricted { echo Loading initrd... initrd (\$root)/boot/aarch64/loader/initrd } +menuentry "Rescue System" --class os --unrestricted { + set gfxpayload=keep + echo Loading kernel... + linux (\$root)/boot/aarch64/loader/linux \${extra_cmdline} \${isoboot} $RESCUE_SYSTEM_BOOT_SETTINGS + echo Loading initrd... + initrd (\$root)/boot/aarch64/loader/initrd +} menuentry "Boot from Hard Disk" --class opensuse --class gnu-linux --class gnu --class os { exit } diff --git a/live/config-cdroot/fix_bootconfig.ppc64le b/live/config-cdroot/fix_bootconfig.ppc64le index 348c2de666..d9254a240b 100755 --- a/live/config-cdroot/fix_bootconfig.ppc64le +++ b/live/config-cdroot/fix_bootconfig.ppc64le @@ -109,6 +109,13 @@ menuentry "Check Installation Medium" --class os --unrestricted { initrd /boot/ppc64le/initrd } +menuentry "Rescue System" --class os --unrestricted { + echo 'Loading kernel...' + linux /boot/ppc64le/linux $RESCUE_SYSTEM_BOOT_SETTINGS + echo 'Loading initrd...' + initrd /boot/ppc64le/initrd +} + menuentry 'local' { exit } diff --git a/live/config-cdroot/fix_bootconfig.x86_64 b/live/config-cdroot/fix_bootconfig.x86_64 index f6258fb874..23956eb894 100755 --- a/live/config-cdroot/fix_bootconfig.x86_64 +++ b/live/config-cdroot/fix_bootconfig.x86_64 @@ -97,6 +97,13 @@ menuentry "Check Installation Medium" --class os --unrestricted { echo Loading initrd... initrd (\$root)/boot/x86_64/loader/initrd } +menuentry "Rescue System" --class os --unrestricted { + set gfxpayload=keep + echo Loading kernel... + linux (\$root)/boot/x86_64/loader/linux \${extra_cmdline} \${isoboot} $RESCUE_SYSTEM_BOOT_SETTINGS + echo Loading initrd... + initrd (\$root)/boot/x86_64/loader/initrd +} menuentry "Boot from Hard Disk" --class opensuse --class gnu-linux --class gnu --class os { if search --no-floppy --file /efi/boot/fallback.efi --set ; then for os in opensuse sles leap suse; do diff --git a/live/live-root/etc/systemd/system/live-password.service b/live/live-root/etc/systemd/system/live-password.service index dd37dfd9c8..b6131e0756 100644 --- a/live/live-root/etc/systemd/system/live-password.service +++ b/live/live-root/etc/systemd/system/live-password.service @@ -47,3 +47,4 @@ TimeoutStartSec=infinity [Install] WantedBy=multi-user.target +WantedBy=rescue.target diff --git a/live/src/agama-installer.changes b/live/src/agama-installer.changes index 54eaa61afc..a184944a8b 100644 --- a/live/src/agama-installer.changes +++ b/live/src/agama-installer.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon May 26 14:22:03 UTC 2025 - Lukas Ocilka + +- Added a simple Rescue System by reusing the Installation Live + Image and disabling the Agama services + ------------------------------------------------------------------- Wed May 21 12:42:34 UTC 2025 - Knut Anderssen diff --git a/live/src/fix_bootconfig b/live/src/fix_bootconfig index d901c6974a..fe081e8ea0 100644 --- a/live/src/fix_bootconfig +++ b/live/src/fix_bootconfig @@ -59,6 +59,16 @@ profile=$(echo "$kiwi_profiles" | tr "_" "-") # keep in sync with ISO Volume ID set in the config.sh script volid="Install-\$profile-$arch" +# the simple rescue system reuses the installation live media +# but boots to the text-mode only and disables the Agama server +export RESCUE_SYSTEM_BOOT_SETTINGS="systemd.unit=multi-user.target \ +systemd.mask=agama.service systemd.mask=agama-dbus-monitor.service \ +systemd.mask=agama-ssh-issue.service systemd.mask=agama-avahi-issue.service \ +systemd.mask=agama-welcome-issue.service systemd.mask=agama-url-issue.service \ +systemd.mask=agama-certificate-issue.service \ +systemd.mask=agama-certificate-issue.path \ +systemd.mask=agama-certificate-wait.service" + [ -x $bootfix ] && $bootfix $dst rm -f $dst/fix_bootconfig.* $dst/.profile