Tips on running multiple distros together on my laptop?

Macaroni9538@lemmy.ml to Linux@lemmy.ml – 48 points –

Hello all, sorry for such a newbish question, as I should probably know how to properly partition a hard drive, but I really don't know where to start. So what I'm looking to do is install a Debian distro, RHEL, and Arch. Want to go with Mint LMDE, Manjaro, and Fedora. I do not need very much storage, so I don't think space is an issue. I have like a 500+ something GB ssd and the few things that I do need to store are in a cloud. I pretty much use my laptop for browsing, researching, maybe streaming videos, and hopefully more programming and tinkering as I learn more; that's about all... no gaming or no data hoarding.

Do I basically just start off installing one distro on the full hard drive and then when I go to install the others, just choose the "run alongside" option? or would I have to manually partition things out? Any thing to worry about with conflicts between different types of distros, etc.? hoping you kind folks can offer me some simple advice on how to go about this without messing up my system. It SEEMS simple enough and it might be so, but I just don't personally know how to go about it lol. Thanks alot!!

175

Tips on running multiple distros together on my laptop?

Sure. Don't.

Just use VMs instead. Partitioning your hard drive to boot multiple operating systems from is asking for trouble if you don't know what you're doing.

Thank you Stack Exchange.

Thanks, though it's actually that tricky? I honestly figured it would be more simple, but hey I guess not. Ehh I just don't want to get into VM quite yet; I've got alot of other learning to do first. But people dual boot windows and linux all the time with no problems, what is so different about dual booting or in my case triple booting three linux distros?

VMs are so much easier and more fun than dual booting. The best part about VMs is you can use both at once and they're the same system. Dual booting forces the OS's apart, and it's difficult to set up.

Do you have a recommended virtualization platform for such a project like this?

They actually don't. They try and it works for some time. And then the next Windows update intentionally fries their dual-boot. Then they go back to Windows.

Or they understood enough about the details and how to minimize the risk (basically running Linux with an linux boot manager that then chain-loads Windows boot files from another disk, so Windows is mostly oblivious about the other OS... and even then Windows likes to screw with the efi record) that they are mainly running linux. And later they tend to ditch Windows completely of just keep a virtual machine if they really need it for some proprietory stuff.

At least those scenarios above cover 95% of all people "dual-booting" I know...

In comparison, dual- or triple-booting Linux is indeed a bit less problematic. But the same thing applies: You mainly run one. And given that Linux distributions are all nearly the same, with just a few differences in pre-configuration and defaults, there's not much point to it.

Thanks for the info. Since im an explorer and learner and want to try new things, I figure I ought to step out of my debian/ubuntu bubble and start to familiarize myself with Arch and Fedora (or RHEL I guess?). but I just personally want then physically installed instead of some image in the cloud, ya know? It's just actually implementing this plan is a tad confusing for me.

Who said anything about the cloud? It's all on your local machine. The VM 'hard disks' are just files on your computer.

That's my bad, I tend to kinda lump cloud, VMs, and containers together and sometimes use catchall phrases. I know they're all different and I should clarify.

No worries. For easy reference:

Cloud: someone else's computer
VM: walled-off compartment of your PC
container: not-so-walled-off compartment of your PC.

Perfect! thank you. And I always thought containers and VMs were opposite, like a container is more ingrained into the distro. TIL!

So, with a VM everything inside it runs on a completely separate software stack completely different OS, Kernel, etc. It's very much pretending to be another machine.

With a container, it's running from the same kernel as the host, and the compartmentalisation is handled by the kernel basically. By default they can't really see each other, but the kernel can see both.

Do the distros remember and keep everything the same way though? like do they remember all your settings and apps and what not? Idk why, but im under the impression that they wipe each time. probably way wrong lol

So, docker images don't save their changes by default. The idea being that the image is supposed to be a reliable image that can fix any snafus with a simple revert of the system disk.

It's really easy to save changes though, just use docker commit . You can also mount host folders to folders in the guest, where they are as changeable as anything on your host.

Ahh I see. I definitely do want to learn docker but I think that may be too tricky for me right now. I do tend to get sidetracked and go off into little experiments though and end up not getting anything done lol

Everything is saved like on a "real" system.

Well perfect! Idk why I was under the impression that each time you spin a VM, its like a temporary session...

Honestly to me it's not bad, plus I think on a Linux system for home use it's nice to always push your comfort zone a bit. I use 4 partitions generally: boot files, distro #1, distro #2, and home data on a separate partition. This works for me because I like to tinker with one Linux installation while I have the other in case I need to get real work done while I'm in the middle of fixing the other install. Currently I run Ubuntu and nixos, booting from grub2 efi and letting nixos manage grub installation.

Even when it's totally borked grub2 is very capable of giving you tools to boot manually, and we all have magic reference books in our pockets 😹

VMs are as easy as installing applications. VirtualBox and VMware do great jobs in guiding users through the process.

perhaps I will take a gander if I can't figure it out manually.

There just isn't any reason to do it manually. You don't learn anything useful that you can't learn on a VM. And it adds complexity to your system that doesn't need to be there.

As others have stated, the main risk comes from having Windows as one of your partitions, as Windows doesn't care if you are working with other systems, it only cares about Windows.

