Skip to content

Installer fixes: dual-boot free-space + full-disk (#3 #115 #127 #130 #137) - #140

Open
nightdevil00 wants to merge 1 commit into
omacom:quattrofrom
nightdevil00:installer-fixes
Open

Installer fixes: dual-boot free-space + full-disk (#3 #115 #127 #130 #137)#140
nightdevil00 wants to merge 1 commit into
omacom:quattrofrom
nightdevil00:installer-fixes

Conversation

@nightdevil00

Copy link
Copy Markdown

Installer fixes: dual-boot free-space + full-disk installers

Closes #3, #115, #127, #130, #137.

Seven installer defects across both install workflows, each fixed so a failure
degrades to the next mechanism instead of aborting the install, and none
changes the standard (non-broken) path.

Dual-boot free-space ([NTFS][free space])

  • Different-disk messaging. The free-space flow already creates its own FAT32
    ESP + root in the selected gap (it never touches Windows' ESP/ext4). The disk
    configurator now says so on-screen, removing the mis-targeting that aborted
    installs on a second disk.
  • Stale btrfs/LUKS signature on reinstall (Fix omarchy-iso-boot #3). A single one-shot
    wipefs -af raced udev and aborted the reinstall. New retried,
    error-tolerant clear_stale_signatures() (up to 3×, returns 0 on failure)
    replaces it in run_partition_execute.
  • Full NVRAM blocks the Limine entry (Install fails on old UEFI when efibootmgr refuses to create a boot entry, and the reason is discarded #127). efibootmgr --create failure
    used to discard the real error and either roll back or abort. Now the reason is
    captured, dangling entries are purged (Windows/live untouched), the create is
    retried once, and on final failure Omarchy installs the
    \EFI\BOOT\BOOTX64.EFI fallback, enables Limine's fallback, keeps the pacman
    hook in sync, and validate_boot accepts the missing entry only when the
    fallback exists.

Full-disk

Tests

All Python and shell unit tests pass.

Notes for reviewers

…top WIP

Installer fixes:
- Free-space install on a different disk ([NTFS][free space]): the
  configurator now states it always creates its own EFI + root, and
  clear_stale_signatures() retries the wipefs so a transient busy device
  no longer aborts a reinstall (omacom#3).
- Full NVRAM blocks the Limine boot entry (omacom#127): capture efibootmgr's
  reason, purge dangling entries (Windows/live untouched), retry once, then
  fall back to \EFI\BOOT\BOOTX64.EFI + enable Limine fallback.
- Full-disk stale LUKS header aborts archinstall's wipe (omacom#137): the cleanup
  script wipes partition + disk signatures itself before archinstall.
- cryptsetup close "Device root is still in use" race (omacom#130): force-close
  stray mappings and retry, scoped to the busy-device message.
- archinstall scans a LUKS partition as btrfs and crashes (omacom#115): guard
  get_btrfs_info() against crypto_LUKS during partitioning.

Tests added: test_nvram_fallback.py, cleanup-disk-wipe-test.sh
Plans: installer-fixes-dual-boot-and-full-disk.md, installer-fixes-PR-BODY.md

Also bundles the current live-desktop working tree (nvidia live install,
omarchy-live-boot service, systemd/modprobe units, profiledef/grub/syslinux
updates). archiso submodule left at the published 424e781.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix omarchy-iso-boot

1 participant