On Sun, Dec 28, 2025 at 11:51:19 -0500, Felix Miata wrote:
> It's been a very long time since this issue has presented
> here. All my PCs are multiboot. I block installation of, remove, or otherwise
> disable Grub from all but the one installation I wish to retain boot control.
> So,
This is the way I've always seen it done as well: choose one operating
system on the disk to be the "master", which has control of the boot
menu. Only generate a new boot menu from that one OS, never from any
of the others.
Legacy BIOS multi-booting with an "msdos" partition table basically
works like this:
1) Leave a bit of space unpartitioned at the beginning of the disk.
It doesn't have to be large; a megabyte or so will suffice.
This is where the "Master Boot Record" (MBR) will be written.
2) Install each operating system to its own partition. For simplicity,
don't use a separate /boot for each one, and don't encrypt anything.
3) Any shared partitions (/home and swap are common choices) should also
be created. For simplicity, do *not* allow those to be touched during
the OS installation steps. Add those to your fstab files later.[*]
4) Ideally, you'll install the "master" OS last, so that you can actually
boot into it and generate the GRUB boot menu.
5) Boot into the "master" OS. Get the file system UUIDs of your shared
file systems and swap partitions, and add them to your /etc/fstab
file. Don't forget to create the mount points. Use "mount -a" and
"swapon -a" to activate them.
6) While you're booted into the "master" OS, assuming it's Debian, make
sure the os-prober package is installed, and edit the
/etc/default/grub file:
GRUB_DISABLE_OS_PROBER=false
Then run update-grub.
7) Temporarily mount each of the non-master OS partitions somewhere,
and add the shared UUIDs to those /etc/fstab files as well.
8) Boot into each of the non-master OSes to test them, and also to
disable generation of the GRUB menu from each of them. (I'm not
sure exactly how you disable that!)
9) Every time you install a new kernel or need a new initrd image to
be used in any of your OSes (firmware updates, microcode, etc.),
you'll need to boot into the "master" OS and re-run update-grub.
I'm probably forgetting something, because I haven't done anything like
this in a VERY long time.
[*] If you allow the installer to touch your swap partition, for example,
it will probably recreate it from scratch, with a new UUID, and this
will invalidate all the swap UUIDs in all of your other fstab files.
That's why I recommend manually adding it to all your fstab files.