Kernel 7.1 unpacks the initramfs asynchronously, which races /init: the early /proc, /sys, /dev, and /run mounts fail with EPERM while unpacking settles. In the live environment that kills Plymouth and leaves early archiso mounts to luck. Force synchronous unpacking on every boot entry, matching the fix shipped for installed systems in omarchy-defaults.conf. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
81 lines
2.8 KiB
INI
81 lines
2.8 KiB
INI
# https://www.supergrubdisk.org/wiki/Loopback.cfg
|
|
|
|
# Search for the ISO volume
|
|
search --no-floppy --set=archiso_img_dev --file "${iso_path}"
|
|
probe --set archiso_img_dev_uuid --fs-uuid "${archiso_img_dev}"
|
|
|
|
# Get a human readable platform identifier
|
|
if [ "${grub_platform}" == 'efi' ]; then
|
|
archiso_platform='UEFI'
|
|
if [ "${grub_cpu}" == 'x86_64' ]; then
|
|
archiso_platform="x64 ${archiso_platform}"
|
|
elif [ "${grub_cpu}" == 'i386' ]; then
|
|
archiso_platform="IA32 ${archiso_platform}"
|
|
else
|
|
archiso_platform="${grub_cpu} ${archiso_platform}"
|
|
fi
|
|
elif [ "${grub_platform}" == 'pc' ]; then
|
|
archiso_platform='BIOS'
|
|
else
|
|
archiso_platform="${grub_cpu} ${grub_platform}"
|
|
fi
|
|
|
|
# Set default menu entry
|
|
default=archlinux
|
|
timeout=0
|
|
timeout_style=hidden
|
|
|
|
|
|
# Menu entries
|
|
|
|
menuentry "Omarchy (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
|
|
set gfxpayload=keep
|
|
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-t2 archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" quiet splash xe.enable_panel_replay=0 initramfs_async=0
|
|
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-t2.img
|
|
}
|
|
|
|
menuentry "Omarchy with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
|
|
set gfxpayload=keep
|
|
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-t2 archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" accessibility=on xe.enable_panel_replay=0 initramfs_async=0
|
|
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-t2.img
|
|
}
|
|
|
|
|
|
if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then
|
|
menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool {
|
|
set gfxpayload=800x600,1024x768
|
|
linux /boot/memtest86+/memtest.efi
|
|
}
|
|
fi
|
|
if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then
|
|
menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool {
|
|
set gfxpayload=800x600,1024x768
|
|
linux /boot/memtest86+/memtest
|
|
}
|
|
fi
|
|
if [ "${grub_platform}" == 'efi' ]; then
|
|
if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then
|
|
menuentry 'UEFI Shell' --class efi {
|
|
chainloader /shellx64.efi
|
|
}
|
|
elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then
|
|
menuentry 'UEFI Shell' --class efi {
|
|
chainloader /shellia32.efi
|
|
}
|
|
fi
|
|
|
|
menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
|
|
fwsetup
|
|
}
|
|
fi
|
|
|
|
menuentry 'System shutdown' --class shutdown --class poweroff {
|
|
echo 'System shutting down...'
|
|
halt
|
|
}
|
|
|
|
menuentry 'System restart' --class reboot --class restart {
|
|
echo 'System rebooting...'
|
|
reboot
|
|
}
|