GTK4/Libadwaita recovery utility for reinstalling GRUB from a Linux live system.
- Detects Linux installations without unmounting user volumes.
- Accepts only validated EFI System Partitions, not arbitrary FAT partitions.
- Ranks EFI targets using the installed system's
fstaband physical disk. - Excludes the active live medium and de-duplicates device-mapper paths.
- Uses a private
0700runtime directory and private mount point. - Detects the real Btrfs root subvolume and separate
/bootpartition. - Compares the detected root with
/etc/fstab, GRUB kernel arguments, and initramfs files. - Checks Btrfs device error counters before offering write operations.
- Backs up and repairs stale root UUID, subvolume, and essential mkinitcpio hooks only after confirmation.
- Requires successful initramfs generation and validates the resulting GRUB configuration.
- Cleans mounts on success, failure, cancellation, and application shutdown.
- Validates BIOS-on-GPT targets for a BIOS boot partition.
Boot repair uses the GRUB and initramfs tools already installed in the selected system and can work with multiple Linux distributions. Package repair and complete update are intentionally limited to BigLinux, Arch Linux, and Manjaro because those modes use pacman and manjaro-chroot.
- Diagnose and Repair Boot: verifies the root UUID and subvolume, repairs confirmed configuration mismatches, regenerates initramfs, reinstalls GRUB, and validates the result.
- Intermediate: reinstalls the GRUB package, then performs the validated boot repair.
- Complete: updates the installed Arch-based system, preserves its installed kernel packages, and restores GRUB.
- Interactive tools: opens a terminal or available BigLinux maintenance applications inside the selected system.
- Boot a BigLinux live image in the same firmware mode normally used by the installed system.
- Start Restore the installed system.
- Select the installed Linux system.
- Confirm the EFI partition marked Recommended, or verify the target disk in Legacy mode.
- Start with Diagnose and Repair Boot.
- Review the integrated log, then reboot after a successful result.
Do not interrupt package repair. Keep portable computers connected to power.
pytest -q
ruff check usr/share/biglinux/grub-restore tests
shellcheck -x -P usr/share/biglinux/grub-restore/backend \
usr/bin/biglinux-grub-restore \
usr/share/biglinux/grub-restore/backend/*.sh \
usr/share/biglinux/grub-restore/backend/grub-*
for catalog in locale/*.po; do msgfmt --check --check-format -o /dev/null "$catalog"; doneThe tests use simulated block-device inventories. They do not mount or modify real disks.
Python 3, GTK4, Libadwaita, VTE4, GRUB, os-prober, util-linux, btrfs-progs, pacman, and manjaro-tools-base.
Licensed under GPL-2.0-or-later.