Linux Installation

This Linux installation guide may seem long, but it’s not very difficult. It covers as many common cases as possible. It also aims to be informative.

This guide will be focusing on Ubuntu and its derivatives. Some things may be a little bit different if you’re using another distribution of Linux such as Debian/SteamOS/Puppy/Fedora/RHEL, however, many concepts will still apply.              

Step 0: Pre-installation

It is worth noting that graphics performance when using AMD graphics cards under Linux is often not up to par with Windows and sometimes can be simply horrible. If you have an AMD graphics card, research compatibility before choosing an OS that may not work with it; you may wish to install Windows instead. If you’re looking to buy a graphics card for usage with Linux, it is recommended that you purchase an Nvidia graphics card, otherwise consider built-in Intel HD graphics.

Before installing Linux, be sure to disable Secure Boot and Fast Boot in BIOS, if the options exist. Some distros can work with Secure Boot enabled, but it’s still recommended to disable it. You should always back up your files or your entire system, as it is possible to screw up during the installation.

If you have Windows installed and wish to dual-boot, do the following: go to Power Options -> Choose what the power buttons do -> Change settings that are currently unavailable -> Disable “Fast startup (recommended)” and Hibernation, update Windows, restart, shrink Windows from within Windows using Disk Management to create “Unallocated Space” (preferably, at least 60 GB) for Linux, update Windows, restart, update Windows, restart, and update Windows again.

Step 1: Picking A Distro

Unlike Windows or macOS, there are many flavors of Linux called “distros”.

A Linux distribution (often abbreviated as distro) is an operating system made from a software collection, which is based upon the Linux kernel and, often, a package management system. … The software is usually adapted to the distribution and then packaged into software packages by the distribution’s maintainers.

There are many reasons you may want to pick one distro over another. For people new to Linux or people who want a system that works well out of the box with many programs, Ubuntu or one of it’s many derivatives such as Xubuntu, Lubuntu, Kubuntu, anything else ending in buntu, and Mint are great choices. Each of these has a different desktop environment, which changes the way it looks.

If you are unsure, you should probably use Xubuntu.
  • Ubuntu comes with Unity, which looks similar to Mac and is resource-intensive.
  • Xubuntu comes with XFCE, it looks similar to Windows, is lighter, and is very customizable.
  • Lubuntu uses LXDE and is even lighter and is great for very old computers.
  • Mint can use either the MATE, XFCE, or Cinnamon desktop environments, but people usually use Mint with Cinnamon.
  • Debian is a very stable distro that can run some Ubuntu software.
  • RHEL and Fedora are versions designed for enterprise workstations and have a different set of software packages that work between them compared to Ubuntu/Mint/Debian. RHEL has paid support; Fedora is basically the free version of RHEL.
  • If you are experienced and want to customize every single component of your system on your own, Arch Linux (and its derivatives Antergos and Manjaro), Gentoo, and Linux From Scratch are great options.
  • Other distributions such as SteamOS and Puppy fulfill a specific purpose.
    • SteamOS is a version designed for gaming in living rooms.
    • Puppy is a version designed for always being run from a USB flash drive, good for portability, old computers, or computers with no/broken internal storage.

Below are examples of what each distro looks like after install:

Ubuntu 17.04 with Unity
Ubuntu 17.04 with Unity
Linux Mint 18.1 with Cinnamon
Debian 8 with GNOME
Lubuntu 15.04 with LXDE
Lubuntu 15.04 with LXDE
Xubuntu 16.04 with XFCE
Xubuntu 16.04 with XFCE
Fedora 25 with GNOME
SteamOS, always in Big Picture mode
Puppy Linux (XenialPup)
Puppy Linux, XenialPup edition
Arch Linux with i3

This guide will be focusing on Ubuntu and its derivatives. Some things may be a little bit different if you’re using another distribution such as Debian/SteamOS/Puppy/Fedora/RHEL, however, many concepts will still apply.

Additional tips:

  1. Use a 64-bit version of the distro you choose whenever possible.
    1. 32-bit systems only support a maximum of just under 4 GB of RAM.
    2. Many pieces of software, such as Google Chrome, only have a 64-bit version.
    3. Most computers made in 2007 or later are 64-bit systems.
    4. 64-bit operating systems can still run 32-bit software.
    5. If your computer is 32-bit, please use a lightweight distro such as Lubuntu.
  2. Linux does not need to be installed on your storage drive. A “live session” can run directly off a flash drive with the installation files on it, which is good for trying it out before you decide to install it.
  3. Flash drives with Linux installed can be made persistent, so that changes can be saved.

Step 2: Creating Installation Media

After you’ve downloaded the distro of your choice, you should have an ISO file. You will either need to burn this image to a DVD or you will need to put it on an 8+ GB flash drive. Some of these work with smaller drives. You can use the included software in your operating system to burn it to a DVD. Otherwise, you can put it on a flash drive. If you are creating the installer from Windows, you’ll need to download a tool called Rufus. To put it on a flash drive if you are creating the installer from Mac or Linux, you can use the built-in dd tool.

