OK, I have a question about how to manage an aspect of booting multiple operating systems.
I have 5 operating systems on my desktop computer that I use for various purposes including playing music: Windows; Xubuntu (based on Ubuntu); Arcolinux (based on Arch); minimal Arch Linux (server OS, no GUI); minimal Ubuntu Server (no GUI).
I need to be able to switch between operating systems remotely, IOW reboot from one operating system to another. I can accomplish this with GRUB (grub-reboot) and a VNC app for the OSs with GUIs, or an app called Tailscale to remotely ssh into the OSs without GUIs. All good so far, with just one tiny complication:
My two Arch-based OSs sometimes think they are installed on the second NVME drive, nvme1n1, while the other OSs always believe they are installed on the first NVME drive, nvme0n1. This causes booting with GRUB to hang sometimes on the Arch-based OSs, because GRUB is looking for root/kernel on nvme0n1 while those OSs think root/kernel is on nvme1n1.
I have tried to get GRUB to use UUID and PARTUUID rather than device names to boot by having the following lines in /etc/default/grub:
So my question - How can I configure GRUB, or another boot manager that lets me easily select remotely which operating system to boot into, so that booting no longer hangs on the Arch-based operating systems?
Rather than pasting the whole grub.cfg, I can tell you a couple of things:
I’ve gotten rid of some old files in the /boot/efi/EFI directory that were left over from installations of other operating systems, and I now have things to the point that they will work in the situation where I am booting remotely. This is because I’ve installed GRUB on Xubuntu, it’s the default OS, and when I select one of the Arch-based OSs to reboot into from Xubuntu, it tells those OSs to look for root in the proper device location, nvme0n1. It’s only when I’m home sitting in front of the computer that this is a mite inconvenient, since I have to boot into Xubuntu first in order to reach Arcolinux and Arch.
grub.cfg has Xubuntu, Ubuntu Server and Windows using UUID to locate root, while Arcolinux and Arch show root located on a device rather than using UUID (thus the problem). Why it does this when /etc/default/grub is configured to use UUID with no exceptions, I don’t know.
I’m wondering if I add an /etc/grub.d/40_custom file duplicating grub.cfg but inserting UUIDs rather than device names (or doing this for the Arcolinux and Arch entries only), whether this will correct the problem.
I actually uncommented and changed the “true” to “false,” just to be certain. This was after trying with the line commented and obtaining exactly the same result. So why it’s not using UUID for everything is still a mystery to me.
Thanks for asking. I haven’t had time to try. Currently I’ve got GRUB installed on Xubuntu. I want to see whether installing on ArcoLinux and ensuring /etc/default/grub has UUID enabled will work. If that doesn’t take care of it I’ll do hand tuning. But it will be another couple of days at least until I try.