This guide is 2 parts. First, deciding if moving to Linux in general is right for you. Then deciding on which distro to start with. I hope this will help newcomers, reduce the amount of questions asked about adopting Linux and help improve the first impressions for new users on Linux.
This will be a long read. I hope people find it worth the investment in time to read it.
Linux For/Against list
- Will require troubleshooting (at some point)
- Unlikely to work "out-of-the-box". Configuration is a must.
- Requires a willingness to learn. Since its unfamiliar, you will need to learn the principal concepts of how Linux systems work
- Generally speaking, no support. There is no company to call and complain to as a customer. There are resources (like this forum) that can assist you in fixing your problems...but they are exactly that, your problems.
- Software compatibility (more on this below)
(Yes Challenging is in both. If you like challenges this is a good thing. If you want it to "just work" or expect someone else to make it work for you, this is a bad thing)
Deciding if Linux is right for you
If you value privacy, security, customization and potentially do not want to pay for your OS then you likely want to consider Linux. The benefits are less important to consider than the negatives. If you want to make the jump into Linux understand that its your choice, no one owes you anything, and should (when) you run into trouble it is on you to fix it.
Understand most hardware is developed and constructed with Windows in mind. Linux doesn't benefit from this paradigm. Linux developers cannot possibly test on every combination of hardware that exists.
With both of the above, understand you are the tech support. You will need to be willing to learn. Linux conceptually works very differently than Windows. In some cases this is hard to accept and leads to many growing pains. For example, in Windows the command prompt is voodoo and is generally avoided by most users. In contrast the terminal in Linux is essential even for the average user to have a basic understanding of. The Linux terminal is often the most efficient way to accomplish many goals.
Understand, that everyone using Linux has accepted the above for themselves. They have been where you are and managed to help themselves get through it by putting in effort, learning and knowing how/when to ask for help.
This means, do your due diligence before asking others for help. Use the proper resources in the proper order to answer your questions and resolve your problems. Generally, I recommend the following order:
- Official wiki/documentation for the distro (which can include things like man pages)
- Unofficial wikis or wikis/documentation for other distros
- Internet searches
- Official forums/community (searching, not asking)
- Unofficial forums/community (searching, not asking)
If the above leaves you without a solution, then ask in the proper places like distro forums for help and explain clearly what you need help with and what you have already tried.
Regardless of if you already have hardware or are planning on buying hardware you will want to make sure your hardware is well supported in Linux. Again, recall from earlier that most hardware is developed with Windows in mind. Here are some of the key components to check for:
- Wifi - Ensure your wifi chipset is supported in Linux. Certain brands like Intel generally have very good support for Linux while others (looking at you Broadcom) have relatively poor support.
- Input Devices - Less importantly keyboard/mouse, more so things like touchscreens, touchpads, pens, etc. Similar to wifi, check that the brand and specific model are supported in Linux.
- GPU - Regardless of if its iGPU, dedicated or a combination you want to make sure it all works. The more complex the setup (like when an iGPU and GPU are expected to switch back and forth) the harder it will be to get working. As always check that the combination is well supported in Linux and understand how it gets setup.
- Audio - Check the chipset and ensure its supported. For the last few years Realtek has been the dominate standard audio chipset maker for integrated audio on motherboards and in laptops. Dedicated cards are less likely to have support.
What it basically comes down to is do the research, ensure each component is supported to your satisfaction. If you already own the hardware, testing will help confirm things. If you are purchasing new hardware with the expectation of using Linux (and it doesn't explicitly come with Linux support from the OEM) ensure that you research chipsets and the like and buy from a trusted vendor that will allow returns/exchanges should it not work as expected.
Many people are initially concerned with software going from their current OS to Linux. While there are some very prevalent pieces of software that may weigh on this choice like Microsoft Office, Adobe Products, etc. there are often multiple choices to alleviate this issue.
Something that has a big effect on minimizing this issue are that more and more programs are being offered with native Linux versions. Additionally as services move to being web based it ends up rendering the OS a moot point as they run in the browser anyway.
When the above is not the case however, the majority of these concerns can be addressed.
- Alternative software - In many cases there is an alternative piece of software that does the same thing you did in x program before. In many cases they are as good if not better than what you had. In some cases an alternative piece of software may be compatible with both/multiple OS's.
- Running Windows Software on Linux - There are a few projects that aim at running Windows software in Linux. Wine, Play on Linux, Lutris and many others. You may consider checking compatibility with these tools and ease of setup in your choice.
- Running a Windows VM or Dual booting - Either choice gives you the ability to run Windows stuff in Windows when you need it. I personally prefer doing this in a VM instead of dual boot. Primarily, I feel dual booting leads many beginners to use Windows as a crutch preventing them from fully embracing and immersing themselves in Linux.
Gaming is another consideration but is really an entirely other topic and too involved to detail here. Some options above can allow this on Linux as well as Steam. I personally have a Windows machine for gaming only and a Linux machine for my day-to-day. My hope is to some day in the near future eliminate the Windows machine and instead have 2 Linux based machines, 1 being a desktop for gaming and the other a (portable) laptop for general use.
In any case, dont let the software aspect of it scare you too much. Unless you have a professional need to use specific software there are choices that with effort and a willingness to learn may end up matching or exceeding your current workflow. Also, remember you have options to keep using Windows software without needing to primarily use their OS for everything.
I'm in, but what Distro do I pick?
So it may be unexpected that I dont simply suggest Manjaro. As a matter of fact I wont recommend any single distro in this post. What I will do is provide you the means to understand your choices and make informed decisions.
Linux distros come in many shapes and sizes, with many different purposes in mind. The biggest problem for people moving to Linux isnt software compatibility, software choice, learning Linux, etc...Its choice. You have a mind boggling amount of choices. Its like going from a sandwich shop that has a single sandwich on the menu to a deli that can make literally any combination of ingredients into a sandwich.
The first step to choosing is to setup the means to test them hands on. This can basically be done in 1 of 3 major ways:
- Run a LiveCD of the distro (assuming it has one) on any machine you have access to. This means you load the OS into memory and do not touch the hard drive. The original OS is still there and will be unchanged. You can basically use the distro as if you have it installed and verify that you like it and that it works without error.
- Install the distro in a VM. You again do this without changing your currently install OS. This requires a bit more effort but also lets you see what the installer is like and more ability to actually use the OS. There are plenty of free choices for software to do this including Virt-Manager/KVM (Linux Host), VMWare Player (Windows/Linux), VirtualBox (Windows/Linux..maybe even OSX) and more. These are well documented and easy to setup in a basic config with minimal effort.
- Install on unused hardware. This is the most complete experience, but the downside is you tie up hardware for testing, you destroy whatever was installed prior and you may face challenges specific to that machines hardware. On the flip side you see the install process, the boot process and can tinker.
However you plan to do your research/testing, there is basically 2 steps to deciding on a distro.
- Decide if a specific distro or family of distros provide specific benefits to you in general. For example if you will be expected to use RHEL at work, then something in that family of distros is likely your best place to start (RHEL/CentOS/Fedora). Its ok if you dont have any specific need for one over another yet.
- Decide what Desktop Environment (DE) you like most. This can be narrowed down by researching and by testing yourself. Once you decide on what you feel you will like most, this will narrow down the distros that not only offer an option for it but best support/implement it.
Lets expand on the above. Like many people you may find you dont have a specific need yet that would make you lean towards a distro or family yet. If not start with #2 above first. Research and try out DE's until you find one that appeals to you. Then narrow down and try only the distros that seem to best support it.
Once you know the DE you want to start with and have a more narrow list of choices, start to decide what principal concepts or fundamental features each offers and whats important to you. This could be something like the latest versions of software, increased stability, security/privacy, specific features (like SecureBoot support), rolling releases, etc.
The above will require some research, especially figuring out the features that are important to you and understanding the choices.
Test, Prepare, Plan
Once you have narrowed down the choice to what you feel you want to use, ensure you have tested it out to your satisfaction.
Then prepare to do the install. Have reliable install directions available and already have read over it. Understand your BIOS/UEFI options. Decide on the partitions, installation options, and setup configuration. Have another machine/device available in case something goes wrong and you need to research or ask questions. Have media ready like a USB stick to transfer files, packages, etc. Make the boot media.
Prior to overwriting an existing OS/data, backup, backup, backup! Ensure the backed up content is in tack and not corrupt prior to wiping the drive.
Next, it would be advisable to install any firmware updates. BIOS/UEFI is the most obvious, but the HDD/SSD, Wifi/NIC, GPU, Intel ME, CD/DVD/BD drives, etc. could all potentially have firmware updates. Check with the manufacturer of your machine (or the manufacturer of the component if self built) and only download the official firmware from a trusted source.
TIP: I keep a Windows-to-Go USB stick handy to do firmware updates on my Linux machines. This is the Windows equivalent to a Linux LiveCD. It boots to Windows which is run from memory leaving your Linux install intact. Most "modern" machines allow BIOS/UEFI updates from the BIOS itself but often firmware for components is only possible via a Windows utility, having W2Go ready makes this quick and painless without risking your Linux install (Still, use good practice and backup prior to any FW update).
Once you have the resources ready, FW updated and have planned your setup, go for it and good luck.
The process outlined in this guide is not a 1 time process. It is not only expected but generally encouraged that you try different DE's, distros, configs, etc. This is often referred to as "Distro Hoping". Not only do things change over time, but your tastes and needs may as well. You may discover features that you want/need that your previously selected distro, DE or software doesnt support. A distro or DE may evolve into something thats a better match for you later.
I hope this helps those considering a change to Linux make choices that lead to them having positive experiences and expectations.