Your Linux Setup: A Guide to Distro-hopping

enjoying Pop!_OS

Note: To get the most out of this article, you’ll require some idea about how hard drive partitioning works, as this is a critical part of how you can take advantage of Distro hopping. Even without it, you’ll get to understand how to prepare for a seamless Linux Installation.

The best part about Linux — apart from the fact that the kernel is open-source, has a lot of support on various forums, so many free and useful tools — is the number of different distros available, for the various types of audience. There’s kali, for the ones who are into security and hacking, there’s Linux mint and Arch Linux for the power-users, experienced with Linux, there’s Fedora, Ubuntu and Elementary OS for the general users and developers, and there’s the new age, Pop!_OS, Manjaro and the like, focused on making Linux friendly to the everyday consumer and a great alternative to macOS and Windows.

During college, I installed Ubuntu on maybe 4–6 different machines and the process became second nature to me, so let’s see how you can get started with Linux and dive right in.

Before you can enjoy Linux though, you can try out different distros to see how they work in the real world, what sort of apps available and what the overall experience is like. When discovering distros, you’ll switch between many Linux distros and this is called distro-hopping.

Most of the distros come with a “Live” version of the OS which can be tried out without actually installing it. This will give you a basic feel of the operating system but obviously, having a proper install is great to try out the minute details.

Getting Started

The first thing you’d need to try out any Linux Distro is a storage device of some kind, a USB stick works best as you can delete everything on it and use that and not accidentally delete any important data.

You’re going to have to create a Live Installation by downloading an .ISO file of the Distro and burning it into the pendrive. If you’re currently on Windows, Rufus works really well; if you’re on a mac, I see Etcher to be a good app, I personally haven’t used it though. If you’re already on Linux, most distros come with a ‘Startup Disk Creator’ app, but if not, give Etcher a try.

The Setup before the Setup

To get the best experience and allow you to switch between the many distros you set up, you’re going to have to set some things up, and all of this setup is done in the way you arrange your FileSystem.

Your Personal Data

You’ll require one partition to store your files which will be shared between all your Linux Distros. I have mounted it at /mnt/linux-common which gets bound to /home

❯ cat /etc/fstab      
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=<redacted> / ext4 noatime,errors=remount-ro 0 0
PARTUUID=<redacted> /boot/efi vfat umask=0077 0 0
UUID="<redacted>" /mnt/linux-common ext4 errors=remount-ro 0 1
/mnt/linux-common/home /home none defaults,bind 0 0

As you can see I have a linux-common partition, which has different folders which can be shared in different distros, but I’m binding the home folder to my current home.

Shell configuration

Sharing your shell configuration is pretty simple as they are in the home directory. I’m a software engineer so I also wanted to share my programming language installs across the distros. This is where [cli-config](<https://github.com/mrsauravsahu/cli-config>) comes in — cli-config helps you share all your shell configuration, your programming language installs like nodejs, python, dotnet and terraform and also all the shell goodies, check it out.

FileSystem Root

You’ll realise that because you’re switching between different distros, most of your programs (because they’re are installed into places like /usr/local/bin) won’t be shared. You can try and share your / folder, but I would recommend against this. It’s not a good idea for two operating systems to write to the same root.

This basically means you’ll have to create one partition per OS for the FileSystem root.

Order of Installation Matters

The order in which you install different types of Operating System matters. It is always advised to install Linux after you have installed Windows as Linux will install the GRUB bootloader which will discover all the other Operating Systems on your machine, including Windows. Installing Windows after Linux intalls the Windows Boot Manager, which can discover only Windows based Operating Systems, so you won’t be able to boot into Linux.

If you do install Windows after Linux, you can easily get back GRUB by creating a live USB (through something like Rufus) and then running the command sudo update-grub

The Setup

Now you can use these partitions while installing the distro. Almost all Linux Installs (I’ve used Ubuntu, Fedora, Elementary OS, Pop!_OS, Linux Mint) have a section which says “Something Else” in the way you want to install the OS. This will let you customize the FileSystem to your liking.

You’ll end up creating a home partition, a root partition, a boot partition and any other extra ones you need. And finally, install the new Linux Distro.

Post Setup fixes & compromises

Once you install the new distro, you’ll most likely end up with some extra issues depending on which Distro you install. Before logging in for the first time, I’d suggest opening a TTY (with Ctrl + Alt + F1) and then logging in.

File Permission Issues

Because different Linux Distros assign user IDs differently, you’ll end up with file permission issues. The new Distro will think the files in the home directory belong to someone else.

Fix for this is pretty simple — get to the TTY; and change the current user ID to match with the rest of the Distros. Pick a userID — usually Linux assigns userID starting at 1000, so I chose that.

When you’re on the first Linux Distro, you’ll have to set the file ownership to userID 1000, which is done through sudo chown -R 1000 /home — this will assign userID and groupID 1000 to all files recursively in the home directory. This will take a while.

If you’re not on the first distro, that means you need to change your current userID to 1000. For this, you’ll have to login as root. Now you can run

# usermod -U 1000 mrsauravsahu # <-- replace with your username

Apps not working

Some apps get really confused with config files from a different Distro. For example Microsoft Edge on Pop!_OS doesn’t understand profiles created on Ubuntu. Can’t really do much about that.

Encryption

A really important one, but you won’t be able to use disk encryption if you want to share your home directory as the encryption key will differ on each distro. But you do get this to work, let me know in the comments, would love to learn how to do this!

Conclusion

Linux is a collection of a vast number of tools, applications and distros and there is a good distro for everyone. Distro-hopping will allow to experience a chunk of that, keeping your files accessible on each one of these distros.

-S

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Saurav Sahu

Saurav Sahu

50 Followers

Opinions are my own. Full Stack Engineer. CEO of “it was just working 🤷‍♂️”