Windows:

  1. Download and run Rufus.
  2. Near the bottom, select “ISO Image” and then browse for the ISO image.
  3. Select which flash drive you want to put the installer on.
  4. Select the target system type, GPT/MBR/UEFI/BIOS/etc. Don’t know? Try here.
  5. Click “Start” and wait for it to finish.

macOS:

  1. Open the Terminal.
  2. First, without the flash drive inserted, run diskutil list in the Terminal.
  3. Plug in the flash drive and run the command again. You can do this to identify the drive number.
  4. Unmount the flash drive you have identified. diskutil unmountdisk /dev/disk[number], without the square brackets.
  5. Convert the ISO image. hdiutil convert /path/to/ubuntu.iso -format UDRW -o /path/to/ubuntu.img
  6. Write the image to the flash drive. dd if=/path/to/ubuntu.img of=/dev/rdisk[number]. Using /dev/rdisk instead of /dev/disk usually results in faster media creation.
  7. Wait until the next prompt comes up. dd does not display progress, you can’t tell how far along it is until it is finished.
  8. After dd is complete(you can press Ctrl+T to check the progress), eject the created installation media. diskutil eject /dev/disk[number].

Linux:

  1. Open the Terminal.
  2. Use lsblk to get a list of devices. Look for the /dev/sd[letter] of your device, with no numbers.
  3. Open a terminal emulator to the directory where the ISO is stored.
  4. Use dd if=/path/to/ubuntu.iso of=/dev/sd[letter] to create a bootable drive from the ISO.
  5. Wait until the next prompt comes up. dd does not display progress, you can’t tell how far along it is until it is finished.

Step 3: The Actual Installation

Reboot the computer and select the flash drive or DVD. If you disabled Secure Boot and Fast Boot in BIOS (if applicable), this should be easy.

All the Ubuntu-based distros listed above use the Ubiquity installer, which makes things easy. However, the other installers can be a bit tricky. We’re only going to cover the Ubiquity installer in this guide.

When the image boots, select “Try”. You can proceed with the installation from “Try”, too, but the “Try” just loads up the live session all the way, which allows you to run programs other than the installer just in case we need to do other things. From the “Try” session, you should connect to WiFi if applicable, as WiFi is one of the most likely things to have problems working (it still works >95% of the time out of the box) so it’s good to check if it works from here.

If you have a single drive in your system and want the easy option, then you can select one of the easy installation options at the top, such as “Install alongside [existing OS here]” or “Erase disk and install”. However, if you have multiple disks or want to have more control over configuring your partitions, click “Something Else” (fairly advanced).

Easy Installation Options

(for single disks and simple configurations)

Ensure you can read your disk fine, if it have data on it. You can mount your disk by clicking the desktop icon.

Unmount any mounted disks, then please skip to the “Once you’ve prepared your disks” section.

“Something Else”

(fairly advanced, for multi-disk systems or custom partition setups)

  1. First, find out whether your system is UEFI or Legacy BIOS. Don’t know? Try here.
  2. Open GParted, and perform the next for all empty disks.
  3. Select “Device” -> “Create Partition Table…”
    1. UEFI systems
      1. Set the partition table type to gpt (typically capitalized: “GPT”).
      2. Before creating any partitions, note that on GPT disks, you should ALWAYS use Primary rather than Logical or Extended partitions.
      3. Create an EFI System Partition, about 1 GB, create as “Primary Partition”, file system fat32, with a name of “EFI System Partition”.
      4. Always after making changes to partitions, you have to click the green check mark to apply the changes.
      5. Right-click and select “Manage Flags”, and enable the boot flag for your EFI system partition (the esp flag should auto-enable when you do this, if not, manually enable that too).
    2. Legacy BIOS systems
      1. Set the partition table type to msdos (also known as MBR).
      2. Unlike with UEFI, no special partitions need to be created in GParted. You’re done.
  4. If you have any other empty disks, give them the correct type of partition tables as well, however, you don’t need EFI System Partitions for non-bootable drives.
  5. Close GParted if nothing else needs to be done.

Once you’ve prepared your disks

  1. Open the installer, select your language, and then check both of the two boxes.
  2. You will then be presented with a choice of where you want the system to be installed.
  3. On your primary drive, select the “free space” and press + to create a partition.
  4. Make it approximately 40 GB, type as “Primary”, use as “ext4 journaling file system”, and mount point as /. This is where the OS and programs will be located.
  5. Create another partition which fills the rest of the space, type as “Primary”, use as “ext4 journaling file system”, and mount point as /home. This is where your files are stored, such as what you put on your desktop and downloads folders, your configuration files, and everything else in your home folder (also known as ~ in Terminal-speak).
  6. If you have multiple drives, you should also create partition(s) on them if they are empty (same settings, “Primary”, use as “ext4 journaling file system”, and perhaps mount it as /storage).
  7. Before clicking “Install Now”, ensure that the “Device for boot loader installation” is set to your primary drive (/dev/sd[letter] with NO NUMBER).

