My Linux Odyssey (Or how difficult it is to put on a hat)
Back in October I bought myself a new shiny SSD to finally make the first step of leaving behind Windows.
After enquiring about which Distro to use, I settled on Fedora after being fed up with using Ubuntu in the past and feeling not close to technically skilled enough to use Arch.
The original plan was to have the SSD hold multiple Linux OS as well as a common storage that can be accessed from Windows as well as these distros.
Since I wanted to be able to dual boot multiple OS (Fedora & Tails) I choose Ventoy … Well chose is a strong word. It’s the only software for dual booting that still seems to be maintained.
While reading up on Ventoy I hit my fist snag. Ventoy does not support persistence in Tails.
“Okay whatever I can deal with that later as long as I am able to store some file on common folder I’m fine” However dear reader who knows about partitioning, you will know that we are running out of space on the partition table with Ventoy, Tails and Fedora each taking up space. Once again I thought “okay whatever, I can figure that out later” and moved on to Fedora.
Now, running Fedora without persistence through Ventoy is no issue, but as soon you want persistence it gets tricky.
See, Fedora cannot just with run persistence off Ventoy. It needs a boot option edited. How this is accomplished? No one even in the Ventoy Forum could tell me. and I felt waaay in over my head when I started reading up on Grub and how to edit the Bootloader files I find somewhere while digging through the ISO with 7zip.
So I started reading up what this “selinux” option even is and found out that, I should probably not disable it. to begin with.
“Oookay” I thought slightly desperate, “I guess Ventoy is off the table”
Luckily, a few weeks later, I found out about Whonix. Thus, a new play formed in my head: Ditch Ventoy and Tails, part the SSD to make it usable as a normal file storage and keep the other partition with persistent Fedora with Whonix.
“Okay, that seems already waaay easier. I installed Ubuntu before from a VM to USB Sticks for school, I can do the same with Fedora. I’m basically already on the finishing straight”
Well no.
Turns out, running a VM comes with its own snags. Like how VMware really is only working great if you buy a licence or the fact that Virtualbx automatically set’s the USB Standard of each VM to USB 2.0 meaning you will need to reboot the live OS to make the SSD running under 3.0 visible for installation. There goes another 20 minutes down the drain.
After fiddling around with the partition manager in Fedora and reading up on the documentation surrounding this issue (and finding out that it is more than 15(!) Version behind the current setup (it was a nice read tho)) another slap happened, to my already failing believe that this project would work out.
Partitioning the SSD with a home, boot, swap and EFI System Partition, can leave enough space on the Disk but no extra space on the partition table.
“Well, guess I have to mount a LVM Partiton somewhere” I thought and moved on in the hope to at least get Fedora finally running on the SSD.
But alas, my BIOS just decided to throw the most generic error ever.
Upon searching the web I found about this bug which apparently has been open since Fedora 37. So on the chance of me having said issue because of this bug, I got Fedora 36 and repeated the steps of creating a VM (don’t forget about that USB2 issue, or you will lose 20 minutes again) and installing it on the SSD. Presumably because I have an unmaintained version of Fedora which is 3 version behind the current one, installing Fedora on the SSD took more than an hour. (opposed to the 30 minutes it took me with 38.)
And after all that hassle? Still nothing. I still get that Bios Error and I still can’t run Fedora, and I have to say I’m sick and tired of it. I’m not a complete idiot (in most ways of life) but I cannot for the love of me figure out how I will ever get this to work. Or how the average user (who, let’s assume for the sake of my argument, is also not a complete idiot) is supposed to make this work. The hoops I jumped through, the hours of time wasted waiting for a status bar to update, the time spent googling and reading up on seemingly obscure issues, no average user wants to do this.
It’s utopian to assume “oh users will just switch if Microsoft just does this or that stupid thing”. Whatever will happen, these users will not come in troves to Linux. This experience, which I can only describe as “running blind through a mirror maze” is masochistic.
And I can’t do it any more. Maybe six months down the road, when brain damage finally has me forgotten the headache this journey has caused, I will pick this project up again. For now, I just really needed to write this rant, or I fear this day spent troubleshooting was for nothing.
Edit:
Thank you to everybody for reading through my, I gotta say now, quite ignorant, post.
Also thank you to most posters. Most comments were quite helpful and kind.
A few things that I might not have explained the best way.
The goal of the project was threefold:
•Have a removable drive with Linux on to slowly ease myself into this new OS while still having Windows as a fallback on the laptop
•Have it also work as a normal storage drive in the windows environment. (preferably without seeing any Linux folders in Window explorer)
•Have some kind of secure privacy option available to browse Anna's archive for ebooks.
For the longest time reading this post, I didn't catch that you were setting up a simple dual boot for an internal SSD and thought with using tools like Ventoy you were making a multiboot portable install.
You are obscenely overcomplicating this. Your current approach is almost completely wrong to getting a functional multiboot system that passes secure boot and everything else.
Quite literally, bootstrapping from windows can use Rufus or ventoy on a USB stick to dump the ISOs on. Then boot into bios from the USB EFI entry. From there, simply install Fedora (no VM necessary). You'll get Fedora installed in a GPT/EFI configuration (if you formatted your drive for install). If doing manual partitioning to leave space or do other configurations, format the drive to GPT. If multibooting, you may want to expand your EFI partition beyond 512MiB for multiple distros.
For other Linux OS to install alongside, you can then install them in the free space. Another comment mentioned to not install a bootloader on the secondary OS(es), which is generally a good idea.
For Tails, it is not meant to be installed on an SSD. It is best to use it on a flash drive.
Overall, a majority of your issues stem from the following:
trying to use live distro images as an actual OS install
using Ventoy as your bootloader
using legacy MBR partition tables instead of GPT without expressed need for them
Using virtualbox in general to provision bare metal hardware (changes need to be made in your VM software of choice to get EFI booting to work)
I'd argue your conclusion of people not switching to Linux because you found it too hard is almost entirely not because of any issue on Linux, but the factors you wedged yourself into on a modern x86 PC due to your methods in accomplishing your goal.
Nono I was going for a multi boot portable install.
The T7 is an external SSD. I got Ventoy to work on the T7 with Fedora (also with Tails), I just couldn't get the persistence to work for Fedora too. I think that's where I took a wrong turn. Instead of trying to figure out how to get that "selinux=0" command to work for Fedora, I should have properly reassessed my goal and started from scratch. I kinda fell victim to the sunk cost fallacy.
I think you still don't need ventoy for that task. Ventoy is useful when you want to be able to quickly add new bootable systems and update the live images by just replacing ISO files. Basically it's handy for installers and duag tools, and tails on the pendrive, but that's it.
For a long living system I think you want an actually installed operating system, with a regular boot loader. Grub, refind, systems-boot, whatever. Or at least I definitely would go that way.
Also, I have read in a guide on the Mint forum that the thing that is called "persistence" is confusingly just a very old, hacky and bad way of adding persistence to a live, portable system, and you don't actually want that when you want to keep your files and settings that you have made.
You can install to a USB mounted SSD like a normal system by using a liveUSB and installing to the SSD. That's how you get a portable install with persistence. I actually run my raspberry pi home server this way; it runs entirely off a USB SSD with Fedora Server. It works just as well as an internal install, minus the bandwidth lost from it being in a USB enclosure. I'm not sure about getting Tails on the same drive, I've never tried to put an ISO on a drive with an OS installed. Tails is meant to be run on a USB drive, so it doesn't have an installer. ISO images have their own boot partitions, so while I'm sure you could decompress it, move files manually, and fix the holes created from removing the files from the ISO, that would be very complicated and technical, and have a high probability of failure. I believe you can run Tails in a VM, though the liveUSB is definitely the preferred method. Everything in the VM will connect through Tor just like it would if you used the liveUSB.
This should work, though I believe I used a different method when I first installed it a few years ago. I had to copy the firmware to the boot partition, but I believe that should be done for you so long as you use the imager that is linked in the Fedora article. If you're on Windows, you won't have to use the command line as the Fedora article suggests. After downloading the image, so long as you have 7zip, you can just right click and extract. Then just follow the Raspberry Pi instructions they link for using the Raspberry Pi imager. Fedora 40 comes out on Tuesday, and I highly recommend you use Fedora Server, because Raspberry Pi devices are not well suited to running desktop environments. They are meant mostly to run headless (no graphical interface, only a terminal). If you just want to try out Fedora 40 for the desktop experience, I recommend using a VM, because the Raspberry Pi will not give you a good desktop experience.
Ah, that would put a bit of complication into things. If you want to actually accomplish this though, you should largely start with the same steps as a standard system install, using a second USB flash drive to write the distro onto the external SSD, leaving enough space to build the rest of the partitions you need. If you intend to make a Windows-shared partition (exfat, fat32, or NTFS), it is probably best to put that partition either first or just behind the EFI partition so that Windows systems won't have a hard time finding it. Exfat or NTFS would be a better choice for this type of partition.
I would still generally recommend keeping the live distros on a separate bootable drive, but you can size and reserve dummy partitions after the rest of your normal dual-boot installs and shared data partitions for live installers to overwrite. There is likely going to be some experimentation with getting the OS bootloader (such as on GRUB provided by Fedora in this case) to pick them up and add them as boot entries. You should (depending on the live image) be able to dd write them to the ending partitions reserved for the image for as long as the partition is sized equal or larger than the ISO image's size (it's best to give at least a few blocks of oversize on the partition when writing ISO's directly).
Edit: In a proper Fedora install, you should almost never need to disable selinux or set it to permissive unless you know why you don't want it.
Ah, that would put a bit of complication into things. If you want to actually accomplish this though, you should largely start with the same steps as a standard system install, using a second USB flash drive to write the distro onto the external SSD, leaving enough space to build the rest of the partitions you need.
I've actually tried to install Fedora on an USB SSD to play around with it. But somehow the installer just refused to select the second USB drive as an installation target. I looked for quite some time but couldn't find a way to do it. I ended up trying to install it manually like Arch (for fun), but never got a bootable system 😅 I was able to install Arch and NixOS on the same drive without issue.
I'm actually not sure how OP could achieve something close to what they're looking for... A regular installation certainly seems like the right choice, but that may require using an internal drive.
I just did some testing in the past hour or so and did a portable install from scratch using the Fedora Workstation 39 iso. I'm not exactly sure what your hardware detection issue would have been, but I can say that Anaconda could detect both a USB flash drive and an external hard drive I had plugged in.
Going with the USB flash drive, I did skip using the automatic partitioning and went for using blivet to do my work. I did format the drive beforehand as I have always had issues with that drive properly accepting various partitioning commands (the installer no exception as tested). I did reserve a partition for a shared storage filesystem, but didn't actually give it a filesystem here.
In blivet, here is a sample of the kind of partition schema I was talking about (something that might be helpful to OP or anyone else that wants to try this setup):
I was able to then complete the install as normal and boot into the finished USB drive. I noted a small non-fatal complaint from grub on boot, but I imagine this is fixed with updating the system. All systemd units boot without failure and I am able to get the system working with minimal issue. The only real issue I could note is that the installation is very sluggish (due to it being on a flash drive rather than an external ssd or some other more suitable media). After booting, I then opened Disks and added the missing exfat (or NTFS) filesystem I reserved a partition for. The reason I didn't do this in blivet during install is because the option doesn't actually exist to make an exfat fs in the tool.
Hopefully, this comment is helpful toward getting such a setup working.
EDIT:
Something I did notice with GRUB on Fedora Workstation 39 is that by default, the menu will not show unless pressing escape on boot. There is a useful AskUbuntu post that explains in detail how to access the grub menu and how to change it to behave in a better fashion for a multiboot system.
In my case, the problem was that the disk never showed up in the Fedora installer. I've quickly reproduced the issue in a VM (but I originally noticed it on bare metal):
As you can see in fdisk, the disk (/dev/sda) has been recognized correctly by the kernel and works as expected. But somehow the installer only shows the "internal" /dev/vda.
After some further investigation, this seems to be related to the specific USB drives. I tried three different ones. It failed on a USB stick and the original external NVME enclosure. However, it did accept my USB to SATA adapter. So I guess I could install Fedora on my 10-year old HDD... 😐