So I asked this question on a more general Linux forum since this is only semi EndeavourOS related but didn’t get any helpful answers. Figured I’d try my luck here since this has been a very helpful forum with knowledgeable people.
Flattery out of the way here is my question. Is it possible to “hide” or otherwise tell a live environment to ignore certain drives or partitions? I though possibly through fstab possibly using ro or noauto? But would a live environment/install even look at fstab? Basically I am just wanting systemd-boot or GRUB to ignore any other boot partitions they find. This appears to be a GRUB exclusive issue as far as I can tell but I am using GRUB to be able to boot off of snapshots.
My use case is that I have a spare SSD that I would like to use to play around with different Linux distros without affecting my main EOS boot. The safest way, and the one I have been using thus far, is to physically remove any other drives while performing an install. Since my NVMe with Endeavour on it is located underneath a heatsink which is itself underneath the graphics card this becomes fairly tedious. In addition, I worry about constantly removing these parts as I can’t imagine consumer GPUs are meant to be inserted and removed over and over.
I have looked at disabling NVMe drives in UEFI/BIOS but this does not appear to be an option on my motherboard (or from Google searching any consumer mobo that I can find).
So with all that said, anyone ever tried anything similar or have any thoughts on how to accomplish something like that?
you want to fake out the installer?
damn that’s original.
Ideas: when I install I unplug the other HDDs/SDDs especially when a bast**d like WIN is around, or a grub that can wreck a bootloader or vice versa.
also can you UMOUNT those drives before install?
Also–what does a Calmares, for instance, or other installer see? All connected drives? How do they look for them? tallying the scuzzy’s running into the board?
trying to get the ball rolling here. fascinating question.
someone donated me a 10-year-old budget toshiba laptop, 4GB and a slow 2.3 on the board so I have 3 distros I am auditioning: Devuan (debian), Endeavour, and Solus. My partner is rightfully concerned I am getting nothing done today. And the day before. And a few days before that. I digress.
check this out. I just read this and took a picture of it. this is a picture of the 1000-year-old Debian installer in the wild:
Unfortunately, it does not appear so. The motherboard I am using is the Gigabyte X670 Aorus Elite AX (mobo manual link). I dug through the UEFI menus and unless I’m just overlooking it there doesn’t appear to be an option. The closest I found was the ability to disable NVMe for fast boot (which gave me hope originally) but that option only applies to fast boot which I have off and doesn’t impact the ability of live environments to detect the NVMe boot drives.
Now this does bring up the possibility of looking for a new mother board that does support this option. I wonder how hard it would be to locate a Zen 4 motherboard which supports selective NVMe disabling?
Also as a follow up to “hiding” drives from the Linux kernel I did find something interesting although most certainly outdated at this point. Someone did implement a kernel patch to disable certain drives from being loaded by the kernel. Here So it does seem theoretically possible, although I would somehow have to load kernel boot parameters into a installation environment. This also only applies to ata devices not NVMe which I don’t think would work for my use case.
This is a very new AM5 motherboard. I would check for new UEFI Firmware (Bios) updates now and periodically for a few years to come. There definitely will be more updates and it is important. You can only set the boot order for first boot and that would be the drive usually that has EOS installed on it since it will control the boot whether you are dual booting Windows or not. I am referring to grub mainly here as I’m not using systemd-boot. I use grub with btrfs and set up to use snapshots.
You can use a spare ssd to install another distro but the issue is that if os-prober is installed on EOS and active it will pick up the other installed OS. I can’t speak for every distro and I don’t know what you intend to install. Normally they also have os-prober so you also do not want that to be picking up EOS and or Windows if dual booting and adding it to the boot menu of that other installed linux. It can be done if you do it correctly and if using grub and you run the update grub command it will not find that other linux on the extra ssd. You would boot to it by using the F key and selecting the drive when you want to boot to that one. Otherwise it would always boot to the drive EOS is installed. This will only work if you stop the installed OS from picking up other installed OS. There is no method that I’m aware of to hide the drive in the bios. You would have to check that your self since the manuals show little when it comes to any depth.
There was in fact a much newer version of UEFI firmware for my motherboard. Doesn’t seem to have added any features that relate to NVMe unfortunately. I am seeing mixed things online as to whether disabling NVMe drives on current motherboard is even possible as the newer PCIe formats connect directly to the CPU to increase speed. It looks like the first 2 slots on my motherboard connect to the CPU and the second 2 connect through the chipset so these could theoretically be disabled if this is true.
Since it sounds like you are using GRUB which is what I am using, is it possible to get different Linux GRUBs and a Windows partition to play nice together? I am using rEFInd as my boot manager which is what I prefer, however, something I have noticed is that GRUB will still try to take over booting. For instance, I wanted to try out openSUSE Tumbleweed so I installed it on my spare SSD. Unfortunately, the GRUB for openSUSE took over the GRUB for EOS so I could no longer boot directly to EOS from rEFInd I had to go through the GRUB for openSUSE. I ended up reinstalling EOS and deleting openSUSE, but could I have just rebuilt GRUB from EOS? Or would this have just done the opposite and made it so that to get into openSUSE I would have to go through GRUB for EOS? (Maybe I should just build a dualboot VM setup and play around with it to get to know GRUB better)
If you have each OS residing on a different drive, the simplest and most brute-force solution is to not unify the bootloaders at all.
Instead just install them directly to their own drive, and do all your boot-selecting through your system’s onboard boot manager to directly boot from whichever drive has the OS you want on it.
Yes - if each drive only has one OS on it, there’s no need for anything more advanced than the onboard boot menu.
You will still naturally install grub or systemd (or your bootloader of choice) when installing the OS on it’s own drive because that’s just how it works, but it will only be installed on that drive and specifically used for managing the boot of that particular OS, and has no need to interact with any of the other drives at all so won’t conflict with the other OSs and their own individual bootloaders (and therefore vice-versa).
This is because opensuse is set up to find the other OS and add it to it’s grub bootloader. If you disable that which i assume is os-prober and run the update command again on it then it should not add the other OS to it. I have used refind before also but stopped using it some time ago and went back to grub, btrfs, btrfs-assistant, snapper-support, & btrfsmaintenance. I have two nvme drives and an ssd and a HD. So i can install other distros on another drive as long as i keep them from the adding entries and i boot to this drive by using an F key.
Interesting, this may be the solution for me then. How are you able to keep other distros from adding entries? Disabling os-prober when installing? Or finding the equivalent for the particular distro I am installing?
Also out of curiosity, which motherboard manufacturer are you using? Is it pretty easy to use the boot select on your board? While I like my Gigabyte, one of the things I don’t love about it is the boot menu.
Thank you for the suggestions @ricklinux and @z580c . I appreciate the suggestions. I may have been trying to over complicate my setup.
I disable os-prober even if i do it after the fact. So for instance if i installed MX linux as an example and it has os-prober installed and enabled. You could i supposed disable it before installing but even if you didn’t and it added the entries on the MX linux boot loader you could just disable os-prober or uninstall it and then run the grub-update command on MX linux. So booting to MX linux on the extra ssd would be done by using the F key to select the drive it’s installed on. So if you have EOS installed and it doesn’t matter if it’s dual boot as long as it was installed and all set up you just make sure os-prober is either disabled or uninstalled and it won’t pick any other distro you install on the ssd. If you install multiple linux OS on that extra drive then same thing. You have to prevent it from taking over MX’s grub bootloader as it would be the one to multiboot those other OS on that drive without affecting MX linux or the drive that you have EOS and or Windows multiboot on.
Edit: In otherwords you may have to enable os-prober on MX after you install another distro with it and make sure it has os-prober disabled first. Then boot into MX and update grub so that it adds this new distro to the MX bootloader. As long as you understand the process you can manipulate things as needed.