Set up GRUB and detect other OSes when updating the boot image

This commit is contained in:
SirBlob committed 2026-09-24 03:34:36 +00:00
1 parent 3fea28e225
commit 3bfb10f3f1
5 files changed
+78 -29

No files matched your search

+1 -1
View File
@@ -60,7 +60,7 @@ of the `blob` listing.
| Command | Does | Arguments |
| --- | --- | --- |
| `blob-boot` | - | - |
| `blob-boot` | Apply a boot splash, set up GRUB, and detect other operating systems | [image] \| grub [--purge] \| detect \| cleanup \| status |
## branding
+3 -2
View File
@@ -15,7 +15,7 @@ with `--check`.
| `install/steps/packages.sh` | repo and AUR packages, and the yay bootstrap |
| `install/steps/config.sh` | the `BLOB_PATH` symlink, everything under `~/.config`, and the login shell profile |
| `install/steps/services.sh` | system services, systemd drop-ins, user units |
| `install/steps/boot.sh` | the Plymouth boot splash |
| `install/steps/boot.sh` | the Plymouth boot splash, GRUB, and other-OS detection |
| `install/steps/theme.sh` | the wallpaper link, the first theme, the first background |
| `install/steps/login.sh` | SDDM, the session entry, and the first launch |
| `install/steps/reload.sh` | reloading systemd, the user services, and a running session |
@@ -81,7 +81,8 @@ with `--check`.
holds the console and leaves the machine with neither a greeter nor a TTY.
The installer then applies `branding/blob_boot.png` as the boot splash
through `blob boot`, which installs the theme, adds the mkinitcpio hook,
unmasks the plymouth units and rebuilds the initramfs. It is skipped when
unmasks the plymouth units, rebuilds the initramfs, and sets GRUB up with
os-prober so other installed systems appear in the boot menu. It is skipped when
the blob theme is already the default with the same image, and once it is
in place the plymouth units are no longer masked on later runs. See
[packages.md](packages.md#the-boot-splash).
+18 -3
View File
@@ -152,9 +152,24 @@ TTY. `install.sh` therefore masks `plymouth-start.service` and
`plymouth-quit-wait.service` until the splash is configured, and `blob boot`
unmasks them as part of configuring everything else - the theme in
`default/plymouth/`, the `plymouth` mkinitcpio hook, and the initramfs rebuild.
It finishes by printing the kernel parameters your bootloader still needs
(`quiet splash vt.global_cursor_default=0`), because that line is the one thing
it will not rewrite for a bootloader other than GRUB.
Every splash update then sets GRUB up to boot the machine and everything else
on it:
- With GRUB already installed, it makes sure `os-prober` is installed and
`GRUB_DISABLE_OS_PROBER=false`, adds whichever of `quiet splash
vt.global_cursor_default=0` is missing from `GRUB_CMDLINE_LINUX_DEFAULT`
without touching the rest of the line, and regenerates the menu. os-prober
finds other systems, Windows gets an explicit chainload entry when os-prober
misses it on a shared ESP, and the run stops if the menu has no Arch entry.
- Without GRUB, it runs the same migration as `blob boot grub`: GRUB is
installed, other systems are detected, and GRUB is armed for one test boot
with Limine left as the standing default. Once that boot works,
`blob boot cleanup` retires Limine.
- On a machine not booted in UEFI mode GRUB is left alone and the kernel
parameters the bootloader still needs are printed instead.
`blob boot detect` reruns only the OS detection.
## Updating