The rest of the installation should be mostly self-explanatory. You have to enter the username and password that you want, choose your computer’s name, set your timezone, etc.

Once the installation has finished, you will be asked to reboot. Do it, and log in.

If you are dual-booting, you should also make note of GRUB, the tool that allows you to select which OS you want when your computer starts up.

Step 4: Post-Installation Configuration

  1. Open the “Additional Drivers” menu, if it exists on your chosen distro.
    1. In most cases, you’ll see your GPU and “Unknown: Unknown”.
    2. Select the latest drivers for each and then click “Apply Changes”. You will have to enter your password.
    3. If you do not seem to have this menu, you can type sudo apt install nvidia-375 to install the latest Nvidia graphics card drivers if you have an Nvidia card.
    4. If your card is very old, you may wish to get nvidia-340 or nvidia-304 instead.
  2. Perform all updates.
    1. Open the “Software Updater” menu, if it exists on your chosen distro, and update your system.
    2. Alternatively, you can use the update script mentioned below, or you can manually type sudo apt update and then sudo apt upgrade. You will have to enter your password to update the system.

It is recommended that you download aaronfranke’s Linux-tools, a small collection of useful terminal scripts.

  1. Select “Clone or Download” and then “Download ZIP”. All of these are ran with the Terminal by the way, and while you do not have to use the Terminal to use Linux, it is worth learning because it is a very useful tool.
  2. Once you’ve downloaded the ZIP, extract it into your home folder. Delete the “arch-only” folder, and move the contents of the “ubuntu-only” and “all-distros” folders to your home folder as well.
  3. Open a Terminal and use chmod +x * to mark the scripts as executable.
  4. Then, you can run:
    1. sudo ~/programs-to-install.sh to install some packages that aaronfranke recommends.
    2. sudo ~/copy-root-to-root.sh to copy a few other misc tweaks to your system.
  5. All of these require your password, because sudo essentially means “run this as admin”.
  6. If you have a 2nd hard drive and which to store your Steam games there, ensure that the drive is mounted and use chown -R $(whoami) /storage to ensure that it is owned by you. In Steam, you can add a library folder by going to Steam -> Settings -> Downloads -> Steam Library Folders -> Add Library Folder, then select a location, click “New Folder”, and then set it as the default folder.
  7. If you wish to use Wine / PoL, ensure that Wine and PlayOnLinux are installed, and set the value in /etc/sysctl.d/10-ptrace.conf to 0 and reboot. Then, you can use PlayOnLinux normally. This is done automatically if you ran copy-root-to-root.sh.

Step 5: Things To Keep In Mind

On Linux, most software is installed via the repositories. In most cases you will not be downloading new software from a web browser. Google Chrome, Dropbox, Discord, and TeamViewer are notable exceptions in which you do have to use a web browser to download them. When you do download software, you should look for a .deb package whenever possible

Since software is managed by the package manager, you can easily keep your system updated. Regularly either use the built-in software updater tool or run sudo ~/update.sh (from the Linux-tools script collection above) to keep your system updated.

Use the 64-bit versions of software whenever possible. It saves you disk space due to not having to have 32-bit versions of libraries, and 64-bit packages will generally work better.

If you wish to try out another desktop environment, you can use:

  1. sudo apt install
    1. Unity: ubuntu-desktop
    2. XFCE: xubuntu-desktop
    3. KDE: kubuntu-desktop
    4. LXDE: lubuntu-desktop
    5. Mate: mate-desktop

Etc, to install another DE. You choose which one you want to use on the login screen.

Linux is a very secure OS, and it will actually refuse to boot if it’s not secure. Therefore, while it may seem like a good idea at first to set the permissions of everything on the system to lenient (chmod 777) and/or make all files on the system owned by you (chown) to avoid “Permission Denied” errors, this a terrible idea. Do NOT do either of these things or you will have to re-install your OS.

Not all software is compatible with Linux. If you need to use software, first search the repos to see if it exists there, else look online for it, and if there’s no Linux version, you’ll have to do one of 3 things:

  1. Find an alternative application.
  2. Dual-boot with Windows.
  3. Use Wine.

Wine usually only works with older applications. Many newer APIs, such as DirectX 11 and above, do not work on Wine. There are some exceptions to newer applications not working, such as DOOM 2016 running in the development version of Wine, but generally speaking, if it works on / was made for Windows XP, it will work in Wine.

Wine is often buggy. While Wine is a simply amazing piece of software, allowing one OS’s software to run on a vastly different one is extremely hard to do. Wine should only be used when there is no native software, the alternatives don’t exist or are unacceptable, and when dual-booting is too much of a hassle.

Was this article helpful?