I know SOLID principles are meant for object oriented programming, but, they have merit in many areas. One of the more impactful ones is the principle of single responsibility "...[X] should do one thing and therefore it should have only a single reason to change." Adding in additional responsibilities increases entropy and increases the likelihood that if something goes wrong, you won't be able to pinpoint what caused it, and therefore how to fix it. Situations like that are antithetical to your stated impetus of learning.

However, if you used virtual machines, not only are you now abiding by the principle of single responsibility, but you are also giving yourself access to standard industry tools and techniques that will serve you well in your learning journey. For example, when dual booting, if you royally mess something up, you are now left with a useless hunk of computer until you either figure out what you did and how to undo it, or you just give up and reinstall your OS. With VMs, you can just take a snapshot before you make your changes, and if shit hits the fan, you just revert to your snapshot and retry. This gives you the chance to figure out not just what happened, but why, and how to avoid it, all without losing access to your main system.

Not only that, but multiple VMs can be running simultaneously and can be used to simulate networks of interconnected machines all running disparate software with different goals and responsibilities.

It's obviously your computer and your choice. But, I'm trying to save you the headache many of us had to go through on our learning adventures. Just use VMs.

Thanks a lot. I'm just looking for more permanent solutions. Idk a whole lot about VM, but isn't your image wiped after each use? I dont want to keep tweaking settings and configurations, I want them to be like my own personal desktop where you install your own programs and make your own configurations and tweaks and they actually remain. Is that possible for VM distros? I would like to actually learn and use the other distros as work stations too. Not just trying to peak and toy around with other distros. If that were the case, I'd use my ventoy drive

So, for a bit of a crash course, a virtual machine is just that, a machine that is virtualized. So, anything you can do with your physical machine (your computer) you can do on a virtual machine. (You could even dual or triple [or more] boot a VM)

Just like a normal computer, changes made to a virtual machine are persistent unless you configure them not to be. So no need to worry about losing changes. (Though, I would suggest taking a snapshot of your newly installed distro as soon as you finish the initial installation, it will be useful if you need a clean starting point for something you want to do)

I suggest you download a couple of Linux distros you want to play with, download VirtualBox, and setup a virtual machine for each distro. You can also setup the VM to run in full screen mode, so it feels like native.

There are tons of guides online to help you out, and a large number of computer nerds here that will help you too.

The one limitation with VMs is gaming. You can get around that limitation once you're more well versed with them, but just don't expect to be gaming on a VM for quite a while.

Perfect! so you feel that Virtualbox is the way to go then?

Is there a specific VM software or method you would recommend for this project?

VirtualBox is the simplest and must accessible option for beginners. It's not very well aligned with Linux ethos, but it is easy to use and is well documented with many users to help if you need it. It also does a good job of walking you through the installation process when setting up VMs.

Warning: this is definitively doable, but messier than it looks like. I'd recommend you to partition it manually, before installing any distro, like this:

  • one partition per distro. For sizes check their requirements. Given 500GB I'd probably reserve 60GB for each, perhaps a bit more if I know that I'll install a lot of stuff in that distro.
  • one swap partition, that'll be accessed across distros. Optional if you have 16GB+ of RAM.
  • use the leftover space for a "storage" partition, for personal files that you won't save in someone else's computer (i.e. the cloud). That allows you to mess with the distros without risking your personal files.

Don't worry too much on getting the space right though - if necessary you can always resize a few partitions after installation. It's a bit of a bother though.

Do not share /home across distros, it's simply more trouble than it's worth. Instead, mount that "storage" partition in each distro, inside your /home/[$username] directory.


Another thing that you might want to consider is virtualisation. Odds are that you won't use a lot of those distros in your everyday, and that you're just curious about their differences. In that case, consider installing one of them, install Virtualbox in it, and then the other distros get installed inside Virtualbox. I'm suggesting that because it'll use overall less space, and make distro management less messy.

Thanks. I do not want to mess around with virtualization; I went down that rabbithole before and got lost and broke stuff lol. I need to do a bit more research and learning before im more confident with virtualization. So how large should the swap be? and what about a bootloader?? Are all three compatible with grub? also how large should the bootloader partition be? thanks, this is all a bit foreign to me.

VM are as easy as point and click with GNOME Boxes, also available as standalone.

Gotcha. Never explored Gnome boxes yet; probably just waiting for the right time. I've been trying to learn a whole lot of other tech stuff, so I sorta put virtualization on the back burner for now. Definitely wanna learn about KVM, lxd and lxc and even gnome boxes. just not right now

All those distros are compatible with grub, and come with their own copies of it. You just need to install your distros, and then when you say "I want THIS ONE to manage boot", you follow this tutorial. (It's supposed to help you reinstalling grub after Windows, but it works fine for grub after another Linux instal).

Or, if you want to be lazy - install last the distro that you want to manage boot, then tell it "screw the current boot, reinstall it".

I wouldn't bother with a bootloader partition. The bootloader runs fine from any distro partition, and it's small enough so you don't need to worry about it wasting space.

swap

I've been running my system without swap whatsoever for quite some time, and it runs fine. But if you're planning to use hibernation or similar, reserve the same amount of swap space as you have RAM; for example if you have 8GB RAM then at least 8GB swap.

IMPORTANT: if hibernating a distro, don't boot another distro, otherwise the hibernation data will get wiped.

Perfect! I will be disabling hibernation in Bios. Also, how exactly do you choose a default bootloader when each distro automatically installs their own? not sure on that process. Or do things like display managers matter? or is Xorg or Wayland pretty much good for all three?

Also, how exactly do you choose a default bootloader when each distro automatically installs their own?

I'd probably let Debian or LMDE do it simply because I'm more used to those distros, but you can simply roll a die if you want.

Or, if you already chose which distro should manage boot, and you want to know how to do it - the tutorial in the link does the trick. I'll adapt and copypaste a simplified version here:

::: spoiler how to let the distro of your choice manage boot

  1. Install all distros the way that you want. Make sure that you know in which partition each is installed.

  2. Pick the distro of your choice to manage boot. Let's say that it's Foobar Linux, and it's installed in /dev/sda69. (why 69? Because it's funny, so you'll remember to replace it with the right number later on.)

  3. Boot in some live USB. The distro in that USB doesn't matter.

  4. Open a terminal. Type the following junk in it:

    sudo sudo mount /dev/sda69 /mnt for i in /sys /proc /run /dev; do sudo mount --rbind "$i" "/mnt$i"; done sudo chroot /mnt update-grub

5. This should be enough. Now restart your computer without the live USB, and your Foobar Linux should be managing the boot.

:::

And just now I realised that some random distro might decide to take over the boot, once it updates kernel (as it triggers updating grub). So when installing the other distros, look for some configuration that allows you to not install grub in it. (It's also possible to remove it after the installation of the distro.)

Or do things like display managers matter? or is Xorg or Wayland pretty much good for all three?

That's a per-distro choice, you could go with Wayland for some and Xorg for others. I would probably go with Xorg for all three because it works for me.

Thanks! still a tad confusing for me, but it's something to work with at least. so you only mount the one that you want to handle the bootloader? what about the storage drive? do I just mount all the partitions to that drive and they will all automatically save to that storage drive? I ought to look up diagrams and such just to see it visually I think. Also, someone mentioned creating the partition first. how would that work out if you're still running a distro? would rebooting wipe that out and keep the partition in tact and then you work from there? or do you just partition as you go along with each install?

I think that this might help you, since you said that you mentioned diagrams:

The numbers after /dev/sda will change depending on how you partition your SSD, as well as their order, and I'm assuming that your username will be "macaroni" for simplicity, but look at the idea. (Also, you don't need to mount your personal files partition in /home/macaroni/storage. It could be mounted anywhere you want, even /randomjunk/catpix/dogpix/mypartition.)

If I recall correctly you don't need to mount the partition with grub (the bootloader), but do check it with other users as I'm not sure of that. Once you update grub in that distribution, it'll automatically detect "look! There are other systems here! I'll add them to the boot options!".

Also, someone mentioned creating the partition first. how would that work out if you’re still running a distro?

You should only create, delete or modify partitions of your SSD from a live USB. Never do it while the system installed in your SSD is running. Those partitions will stay even after you reboot.

I recommend creating the partitions first, then installing your distros. This way you'll have better control on how to organise your partitions. For example, if you decide to install Arch on the third partition, you can simply say it "hey, you shall be installed in /dev/sda3", no matter the order that you're installing Arch vs. other distros.

this is very very helpful, thanks alot. I love lemmy over reddit. you guys are actually kind and helpful here. so I mentioned in other posts, I don't store a whole lot of things at all and anything important is stored in a cloud. So do I necessarilly need to create a storage partition? can't I just use storage within each distro partition for trivial stuff like downloads or whatever? I hope that makes sense

You don't need to create a storage partition if you don't want to. You could theoretically reduce that partition table from the diagram to three partitions - one for each distro. It's up to you, really.

The problem that I see with that is organisation and security:

  • you'll likely use one distro more than the other two. That distro's partition will get full of personal files faster. Eventually you'll need to juggle files to the other two partitions.
  • you'll need to remember which system you were using in order to remember where your files are. And since you'll be juggling files back and forth, you'll reach a point where you need to search three directories to find a file.
  • if your personal files are spread across multiple partitions, you'll likely need to mount all of them in all your systems. This means that you'll need to mount Debian's and RHEL's partitions in Arch, Arch's and Debian's in RHEL, etc. It's generally not a good idea to mount partitions with system files unnecessarily.

Oh ok, so scratch that idea then lol see, this is the stuff I have no clue about! thank you

Hibernation is an OS feature, so you can't disable it in the BIOS. You can either disable it in all your distros or simply not use it.

Oh, believe me: There are so many messy BIOS and UEFI implementations out there that you can definitely deactivate it in the BIOS for some. Which just introduces even more mess where hibernation triggered on the OS level then fails.

Oh ok thanks. I just coulda swore I saw a hibernation setting in BIOS. That's another thing, would I have to create a Bios partition? this is a tad more confusing that I thought. Also determining the proper sizes of everything. What about an efi partition? or is that only associated with Windows? I have no clue

There are no BIOS partitions - you may be confusing the term with the BIOS partition scheme, but that doesn't matter in this context "BIOS partitions" do exist, but they are irrelevant on modern machines - they are for booting GPT disks on systems that only support MBR disks.

If you need an EFI partition, the first installer will create one. As for the sizes, the recommendation in the other comment makes sense to me (one ≈60 GB partition per distro, one swap partition and one partition for your personal files that uses the remaining space on the disk).

I mean SHOULD I make an efi partition? I have no clue if I need it or if it's optional. Simple is better in my case lol. SOO just trying to put it all together so far. first create a roughly 8gb fat32 partition for swap? Then a 60gb ext4 partition for distro 1, then so on with the other two partitions and thats it? how does the storage partition work? what format should that be? and I was reading about mount points and stuff, what ought I know about those?

If this is a plain computer (desktop/laptop): I'd simply turn EFI off and call it a day.

Sounds good to me. If I dont really know what it is, then maybe I dont need it enabled

If the installer doesn't automatically create an EFI partition, you can create a small FAT16 or FAT32 partition (a few hundred MB should be enough).

The swap partition is just a swap partition - that is the partition type you select in your partitioning tool.

The storage partition can be any format you want. If you don't need to access it from Windows, just use ext4.

Mount points are similar to drive letters, but more flexible. You can read these Wikipedia articles: https://en.wikipedia.org/wiki/Mount_%28computing%29 https://en.wikipedia.org/wiki/Fstab

Thanks again. So did you mention it's not really necessary to install an efi partition? Idk if I need it or not? or is it just better safe than sorry, sorta like a swap?

If you install your first distro without creating any partitions manually, the installer will probably create an EFI partition. Maybe it wouldn't need to create one on your specific system, but it will probably do it anyway.

gotcha! now how would that storage partition work? like do you point each distro to that partition? is that how that works?

10 more...
10 more...
10 more...
10 more...
10 more...
10 more...
10 more...
10 more...
10 more...
10 more...

Grub is compatible with pretty much everything.

Dude please excuse my ignorance, but I would obviously need to make a bootloader partition, but do I have to like download grub software and install it on that partition or is that something the system will do during the partitioning process itself?

The system won't do that by itself. I would recommend letting one of your distros do it. During the installation process, when you set that bootloader partition to be the boot partition, many distros will automatically install grub if it doesn't exist and add themselves to an existing grub config if it does exist.

Find a distro which installs with a default grub bootloader and make that the first distro you install.

Thanks! and as far as making one bootloader your default, is that just a matter of changing the order of your boot process? and if a distro automatically installs their own bootloader, would just the first installed one take precedence by default or is there some configuring you have to do? so I maybe really just be overthinking this. Is it as simple as making roughly 3 ~60gb ext4 partitions and simply just do the regular install according to each partition? what about mounting and all that. No clue how that all works

For the bootloader questions: You just have to go to your bios (spam a function key during start up, which function key depends on manufacturer) and change the boot order. The order of things which happen when you startup your machine is:

  • your bios starts up

  • your bios selects the highest priority bootloader you have (you want this to be grub)

  • you can choose which OS to open in grub, if you don't choose, it goes with whatever is set to be default in the grub config. If you haven't edited the grub config, I think this would either be the first installed OS or the first alphabetically

  • grub runs the startup sequence for the chosen OS

For the other questions: You might have to manually choose what to mount where. For each distro, you will want to mount a boot partition (your grub partition), a swap if your ram is low (make all your distros share the same swap partition), and a unique home partition.

You might also want to mount a shared files partition. These would be files you want stored locally that you can access from all the distros. Don't mount this in the install process, instead mount it after you install from whatever file manager you use on each distro. Make a ~/shared folder and mount it to that.

now this version sounds more simple. SO create three ext4 partitions roughly 50-60gb for each distro, maybe create a swap or maybe a storage partition? I don't understand how the storage partition would come into play, but I can just save anything important to my cloud drive anyway, so I don't necessarily need extra on device storage. So is that really it?

As for how exactly you add each distro to the grub config, refer to the distro specific grub instructions. Some user friendly distros auto detect and add themselves to grub, but some of the more customizable and bare bones distros need manual config.

awwee damn, thats another aspect I wasnt aware of. Are you referring to fstab or the actual grub config?

I edited the comment you are replying to to answer more of the questions.

You would want the partitions you mentioned as well as a grub bootloader partition.

Oh I see now. So I don't have much of a need for storage on my device. If I have anything important to save, I just use my cloud drive. Also I was under the impression from another poster that I don't need to make a bootloader partition because the installer will automatically do that for me, idk what is correct? if that's the case, then just mount the second and third distros to that first bootloader plus swap and I should be fine?

You need to make sure there's enough space for your installers to make a grub partition, but yes, if there's enough space, they will make the partitions themselves. You just need to tell them how big you want the partitions to be.

1 more...
1 more...
1 more...
1 more...
1 more...
1 more...
1 more...
1 more...
1 more...

What?

  1. Install virt-manager qemu qemu-kvm

  2. Run virt-manager

  3. Install a new distro, choose the .iso that you downloaded, assign 8GB RAM and 60GB storage

  4. Leave the rest default

  5. Follow the Distros installing process as usual

  6. Delete the VM if you are done

Important note: using distrobox or toolbox you can run packages of pretty much any distro on your Laptop. I am currently using Ubuntu PPA VLC 4.0 on Fedora Kinoite.

So virt manager, KVM, and qemu is the recommendation solution for this? Opposed to other methods like virtual box or gnome boxes or the other various virtualization platforms out there?

Hmm, I use Virt-manager as it supports some things with no GUI in Gnome boxes. Gnome boxes seems nice, but after trying certain things you get to a limit of functionalities.

Kvm ans qemu are always needed.

Gnome boxes has a flatpak, but that one has no usb support for some weird reason.

11 more...

Really nice idea with the shared swap and storage!

Caveats:

  • you can LUKS encrypt that, but you may need to tweak some polkit rules to automatically unlock it.
  • Fedora uses zram and swap and SELinux is a hell of a task

Apart from that, great recommendation!

In the end you can simply delete all partitions except your storage partition, reinstall any distro and mount that partition to /home

Fedora's swap on zram shouldn't pose a problem - at most it won't use the disk swap, but other distros still would.

Encryption is important but I wonder if OP would make much use out of it, given that he plans to bulk store his items in the cloud. The storage partition would be mostly for things "at hand". And if necessary, as you said, some elbow grease lets you have encryption and still access it from all distros.

I don't recommend OP to mount that partition directly to /home itself. It's bound to create problems later on due to software in different versions interacting with software that may or may not be present depending on the distro. Mounting it inside some other directory (even inside /home, e.g. /home/username/storage) feels considerably safer.

Right you would then have something like

  • swap
  • zram
  • /home/user/storage
  • boot
  • boot/efi
  • /
  • boot
  • boot/efi
  • /
  • boot
  • boot/efi

...

What a mess. But if you kinda keep track of what is what (maybe search for the packages dnf apt yay and so on) it can work

It's less messy than it looks like.

Physically you'd have N+2 partitions for N systems: one for swap, another for storage, and N for system files. Then inside each system you'd have simply to mount the swap, /, and /home/user/storage.

I recommended OP to turn EFI off, it sounds pointless in his situation. Regarding /boot: it boils down to installing grub in one of those distros, and letting it manage the boot.

Oh I just watched a video about home. So is that a partition of it's own? the guy was saying he was using different homes for each distro and it became a mess, so he planned to install one home directory for all distros.... idk?

/home is a directory ("folder"). Inside that directory, there's one subdirectory for each user, where you're expected to keep your personal files, configuration files, user data from software (e.g. save games from your games), stuff like this, personal data.

And Linux allows you to mount any partition in any directory of your choice.

Because of those two things, a lot of people create a partition and mount it as /home. So if something bad happens with the distro, and you need to reinstall it, your princess is in another castle your data is in another partition, safely stored. It's usually a good idea, but in your case it's a bad idea - because your /home/[insert username] directory from one distro will be likely the same as in the other distros, so they'll interfere on each other, and software user data will become a mess.

Instead, what I recommend you is to not create a /home partition. Let each distro have its own /home. However, do create a partition to store your data, and mount it inside your /home/[insert your username] directory. That way you can access all your files from all your distros, but the software user data won't be mixed.

Ahh brilliant! so create ONE storage partition and just mount that one partition in each distro's home directory?

Yup. Check the diagram that I posted as a reply to another comment. It's a clean way and it allows you to access your files from all your distros.

At least in theory you could even use a /home partition if you really, really wanted, but then you'd need to make sure that your username is different for each distro. It's more work than it's worth, and muscle memory will make you to try to log into one system with the username of another system.

11 more...

Have you tried distrobox ? That would sound more reasonable.

Never heard of this one. Some more research to do! Thanks for all the info

Its a container tool using Podman or Docker.

See a video on "container vs. Virtual machine".

What Distrobox does is downloading container images or any distro basically. It uses your system Kernel still, but all the libraries and packages are from the distro.

I.e. you can install Arch (AUR too), Ubuntu, Debian, Fedora, Opensuse packages on any distro.

The only thing not working are Flatpak and Snap as they need systemd

Darn, I do like to use flatpaks and occasionally snaps.... I know I know, most people hate them lol. But the big question for going the VM route is, do the distros I load up remember all my settings, configs, programs, etc? I want them to be like actual desktop distros where everything stays in tact and I'm not resetting everutime I boot up a VM iso

Yes they work completely normal. In theory the allocated space also just occupies what is actually used

And if you use Flatpak and snap just install it on your main system?

So this images will always remain the same as I make tweaks and download programs and such? And if I use flatpaks from my main distro, how would that install things on my VM distros?

A VM is like a container but also with its own Kernel. KVM shares the resources tightly with your systems kernel, so it has best performance afaik.

Its its own system, persistent storage, no interaction except if you choose to with spice integration, network, usb, GPU or filesystem passthrough

So... I guess it should work but you will end up with looots of partitions and pretty sure you have no idea what is what.

But if you plan on nuking it in the end, here is how to do it:

  • install a Distro to full hard drive
  • use some partition manager like KDE-Partitionmanager (the best of all) or Gparted and resize the big ext4/btrfs/zfs whatever storage partition as small as you want
  • install the next distro into the empty space
  • shrink that distros storage again, repeat

And please report if some crazy stuff happens with Grub or if you get secureboot working!

If I utilize this route, do you believe it'd be more trouble than anything or should it hypothetically work just fine?

So Question: What do you actually want to achieve?

Do you want a rolling, semi-rolling or stable releases? More tested or even LTS packages, or the latest?

Uhmmm so it would be interesting to learn about rolling releases and thats where my choice of manjaro could fit in. Sometimes I simply get bored of debian/Ubuntu but its what I'm most familiar with. The goal is to learn and USE other distros. Not just browse or hop around but I want to use the three main distro types all on one system. I want things to remain in tact like a normal workstation installed on your desktop. Idk much about virtualization, but I'm under the impression that they wipe your disk or a certain distro clean after each use. I do NOT want that.

I went a huge journey.

  • mint, crashed
  • manjaro, weird reputation but very nice
  • mxlinux: damn old packages back then
  • kubuntu: broke
  • kde neon: lol also broke
  • fedora kde: broke
  • fedora kinoite: have it the longest, didnt break yet

I like immutable as you can reset your system. You can see most of your deviation from "what works" using rpm-ostree status.

And sorry but its all Linux, it doesnt work differently if you are not a server admin or tweaking SELinux, custom polkit rules and stuff like that.

Thanks. The time I was using Manjaro, I liked it alot but am also confused by the weird negative reputation...

I mean they are based on Arch and their "stable" is simply that they wait to ship packages. I dont think this is the best way, unsure if they also handle bugfixes like that.

So its basically preconfigured Arch with a weird repo. If you want the AUR, it is said to break on Manjaro.

I run Debian with a bunch of virtual machines for exploring other distros. This might not be a good solution for a laptop though.

Not an answer to your question, but have you checked out Bedrock Linux as opposed to installing multiple distros? Or maybe using virtual machines?

I have HEARD of Bedrock but never really read about it. I will give it a check out now. Not too interested in VM's ATM

Bedrock linux is not a vm. It is a meta distro means it runs on top of your distros kernel.

Oh I wasn't inferring Bedrock was VM, was just saying I dont want to explore the VM route... I tried to before and messed things up lol though I will learn about it down the road! I'll read up on Bedrock though

Why?

Triple booting is a pita, moreso if you don't know how to partition a disk. I'd want any laptop encrypted, which adds further complexity to the triple boot.

If you wanna browse, research, watch videos and tinker just install a distro. If you wanna spend time switching your system off and on again over and over and over again to find out what's working/broken go for the triple boot.

Docker could be worth a shot. You can 'docker pull fedora/arch/debina/whatever' and can play around with the base systems. Alpine takes up about 6mib so isn't too resource intensive if you need to nuke it a few hundred times to get up and running.

But with virtualization or containerization, is there persistence for the distros? I think thats the right word. Like does it remember everything I tweak or install? I'm not necessarily wanting to just browse new distros, I want to learn them and use them too and if a VM wipes the image every time, thats not useful for me

Yes it does

I'm sorry yes it does wipe after each use or yes it does keep things in tact?

Keeps things intact. Try Parallels (I use it at work and it’s not free, but I’m pretty sure there are some great free alternatives)

Parallels as in parallel computing? Or are those different terms?

All these people saying don't do it - clearly, they're trying to learn something and are not necessarily after a fully usable, encrypted production system. Instead of telling them it's too complicated, we should encourage to play around and figure it out, so in the process maybe they find out on their own why this configuration might not make any sense in most situations.

So @op, just go for it, you're going to learn a lot from this!

Thank you. Its seeming that the VM route is more doable. I'm just curious if a VM for a linux distro will keep everything as is, like your files and filesystem, settings, tweaks, configs, etc. I essentially want three workstations. I dont want to keep starting over on a clean slate ya know? And if so, do you have a recommended virtualization platform that you would recommend for this project?

VMs are persistent unless you configure them not to be.

VirtualBox is the go-to easy-mode virtualization software. You'll likely quickly outgrow it as you learn it's limitations, but, it will teach you all the concepts you need to know, and they'll largely be transferable to more robust systems like esxi or proxmox.

One thing that might matter is that if all distros use the same swap partition for hibernation, you shouldn't boot one distro after hibernating another or you might overwrite the saved RAM contents.

If you use different swap partitions or files, you probably should still avoid writing to a partition that belongs to a distro that isn't actually shut down.

Ok, so maybe make a separate partition for each distro and a swap for each distro too? I'm also confused about the bootloader part too. I've never manually partitioned for a distro before, just always did the auto/recommended route.

I think the easier solution would be not to use hibernation - either shut the system down properly or use suspend-to-RAM.

If everything works, the bootloader should be whichever GRUB version comes with the distro you install first and the other distros' installers should just add entries to boot them.

Perfect! Thanks for this info. Sounds much easier. Is there one particular bootloader you think would be BEST for multibooting different distro types? My guess would be a Debian system first probably? and do you recommend I make separate partitions for everything or just install the other distros into the same partition as the first install?

There shouldn't be any significant difference between the GRUB versions that come with different distros, so the order in which you install the distros doesn't really matter.

You can't install multiple distros on one partition, so you need at least one partition per distro.

Ok cool, thanks. Does the bootloader partition get created automatically by the installer or is that something you must do manually? and should each partition for each distro have it's own swap? or just one swap to handle all three?

The first installer will install the bootloader automatically.

It will also create a swap partition unless you tell it not to, and all distros will use all swap partitions by default, so you don't need more than one per disk.

If you don't hibernate one distro and then boot another, sharing a swap partition isn't a problem.

I appreciate the patience and helpfulness. Dont the distro installers automatically create a swap for you? if not, how large of a swap do you recommend and would that just be an empty fat32 or ext4 partition?

A swap partition doesn't have a filesystem - it has its own partition type and doesn't contain files. The installer might create one automatically or it might not - if it asks how large it should be, a good rule of thumb is to use the same size as your RAM.

If that turns out not to be enough, you can create a swap file on a data partition later and if it's too large, you just wasted a few GB but usually that doesn't matter.

Ok so then in this case, create one swap approximately the size of my RAM as I guess the first partition? and then each partition beyond would be just for the distros? i've scene diagrams of efi and bios partitions in the front too, what about those?

The order of the partitions shouldn't matter - usually the EFI partition comes first if there is one at all, but as far as I know that isn't actually required.

thanks, makes it sound easier then. but what about the mount points like I mentioned? and do people make their own partition for the home directory??? and how does a storage partition integrate with three different distros? I just want to make sure I cover all my bases.

2 more...
2 more...
2 more...
2 more...
2 more...
2 more...
2 more...
2 more...
2 more...
2 more...

No need for manual partitioning, just resize the storage partition of the former distro, install automatically, repeat

Oh and just to be sure, I need to use the live iso for the distro in order to resize partitions, is that right?

No, as I said. Install, in the installed OS use the partition manager to resize itself. I think that should work best.

During the live usb installer phase the system is not installed on disk. You can resize the partition of a running system afaik. If not, yes you may need to use a live usb to do that.

But main question, why?

Because I would like three daily drivers, one for each main distro type so I can learn more and explore other types like arch and rhel based, since I'm not knowledgeable on those. But I also want them to be workstations too, for normal usage. Just variety... And of course for learning. I dont just want a live disk to tinker with and thats all. I want these distros to maintain everything I do inside them just like any physically installed distro. Maybe I'm not properly conveying my view idk

I dont see how this is important.

  • selinux vs apparmor
  • flatpak vs snap vs some package managers with varying names, thats it
  • zram vs swap
  • some filesystem differences

In the end its all GNU+Linux, the usage is the same. Just use Distrobox and learn how to use that, its so awesome.

You have a full CLI environment for each distro there, just no SELinux, apparmor or systemd.

I would recommend you to try Fedora. Mayve even the immutable spins. Thats the future and you can try a lot anyways like what I descriped.

Thanks again. Im not quite sure what these immutable distros are, I keep hearing about them. Gotta do some researching!

Immutable + atomic. Its similar to Android or IOS. It can be explained like that:

  • big parts of the core OS cant be changed easily. Immutable means "you cant change/break it". This also applies to software, third party install scripts, viruses and other things that might break your system.
  • atomic: updates are done like this:
  1. The system is an image, as if you would live boot a usb stick
  2. When you do an update, the package manager checks on the server for changes, I think it uses git. Only the changes are downloaded.
  3. rpm-ostree has downloaded the diffs, updated packages basically. Instead of just replacing your local packages, from the full operating system on your machine it builds a new image. Remember, the image is like the live USB or CDROM you can boot and use but not change.
  4. This new image is staged. This means if you reboot, you will boot into the updated version automatically. Updates go in the background and you will have a working system without any downtime. This is so much faster than for example Windows Updates or even standard Fedora "secure updates".
  5. atomic means that if something in that process fails, you will simply not get an update. So updates cant break anything.
  6. But dont forget its Linux and not Android. You can actually install what you want. This means during the "get updates phase" you can not only download "regular update packages" but also any other Fedora RPM package you want. This is called layering, as now this package is always added to your system on every update, as remember on every update your system would get resetted. You can also remove preinstalled packages, a common one on Fedora is the Firefox RPM.

That you can normally install apps is thanks to Flatpak, so you dont need to reboot on every install. The idea is to have a very slim core system and "outsource" as much as possible to Flatpak. This means at the same time, official packages, less work for the distro maintainers, and containerization.

In the future even more packages will be removed as native packages and installed through Flatpak. Buts still a developing technology and important things like native messaging or USB access (hardware security keys) are still missing.

Very very helpful. I tried to install Silverblue last night, but couldn't get it to work. after a successful install, when I go to restart, it just wouldn't restart, it would hang.

2 more...
2 more...

It could be done if you partition your disk prior to installing but, if there is no particular reason, you could make a bunch of VM's and daily drive one of the distros.

ummmm I dont really think I can give a good reason lol, just the way I want to do it. I feel if they're physically installed on my system, it would sort of force me to use other options, thus furthering my learning. I feel VMs or more impersonal and temporary. I use Ventoy for live OSs just to get a feel for things, but when it actually comes to daily use, I'd rather have them installed.

pick one. you'll end up with a favorite you use all of the time anyway, and sooner than you expect--after rebooting into this-or-that constantly to run something specific that's set up in it, or when you get tired of duplicating efforts a half-dozen times in all of them. you'll soon forget which distro has which app set up which way.

the rest in VMs so you can be familiar with their package management, system layout, and such. You can spin 'em up, destroy 'em, run them simultaneously, try out a new package or application or configuration, whatever; and in that process, mess shit up (it happens) without any damage done to your daily-use OS.

you mess up your octo-boot system and it won't boot up. you need answers. your only pc is on vacay. what are you gonna do? use your phone's tiny screen and poke questions or searches into google or stack one letter at a time? nah, mate. don't make it difficult when it don't need to be.

well damn lol.... this is deflating. I honestly would rather avoid VMs for now. trying to focus more on the meat and potatoes of Linux and other topics. I took a deep dive down virtualization and I got lost quickly and broke some stuff haha not really sure if now is the time for me to learn it. I've sorta put it on the backburner for now. So no easier, alternatives? You think manually doing this is not a good idea?

To be honest, VMs are probably the easiest way to do it, like many said already. You don't need to deep dive into virtualization to set up a few VMs and use them to learn about different distros. No need to think about how to partition your drive, mounting swap partition, disable hibernation... Want to try out another OS? Just create a new VM and you a ready to use it. You can simply create shared folders between host and guest and enable shared clipboard, if you want. Switching between the different systems is much easier than shutting down and rebooting another OS. You can even run them at the same time if you want and your hardware is good enough. And aside from the better convenience, the potential to break something is much less compared to tinkering around with a multi boot system, imo.

Do you have a recommended platform for virtualization that would fit my project?

I use VirtualBox, mostly because I started with that years ago amd had no reason to change. From what you described, it's capable of your project.

Just pick a distro. It sounds like you want to learn. I suggest arch. It does the least for you, is the least opinionated, but also has by far the best documentation (arch wiki is the de facto linux documentation).

The difference between the distros is otherwise simply what package management tool they use, and what packages are in their repository. Nothing else is different that's of any importance.

Do you have a recommended virtualization platform for such a project like this? Looks like that will be the route to take. I just want them to be actual workstations that keep all your settings and everything in place, not just like a sandbox to play around with. Not only do I want to learn other distros but I would like the option of actually using them for daily use as well

Perhaps consider watching this excellent video guide on dualbooting and multibooting by DorianDotSlash. It was what I used as a reference the first few times I engaged in dualbooting and/or multibooting.

Why do you want to do this? If it's just to try out different distributions, I would suggest using per-distro virtual machines or USB drives instead.

Well its more than just trying them out, in want to learn and actually use them too. Like as work stations, not just like a live image where you can browse around. Sometimes in get bored of my debian distro and I dont want to just delete it and reinstall another type, ya know? I'd rather have all three where I can actually use and work on them and they all stay in tact and keep all my settings and files and programs, like how a normal desktop installed distro does. More of a learning and adventure thing than anything. One day I could focus on manjaro and then the next work on fedora or if I get bored and just want to casually use my computer I could just hop on my more comfortable debian distro. Idk maybe it seems weird to others, its just how my brain works. I want to be proficient in the big three, plus opensuse eventually too.

Using a USB device might work well for this! You can do basically exactly what you want but your whole OS is on a USB drive. You'll get native performance for everything except disk read/write. If you use a fast device with a fast USB interface you might not even notice.

Do you have a recommended virtualization platform for such a project?

There are a few that are nice.

QEMU-based options work well. Boxes for GNOME uses this.

My backup option is always virtualbox with guest additions installed.

Do I basically just start off installing one distro on the full hard drive and then when I go to install the others, just choose the “run alongside” option? or would I have to manually partition things out?

If you install one distro on full hard drive you won't have room anymore for the rest, if you want multiple operating systems on your machine you need to partition manually with some planning ahead on how to allocate the space.

Any thing to worry about with conflicts between different types of distros

They don't interfere with each other, they don't even "see" each other once you booted into one, they only share the boot manager.

That being said, what you intend to do was the only way to learn many years ago when computers weren't as powerful as they are today (I did learn that way), but today ANY PC can manage virtual machines, they are much more practical and can save you a lot of time when you mess things up, because whatever you do is confined within the VM and doesn't affect your PC as a whole.

Install Virtualbox, have a look at how it works and use that to do all experiments you want, you can even learn to multiboot inside a single VM, without the risk of messing up your system.

Not really a solution to what you need, but you should consider distros other than manjaro, it does some shady stuff, has ddos'ed the AUR multiple times (even though the AUR is "unsupported") and let the security certificates for their site expire (their solution: to turn back your clock to update the system). You should try endeavour instead.

Very interesting and also such a shame. Manjaro seems to have most support and definitely looks and feel the greatest that I've tried, all well being newbish friendly

You should be able to share a significant fraction of your home directory.

Buy a fuc ton of flash drive and install every distro into that flash drive

But why though? I already have a ventoy usb drive for just exploring other distros, but I'm looking to actually learn and use other distros, just not one at a time :) It would ideal to have three workststions, one for each major distro I.e. arch, rhel, debian

You can use it normally if you have large and fast enough drive

Choose one:

  • XEN
  • virt-manager

Gahhh so virtualization is the best route huh? What about lxd/lxc, KVM, or other containers, possibly gnome boxes?

virt-manager uses QEMU/KVM by default. Some distros do work in containers too.

Xen turn your PC into a hypervisor. Where you can switch your OS without much hassle.

Making each OS boot on bare metal will make you cry if you want to be able to boot several different OSes.

That is very surprising to hear. In my mind, if I keep the distros minimal, it seems itd be a simple enough task on the surface. But I guess there's more that goes into it