Welcome to Linux InstallFest!

Tux

Welcome to our guide on getting Linux up and running!

This is a step-by-step guide, with detailed explanations on how to install Linux, start with the README section, then check out the Install Methods page to find which way of installing Linux suits you best, make sure you carry out the pre-install checks and away you go!

If you're new to Linux and this is your first time installing it, we would recommend you go for an Ubuntu dual boot setup. Ubuntu is more stable and a dual boot will help you learn the Linux environment, whilst keeping your Windows install intact.

This isn't meant to be an entirely standalone guide, however, it should be a pretty good collection of our understanding of how to install Linux. We use it for the yearly InstallFest event, but it's available all year-round 🙂

You will need to have a phone/tablet to read the guide.

Don't forget to backup any important data you don't want to lose!

For technical questions about Linux and support after install, join the #tech-support channel in the CSS Discord.

Enjoy and welcome to the world of Linux! 🥳

README before anything else!

Warning!
If you are installing Linux as a replacement OS or dualboot, please make sure you have a backup of any data you do not want to lose. We are providing the instructions as they are, and we are not responsible for any data loss that might occur. By using them you agree you are assuming your own risk.

If you are installing it as a replacement OS or dualboot, you will need:

  • a USB, of at least 4 GB
  • a drive imager. The Raspberry Pi foundation keeps an up-to-date list of imagers for Windows, however, we'd recommend Etcher.
  • image of the OS you want to install, either:

If you are doing a VM install, you will only need the image of the OS you want to install, either:

Install methods

If you're here its probably because you'd like to begin working with and using Linux <3.

But there are a few different ways to install Linux depending on what you want to end up with.

Here we'll outline the different ways you can install Linux, and which might suit you best.

Pure Linux

This is where you fully replace your current OS with Linux. This means bye-bye to Windows and only Linux.

Dualboot

Probably the most popular option, this is where you get to have multiple operating systems on your device at once. You'll do this by partitioning your hard drive into a Windows section and a Linux section, then each time you turn on your device you get to choose which to use. This means you can have the best of both worlds.

Virtual Machine (VM)

A Virtual Machine is a simulation of a computer, on a computer. It's a great way of playing around with an OS you want to try out but you're not sure about, or for performing experiments on.

Operating systems definitely run slower and on virtual machines than on the bare metal, but if you don't want to switch your main operating system, but still be able to have a linux machine to do experiments / projects on, this might be a good option.

Windows Subsystem for Linux (WSL)

This is an interesting one. Windows recently(ish) added a "Linux Subsystem" to Windows effectively adding the ability for you to run Linuxy stuff on a Windows kernel. It's without the speed drawbacks of a VM but also without the advantages of having a full linux OS/kernel/filesystem.

Distributions

Linux comes in different flavours or "Distributions" (aka distros). While it's the same kernel (core of an operating system) they can each work differently on top e.g how software gets installed, how networking works, how it looks. There are endless distros out there if you want, but to make things simpler we've chosen to write this guide for 2. These are:

Ubuntu

Ubuntu

Maybe the most popular distribution out there, Ubuntu is a really great distro. It looks great and is easy to use, it's kept up to date and has great support for packages and software. Just because it's "good for beginners" doesn't mean it's any less advanced / capable than any other distro, remember they're all built on the same underlying kernel, it's just how things get done on top of that that changes.

Manjaro

Manjaro

Manjaro is an open source distro built around Arch Linux: a distribution that focuses on a DIY attitude meaning you get to fine tune every bit of how it works. However Manjaro is basically "Arch that works out of the box", so is completely beginner friendly. Read more about it here: manjaro.org

Before proceeding with installation

IF YOU HAVE BITLOCKER ENABLED ON YOUR WINDOWS, PLEASE DISABLE IT BEFORE PROCEEDING ANY FURTHER. If you fail to disable it, your Windows may fail to boot after disabling Secure Boot. If this happens, your only chance is if you have a recovery key in your Microsoft account. Just disable it while you are doing the installation, you can enable it afterwards!

Also, please don't forget to make a backup of any important data!

Making space for the Linux partition

To dualboot you need to create a new area for Linux to live on. This is called a Partition, and it's a virtual subdivision of your physical hard drive. So when dualbooting the first thing to do is to, from Windows, partition your hard drive. This means shrinking the amount of your drive that Windows owns so we can give some to Linux, so we're basically going to be cutting the drive into parts.

From Windows, open the Disk Management utility. Select your Windows partition (usually C:\), right click and select Shrink.

Windows partitions

Enter the amount of space to shrink. This is how much you want to allocate for your Linux partition. Remember, Ubuntu recommends at least 25GB and Manjaro 30GB. We'd recomend allocating as much space as you feel comfortable with if you intend to be using Linux a lot. Make sure you don't leave Windows with less space than it says it's using: otherwise you'll be deleting data.

Windows partitions

You can use this tool to convert GB to MB values.

Once you click Shrink, the Windows partition will be downsized and you should see an Unallocated chunck in the Disk management utility.

Windows partitions

Note: You may only be able to shrink the Windows partition to half its size, even if you have more than half the partition free. This is because Windows places some files bang in the middle of its partition. Disable Hybernation by running a command line as Administrator and typing:

powercfg /h off

Disable paging for the drive C by going to Control Panel -> System and Security -> System. Select Advanced System Settings from the left side menu.

Control panel advanced

Click the Settings button of the Performance category, and switch to the Advanced tab. Click the change button under Virtual Memory. Uncheck Automatically manage paging files and select no paging file for the drive. Click Okay and reboot when prompted.

Remove paging

When you're back to Windows, you can now retry shrinking the partition. It should work just fine.

What is the BIOS and why do we care?

The BIOS is the part of your computer responsible for managing hardware and booting other operating systems.

BIOS diagram

The BIOS is where we configure some of the lowest level hardware to make sure it's compatible before we mess around with our operating systems, so we're going to need to interact with it when preparing to dualboot.

Since the vast majority of laptops come with windows preinstalled, their BIOSs are often preconfigured with settings developed explicitly for windows. Therefore when dualbooting some if these settings can be incompatible with installing linux and we need to tweak them.

How to access the BIOS

The BIOS is only really accessible when you boot your PC so you can't adjust its settings while running an OS. You're going to have to restart your device. There are 2 ways to access the BIOS: you can trigger it from Windows OR restart your computer and enter manually.

The way its entered manually is a bit manufacturer specific in terms of which key to press whereas the Windows method is longer but more standardised.

From Windows:

1: Open Settings
2: Go to Update & Security
3: Open the Recovery tab
4: Under "Advanced Settings" restart your device using the Restart Now button
5: When your device restarts and you're presented with a menu select Troubleshoot
6: Select Advanced Options
7: Select UEFI Firmware settings
8: Click Restart

Your device will now restart and take you straight to the BIOS.

Manually:

Restart your device. Before you enter windows you will see an icon of your laptop manyufacturer e.g Lenovo, Dell etc.

At this screen press the f1 key and you should be brought to the BIOS.

If not don't worry it's just that the manufacturer has changed the button to press.

There might also be a message, for exmaple Lenovo shows: "To interrupt normal startup press Enter". Press the key it says and you should be brought to a menu with several options, one of which will either say "adjust BIOS settings" or something similar, use the arrow keys to select this and press Enter.

How to do stuff in the BIOS

The BIOS is very low level, hence why it looks simple and works simply. You can move around the menu with the arrow keys, maybe the Tab key and selecting submenus using the Enter key, and perhaps readjusting the ordering using the +/- keys.

Hopefully it will have a handy guide of which keys do what, but if in doubt google how to navigate your manufacturers BIOS.

It's a bit difficult to give a general guide since the BIOS is specific to every manufacturers motherboard but it will have all the settings you need somewhere and hopefully organised fairly logically.

In general they have several tabs, each with a different category of settings, you use the arrow keys to move selection, the enter key to change things. There will probably be a BOOT/Startup tab that's important to us.

It's important that you make sure to SAVE the settings before leaving the BIOS, make sure when you exit you select whichever option is "Save and Exit" not just "Exit". Otherwise, guess what, all the changes you made won't stick.

Here are a few common things you should configure in the BIOS before going ahead:

Boot order

Boot order is very important to actually be able to boot to the installation media, like a USB!

By default, the system will try and boot off the first hard drive/solid state drive available, however, modern computers can boot off of many different media types, including network, cd drives, usb drives, etc.

In your BIOS, locate a section for "Boot Order", and rearrange them to place USB at the very top, before any other method. It's possible that your BIOS doesn't have this setting - which is very sad. If it doesn't, then when you try to boot your installation media, you need to interrupt the boot process and manually select the USB drive.

Secure boot

We're going to need to disable this, but don't worry it won't really make your computer insecure!

Basically the idea of secure boot is that when booting into an operating system the BIOS checks against a cryptographic signature. The issue here is that whilst these signatures will work for windows, it won't for all linux versions. It might work for some (Ubuntu 20), but having it will also prevent you running virtual machines (which you'll really want). So to install linux we want to disable it.

What Is Secure Boot? How to Enable and Disable It in Windows?

You'll find this under the BOOT tab. Switch it to Disabled.

Fast Boot

Fast Boot is a Windows-only technology that enables faster booting by instead of "properly" shutting down, enters a state similar to hibernation which allows faster loading of the Windows kernel and drivers. Disabling Fast Boot will make your Windows boot times slightly slower, but probably only by a few seconds at worst.

However, it's completely incompatible with Linux, so you'll want to disable it in your BIOS. Before doing this, disable fast startup in Windows, and perform a full shutdown before rebooting into the BIOS.

Fast Startup

Then, you can set Fast Boot to Disabled, usually found under the BOOT tab.

Intel RST

You may or may not need to do this step. Please read the following paragraphs to understand what RST is and to learn how to identify whether you will need it.

Intel Rapid Storage Technology can generally speed up your system and make it feel more responsive, however, because of a lack of drivers on Linux, it's quite common that your installer will not detect your hard drive if you have it enabled.

You can disable it, usually, by modifying your hard drive to use plain AHCI instead of Intel Optane in the "Devices" section of the BIOS. However, before you do this, be aware that you may take a small performance impact and notice your hard drive speeds a bit slower than before. Also, note that if you're planning on keeping Windows around, you'll need to do some prep before making the change.

The Ubuntu installer will prompt you if changes to Intel RST are required. It's easy to determine, even for Manjaro, as you won't see your disk in the installer list, when you reach the partitioning step in the guide. If this happens, come back here and follow the guide below.

To avoid the chance of something going wrong, follow the guide on the Ubuntu discourse here, taking special note of the required instructions on the Windows side of things.

Virtual Machine Pre-install

If you're looking to install Linux in a Virtual Machine, you need to make sure of two things:

  • Virtualisation is enabled in BIOS
  • Installing VirtualBox

You will need:

This guide will tell you how!

Enabling virtualisation in BIOS

Intel CPU users:

Reboot your computer and go into your BIOS/UEFI. You usually need to press F1, but check for your specific key. Google is your friend :-) Your BIOS/UEFI might look different than the images below, but they all have these functions!

Once you are in the BIOS/UEFI navigate to the Security tab. You probably don't have mouse, so just use the arrow keys.

./images/bios-security.png

Once in the Security Settings, navigate to the Virtualisation settings and press Enter. Enable both Intel Virtualisation Technology and Intel VT-d Feature.

./images/virt-enabled.png

Then press F10 to save and exit. Confirm you want to save the settings.

./images/bios-confirm.png

Done! You're ready to get started on your VM journey!

AMD cpu users:

Reboot your computer and go into your BIOS/UEFI. The key you will need to press varies, but it should be F1, F2 or DEL. Check for your specific key (you can google it if you know your motherboard manufacturer, or look for a prompt on screen when booting).

Your BIOS/UEFI might look different than the images below, depending on your motherboard, but you will need to find the configuration items related to the CPU/processor. They might be under Processor, Chipset, Advanced CPU configuration or Northbridge.

./images/amd_bios_overview.png

Here, you will need to locate the virtualisation option. It might be labelled SVM mode, AMD-V, AMD IOMMU, VT-x or Vanderpool. Make sure that it is set to enabled.

./images/amd_bios_svm.png

Save changes and exit (press F10).

Installing VirtualBox

Download VirtualBox from the above link and run it. Make sure all the features are enabled.

./images/vbox-features.PNG

Proceed by clicking Next and confirm installation when notified network might disconnect while VirtualBox is installing.

You will be prompted to install drivers for it, proceed their installation.

./images/vbox-drivers.PNG

Congrats! You can now start VirtualBox!

Installing VirtualBox Extension Pack

VirtualBox Extension Pack will add some extra functionality to the VM, which you might find convenient, most important being support for virtual USB 2.0/3.0 controllers.

Open VirtualBox, then go to File -> Preferences -> Extensions. Click the + button (on the right hand side of the window) to add the extension. Navigate to where the Extension Pack was saved and select it.

You will be prompted that you are about to install an extension pack. Confirm by pressing Install, then Agree with the T&C.

Upon successful addition you should see the pack in the list:

./images/vbox-extpack.PNG

That's it. Now let's install your chose Linux distribution!

Head to either:

Install instructions

In the following sections you will find info on how to install Linux. You've chosen your install method, now let's talk a bit about Linux distributions. You should choose one, but if this is your first encounter with Linux, we recommend you go for Ubuntu.

Linux comes in different flavours or "Distributions" (aka distros). While it's the same kernel (core of an operating system) they can each work differently on top e.g how software gets installed, how networking works, how it looks. There are endless distros out there if you want, but to make things simpler we've chosen to write this guide for 2. These are:

Ubuntu

Ubuntu

Maybe the most popular distribution out there, Ubuntu is a really great distro. It looks great and is easy to use, it's kept up to date and has great support for packages and software. Just because it's "good for beginners" doesn't mean it's any less advanced / capable than any other distro, remember they're all built on the same underlying kernel, it's just how things get done on top of that that changes.

Manjaro

Manjaro

Manjaro is an open source distro built around Arch Linux: a distribution that focuses on a DIY attitude meaning you get to fine tune every bit of how it works. However Manjaro is basically "Arch that works out of the box", so is completely beginner friendly. Read more about it here: manjaro.org

Ubuntu install

Ubuntu is one of the go-to first installs for newcomers to Linux. It's easy to setup, easy to maintain, and has excellent support for third-party programs, as well as some of the best driver setup and support out there.

The following section will give you the instructions on how to install Ubuntu on your computer.

Please choose the appropriate method of installation.

Warning! If you are installing it as a replacement OS or dualboot, please make sure you have a backup of any data you do not want to lose. We are providing the instructions as they are, and we are not responsible for any data loss that might occur. Use at your own risk.

Choose from:

  • Just Ubuntu -- replace your current OS with Ubuntu; this will completely erase data on your computer; backup anything you need.
  • Dualboot -- install Ubuntu alongside an existing Windows install; backup any important data, in case something goes wrong
  • VM -- install Ubuntu in a Virtual Machine; there will be no data loss; instructions are for Windows
  • WSL -- instructions on how to enable Windows Subsystem for Linux and get Ubuntu running; no data loss expected

Replacing current OS with Ubuntu

Warning: This method will delete your Windows partition. Please make sure you have made a backup of all the data you do not want to loose.

Step 1 (Preparation)

Before starting, download Ubuntu Desktop LTS 20.04 from https://ubuntu.com/#download or get it directly from here. LTS stands for Long Term Support, so this system will be supported for at least the next 5 years without an upgrade to the next version.

You'll get an ISO file, which is a disk image. You need to flash this to a USB drive, using an imager tool. The Raspberry Pi foundation keeps an up-to-date list of imagers for Windows, however, we recommend Etcher. Rufus is another good ISO burner.

In Etcher:

  • Select your ISO file
  • Select your USB drive (plug it in!)
  • Then flash!

Etcher

Step 2 (Boot)

To boot into the live installation media, plug your USB into your computer/laptop, and reboot - you should be able to boot off it with no problems.

Once boot has finished, you should be presented with the installer!

Installer

Click "Try Ubuntu" to be able to play around with a live preview (or need to use one of the bundled tools to help with installation), otherwise, go direct to "Install Ubuntu".

If you click "Try Ubuntu", you can find the installer later by clicking the icon on the desktop:

Start Installer

Step 3 (Installation)

Select your language

Installer Language

Select your keyboard layout

The auto-detect keyboard should walk you through finding out exactly what layout you have if you're not sure.

Installer Keyboard

Connect to the internet

Choose the wifi you want to connect to:

Wifi

Select software

In most cases you want a "Normal installation" with all the utilities - however, if you're working with less disk space, or want to manually install only the tools you want later, then go with a "Minimal installation".

If you have an internet connection, then select "Download updates" - it makes the install process a little longer, but ensures that everything will be properly up to date.

The "Install third-party software" is slightly more complex. In most cases, you should tick it, and attempt an install - if something breaks and doesn't work, for issues related to drivers, then you can try again, disabling this step, and instead trying to install the drivers and codecs after the install is fully complete.

Installer Software

Choose installation type

Be careful at this step! After you click "Install Now" the install process will begin!

For a pure install, click "Erase disk and install Ubuntu".

Installer Type

At this step, you can also choose to encrypt your disk, by selecting "Advanced features" and selecting both "Use LVM" and "Encrypt the new Ubuntu installation". However, this is optional, and requires you to input your password at each boot.

Installer Encrypt drives

After you click "Install Now", you'll be asked if you want to proceed with the partitioning layout you've selected:

Installer Partitioning

Verify the changes, and then click "Continue". Note that your partitions will look different depending on your setup.

Select your timezone

Installer Location

Setup your account

You need to pick:

  • Your name (used in the display manager to greet you, etc)
  • Your computer's name (the hostname used on networks, pick something unique and recognizable)
  • Your username (used to login, appears in shell prompts, etc)
  • Your password (standard password guidelines apply, if you want something easy to remember and secure, try diceware)

Installer Account

Wait!

Now just wait for the installer to complete!

Installer Wait

Once it's completed, follow the prompts to shutdown, remove the installation media, and restart your computer. When you startup, you should be booted into Ubuntu!

Now head over to the Post Installation guide to update your system and install some useful software.

Ubuntu Dualboot

Warning: Please make sure you have made a backup of all the data you do not want to loose.

If you haven't checked out the Dualboot preinstall checks, go back and go through them.

Please make sure you have a backup of any data you do not want to lose. We are providing the instructions as they are, and we are not responsible for any data loss that might occur. Use at your own risk.

This guide will walk you through how to install Ubuntu as dual boot, alongside your existing Windows OS.

It assumes you have already shrunk your Windows partition and correctly set the boot order. If you haven't then you still didn't read the pre-install checks T_T Go read them!

Step 1 (Preparation)

Before starting, download Ubuntu Desktop LTS 20.04 from https://ubuntu.com/#download or get it directly from here. LTS stands for Long Term Support, so this system will be supported for at least the next 5 years without an upgrade to the next version.

You'll get an ISO file, which is a disk image. You need to flash this to a USB drive, using an imager tool. The Raspberry Pi foundation keeps an up-to-date list of imagers for Windows, however, we recommend Etcher. Rufus is another good ISO burner.

In Etcher:

  • Select your ISO file
  • Select your USB drive (plug it in!)
  • Then flash!

Etcher

Step 2 (Boot)

To boot into the live installation media, plug your USB into your computer/laptop, and reboot - you should be able to boot off it with no problems.

Once boot has finished, you should be presented with the installer!

Installer

Click "Try Ubuntu" and play around with the system. Make sure everything works (keyboard, trackpad). Otherwise, go direct to "Install Ubuntu".

If you click "Try Ubuntu", you can find the installer later by clicking the icon on the desktop:

Start Installer

Step 3 (Installation)

Select your language

Installer Language

Select your keyboard layout

The auto-detect keyboard should walk you through finding out exactly what layout you have if you're not sure.

Installer Keyboard

Connect to the internet

Choose the wifi you want to connect to:

Wifi

Select software

In most cases you want a "Normal installation" with all the utilities - however, if you're working with less disk space, or want to manually install only the tools you want later, then go with a "Minimal installation".

If you have an internet connection, then select "Download updates" - it makes the install process a little longer, but ensures that everything will be properly up to date.

The "Install third-party software" is slightly more complex. In most cases, you should tick it, and attempt an install - if something breaks and doesn't work, for issues related to drivers, then you can try again, disabling this step, and instead trying to install the drivers and codecs after the install is fully complete.

Installer Software

Choose installation type

Be careful at this step! After you click "Install Now" the install process will begin!

For a pure install, click "Something else". Click continue.

Installer Type

Partitioning time! Select the free space on your drive (the one we made when shrinking the Windows partition!).

Select free space

Click the + in the bottom left corner of the list. This will create a new partition. Select the mountpoint to be /.

Partition 1

Click ok, wait a bit for the installer to scan the disks (might be instant, my laptop is ancient, took about 3 seconds...). Then click Install now. Confirm the new partitioning layout.

The installation will start.

Select your timezone

Installer Location

Setup your account

You need to pick:

  • Your name (used in the display manager to greet you, etc)
  • Your computer's name (the hostname used on networks, pick something unique and recognizable)
  • Your username (used to login, appears in shell prompts, etc)
  • Your password (standard password guidelines apply, if you want something easy to remember and secure, try diceware)

Installer Account

Wait!

Now just wait for the installer to complete!

Installer Wait

Once it's completed, follow the prompts to shutdown, remove the installation media, and restart your computer. When you startup, you should be booted into Ubuntu!

Neofetch

Now head over to the Post Installation guide to update your system and install some useful software.

Installing Ubuntu in a Virtual Machine

This guide will help you install Ubuntu in a Virtual Machine. It is written under the assumption you are using Windows. The VirtualBox installation for MacOS should be pretty much the same. For Linux distributions, install VirtualBox through your package manager.

You will need:

This guide assumes you have VirtualBox installed. If you don't, it means you skipped the Virtual Machine Pre-install post! Head back there and follow those steps.

Installing Ubuntu

In VirtualBox, go to Machine -> New (or just press CTRL+N). Input the name you want for your VM (good practice is to include what OS it is), select the type as Linux and the version as Ubuntu (64-bit).

../../images/ubuntu/vm-create-os.png

Next, you'll be asked to select the memory size. This depends on what specs your machine has. Ubuntu recommends a minimum of 4 GB RAM (4096 MB). You can allocate it more, but don't worry too much, these settings can be modified later too!

../../images/ubuntu/vm-create-mem.png

We are then going to create a virtual hard disk now (default option), and the Hard disk file type should be VDI (VirtualBox Disk Image). Choose to have the disk dynamically allocated. Next, choose the size of the hard disk. Ubuntu recommends at least 25GB.

../../images/ubuntu/vm-create-hdd.png

Done! You should now see your new VM in the list:

../../images/ubuntu/vm-created.png

Selecting the new VM (called Ubuntu in this example), click Settings (or press CTRL+S) and go to the Storage option. Under Controller: IDE, click the Empty disk. Click the blue disk next to the Optical Drive dropdown, and select Choose a disk file. Navigate to where you saved the Ubuntu ISO and open it.

../../images/ubuntu/vm-insert-iso.png

Back to the list of VMs, select the Ubuntu VM and press Start. Your VM should start. You may be asked to confirm the startup disk, select the Ubuntu ISO and press Start.

Note: If your VM gets stuck in a boot loop and the error message is related to VMSVGA, you need to change the graphics controller. In Settings, go to the Display option and change the graphics controller to be VBoxSVGA.

../../images/ubuntu/vm-display-settings.png

Back to the VM booting -- the Ubuntu installer should greet you:

../../images/ubuntu/vm-ubuntu-installer.png

Click "Install Ubuntu" and follow the steps through.

Select your language

Installer Language

Select your keyboard layout

The auto-detect keyboard should walk you through finding out exactly what layout you have if you're not sure.

Installer Keyboard

Select software

In most cases you want a "Normal installation" with all the utilities - however, if you're working with less disk space, or want to manually install only the tools you want later, then go with a "Minimal installation".

If you have an internet connection, then select "Download updates" - it makes the install process a little longer, but ensures that everything will be properly up to date.

The "Install third-party software" is slightly more complex. In most cases, you should tick it, and attempt an install - if something breaks and doesn't work, for issues related to drivers, then you can try again, disabling this step, and instead trying to install the drivers and codecs after the install is fully complete.

Installer Software

Choose installation type

Be careful at this step! After you click "Install Now" the install process will begin!

For a pure install, click "Erase disk and install Ubuntu".

Installer Type

At this step, you can also choose to encrypt your disk, by selecting "Advanced features" and selecting both "Use LVM" and "Encrypt the new Ubuntu installation". However, this is optional, and requires you to input your password at each boot.

Installer Encrypt drives

After you click "Install Now", you'll be asked if you want to proceed with the partitioning layout you've selected:

Installer Partitioning

Verify the changes, and then click "Continue". Note that your partitions will look different depending on your setup.

Select your timezone

Installer Location

Setup your account

You need to pick:

  • Your name (used in the display manager to greet you, etc)
  • Your computer's name (the hostname used on networks, pick something unique and recognizable)
  • Your username (used to login, appears in shell prompts, etc)
  • Your password (standard password guidelines apply, if you want something easy to remember and secure, try diceware)

Installer Account

Wait!

Now just wait for the installer to complete!

Installer Wait

Enjoy your new Ubuntu VM!

Now head over to the Post Installation guide to update your system and install some useful software and the VM Post Install guide to learn of some useful features for your VM!

Enabling WSL and installing Ubuntu

Step 1 (Enabling + Downloading)

In order to enable WSL for Windows, first you must run the following command in Windows Powershell ran as Administrator (you can do this by right clicking on Powershell after searching it by pressing the Windows key)

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

../../images/wsl-enabling.png

Once the command has finished running, you must now restart your computer, you can do this by pressing Windows Key + R and running the following command.

shutdown /r /t 0

Once your computer has restarted, now you can go to the Microsoft Store and download Ubuntu (not the 20.04 or the 18.04 LTS versions)

Step 2 (Installing + Configuring)

Once you have downloaded the application Ubuntu, you can now run it to enter the first-time setup.

Please note: The first time setup may take a while, this is due to files being unpacked, once this has been done the application will launch quite quickly.

../../images/wsl-configuration.png

You should see the message

Installing, this may take a few minutes...

Wait until your prompt shows the message

Enter a new UNIX username:

This is where you type your account username that you use for Ubuntu, please note this username will appear before every command line and appear as the output for the whoami command.

After your type in your username, you will be prompted to enter a password.

IMPORTANT: You will NOT see your password as you are typing it in, so don't think that it is not working if you see nothing happening, this is just a feature of UNIX.

Type in a password that is associated with your UNIX account, please make this memorable as you will need to use it to run commands with escalated permissions (such as administrator aka root) (i.e. sudo).

Congratulations! Now you have successfully setup WSL and Ubuntu, please see the post-install guide in order to continue with your installation.

Manjaro install

Manjaro is "an accessible, friendly, open-source operating system", that is based off of ArchLinux.

The following section will give you the instructions on how to install Manjaro on your computer.

Please choose the appropriate method of installation.

Warning! If you are installing it as a replacement OS or dualboot, please make sure you have a backup of any data you do not want to lose. We are providing the instructions as they are, and we are not responsible for any data loss that might occur. Use at your own risk.

Choose from:

  • Just Manjaro -- replace your current OS with Manjaro; this will completely erase data on your computer; backup anything you need.
  • Dualboot -- install Manjaro alongside an existing Windows install; backup any important data, in case something goes wrong
  • VM -- install Manjaro in a Virtual Machine; there will be no data loss; instructions are for Windows

Replacing current OS with Manjaro

Warning: This method will delete your Windows partition. Please make sure you have made a backup of all the data you do not want to loose.

Step 1 (Preparation)

Before starting, download Manjaro.

You'll get an ISO file, which is a disk image. You need to flash this to a USB drive, using an imager tool. The Raspberry Pi foundation keeps an up-to-date list of imagers for Windows, however, we recommend Etcher. Rufus is another good ISO burner.

In Etcher:

  • Select your ISO file
  • Select your USB drive (plug it in!)
  • Then flash!

Etcher

Step 2 (Boot)

To boot into the live installation media, plug your USB into your computer/laptop, and reboot - you should be able to boot off it with no problems.

Once boot has finished, you should be presented with the Manjaro Hello utility!

Installer

Close it and play around with the system. Make sure everything works (keyboard, trackpad). You can also connect to the wifi:

Wifi

And choose the network:

Network

Step 3 (Installation)

Once you're happy everything works okay, you can proceed to install it. Click the disk w/ a green arrow on the left hand side bar. This will start the installer. Choose the language:

Language

Your region:

Installer Region

And your keyboard layout:

Installer Keyboard

Next, we will take care of partitioning. Choose Erase disk and choose Swap (with Hibernate). You may also choose to tick the box to encrypt the system. Leave any other settings as they are.

**Note: if you have enough RAM and an SSD, you can go with no swap. However, you may not be able to put your laptop in hibernate mode without more tinkering. If you are low on RAM, you should definitely create a swap partition. Part of the role of the swap partition is to hold files which should be in RAM, but there is not enough memory to hold them all.

../../images/manjaro/partitions.png

Now we'll create the main user. Fill in your name, the name you want to use to login (this will be your username) and a name for the machine (this will be the name the VM will be seen as over a network). Next, choose your account password. Make it a good one! You can then also choose the administrator account password (which is the root user), or choose to use the first supplied password for the admin account too.

../../images/manjaro/users.png

You can then choose to install LibreOffice or FreeOffice (the Linux alternatives to Microsoft Office).

When you're ready, press Install! You will be prompted that disk changes will be made in order to install Manjaro. Confirm by pressing Install now. Wait for the installation to finish.

Once it's completed, follow the prompts to shutdown, remove the installation media, and restart your computer. When you startup, you should be booted into Manjaro!

And remember, the most important think about using Arch is to tell people as often as possible

btw, I use Arch 😄

Now head over to the Post Installation guide to update your system and install some useful software.

Manjaro Dualboot

Warning: Please make sure you have made a backup of all the data you do not want to loose.

If you haven't checked out the Dualboot preinstall checks, go back and go through them.

Please make sure you have a backup of any data you do not want to lose. We are providing the instructions as they are, and we are not responsible for any data loss that might occur. Use at your own risk.

This guide will walk you through how to install Manjaro as dual boot, alongside your existing Windows OS.

It assumes you have already shrunk your Windows partition and correctly set the boot order. If you haven't then you still didn't read the pre-install checks T_T Go read them!

Step 1 (Preparation)

Before starting, download Manjaro.

You'll get an ISO file, which is a disk image. You need to flash this to a USB drive, using an imager tool. The Raspberry Pi foundation keeps an up-to-date list of imagers for Windows, however, we recommend Etcher. Rufus is another good ISO burner.

In Etcher:

  • Select your ISO file
  • Select your USB drive (plug it in!)
  • Then flash!

Etcher

Step 2 (Boot)

To boot into the live installation media, plug your USB into your computer/laptop, and reboot - you should be able to boot off it with no problems.

Once boot has finished, you should be presented with the Manjaro Hello utility!

Installer

Close it and play around with the system. Make sure everything works (keyboard, trackpad). You can also connect to the wifi:

Wifi

And choose the network:

Network

Once you're happy everything works okay, you can proceed to install it. Click the disk w/ a green arrow on the left hand side bar. This will start the installer. Choose the language:

Language

Your region:

Installer Region

And your keyboard layout:

Installer Keyboard

Partitioning time! Choose Replace a partition and click on the gray area (the free space you created when shrinking the Windows partition). Click Next.

Partitions

The final screen will confirm all your options. Now click Install and wait.

Confirm install

Once it's completed, follow the prompts to shutdown, remove the installation media, and restart your computer. When you startup, you should be booted into Manjaro!

Neofetch

And remember, the most important think about using Arch is to tell people as often as possible

btw, I use Arch 😄

Now head over to the Post Installation guide to update your system and install some useful software.

Installing Manjaro in a Virtual Machine

This guide will help you install Manjaro in a Virtual Machine. It is written under the assumption you are using Windows. The VirtualBox installation for MacOS should be pretty much the same. For Linux distributions, install VirtualBox through your package manager.

You will need:

This guide assumes you have VirtualBox installed. If you don't, it means you skipped the Virtual Machine Pre-install post! Head back there and follow those steps.

Installing Manjaro

In VirtualBox, go to Machine -> New (or just press CTRL+N). Input the name you want for your VM (good practice is to include what OS it is), select the type as Linux and the version as Arch Linux (64-bit).

../../images/manjaro/vm-create-os.png

Next, you'll be asked to select the memory size. This depends on what specs your machine has. Manjaro recommends a minimum of 1 GB RAM (1024 MB). You can allocate it more, but don't worry too much, these settings can be modified later too! We would recommend 2 or 4GB, but you can leave the default 1 GB and if you find the machine is too sluggish you can revisit the settings.

../../images/manjaro/vm-create-mem.png

We are then going to create a virtual hard disk now (default option), and the Hard disk file type should be VDI (VirtualBox Disk Image). Choose to have the disk dynamically allocated. Next, choose the size of the hard disk. Manjaro recommends 30GB.

../../images/manjaro/vm-create-hdd.png

Done! You should now see your new VM in the list:

../../images/manjaro/created.png

Selecting the new VM (called Manjaro in this example), click Settings (or press CTRL+S) and go to the Storage option. Under Controller: IDE, click the Empty disk. Click the blue disk next to the Optical Drive dropdown, and select Choose a disk file. Navigate to where you saved the Manjaro ISO and open it.

../../images/manjaro/insert-iso.png

While still in Settings, go to the Display option and change the graphics controller to be VBoxSVGA. If you miss this step, the VM will most likely be stuck in a boot loop.

../../images/manjaro/display-settings.png

Back to the list of VMs, select the Manjaro VM and press Start. Your VM should start. You may be asked to confirm the startup disk, select the Manjaro ISO and press Start.

../../images/manjaro/confirm-startup.png

Your VM is now booting! Press Enter or wait for the timer to reach 0:

../../images/manjaro/first_boot.png

Manjaro Hello will greet you on the screen: ../../images/manjaro/manjaro_hello.png

Press Launch installer. Proceed with choosing the language, time zone and keyboard layout.

Next, we will take care of partitioning. Choose Erase disk with no swap. You may also choose to tick the box to encrypt the system. Leave any other settings as they are.

../../images/manjaro/partitions.png

Now we'll create the main user. Fill in your name, the name you want to use to login (this will be your username) and a name for the machine (this will be the name the VM will be seen as over a network). Next, choose your account password. Make it a good one! You can then also choose the administrator account password (which is the root user), or choose to use the first supplied password for the admin account too.

../../images/manjaro/users.png

You can then choose to install LibreOffice or FreeOffice (the Linux alternatives to Microsoft Office).

When you're ready, press Install! You will be prompted that disk changes will be made in order to install Manjaro. Confirm by pressing Install now. Wait for the installation to finish.

Note: keep an eye on it, my screen went blank due to the default power saving settings and never recovered. You can change these by right-clicking on the desktop -> Settings -> Power and modify Blank Screen to Never and toggle off Suspend & Power Button. If you get the blank screen and have only given the VM 1GB of RAM, it might be a good idea to give it a bit more too, for the installation. You can do this from Settings -> System, once the machine has been powered off. But if the blank screen happens to you too, don't worry! Go to File -> Close and choose Power Off the Machine. Then you can restart the installation process. It's a VM, so nothing on your actual system is at risk!

The installation will finish. Do not check the restart now button. Click done.

You can now close the VM: go to File -> Close and choose Power Off the Machine. From the VMs list, having selected the Manjaro VM, click Settings and choose the Storage option. Select the Manjaro ISO under Controller: IDE and click the remove button at the bottom (blue square with a red x). Confirm you want to remove the disk. This step is very important. If you fail to remove the ISO, the VM will boot from the Live CD, not from the VM disk!

../../images/manjaro/remove-iso.png

You can now go start your VM! It's ready! Manjaro Hello should greet you again. You can disable its Launch at startup functionality (toggle the button in the right bottom corner).

Enjoy your new Manjaro VM!

../../images/manjaro/neofetch.png

Now head over to the Post Installation guide to update your system and install some useful software and the VM Post Install guide to learn of some useful features for your VM!

Installing Linux on Apple Silicon (eg M1)

This guide will help you install Linux on newer Apple hardware that uses an Apple Silicon (ARM) CPU. Currently, all Apple Silicon (AS) computers are designated 'M1', however this guide will try to avoid that term since subsequent chip variants eg M1X or M2 are likely to be released soon.

The Apple Silicon processors have very impressive performance for their energy consumption; no need for fans, all day battery life, great speed etc...but as they don't use the same CPU architecture as most desktop/laptop computers, a bit of extra work is required to get Linux working on them.

The main thing to keep in mind is that there's a difference between virtualization (running another OS designed for the same CPU architecture) and emulation (running an OS designed for a different CPU architecture).

Bare Metal

Running linux 'bare metal' on AS hardware is technically possible but not really usable yet. Per this thread on Reddit:

[T]here are two Linux kernels available for the M1, the upstream kernel maintained by the Asahi Linux team, and the Corellium Kernel maintain by uh well Corellium.

Corellium is a company that specialises in virtualizing iOS, but they have another project called 'projectsandcastle' which is a port of both the Linux kernel and Android to select iPhones. They took that knowledge and immediately ported that to the M1, the result is them being the first to offer a full Linux desktop running on bare metal M1, but that comes at a cost: None of their patches are upstreamable (their modifications to the Linux kernel are considered hacky and won't be merged to the official Linux kernel)

The Asahi Linux kernel takes a different approach, with them taking as much time and funding as possible to create something that can be included officially with the addition of them also working on graphics drivers for the M1 (the Corellium kernel is all software rendering). However, as of now, they got as far as getting serial output (via UART) and simple framebuffer output (aka just enough to see the kernel output on the screen).

While technically these OSes 'run' they do not represent a really usable 'daily driver' setup and thus we don't recommend them at this time though if you're curious about what's currently possible, check out this blog post.

Dual Boot

Because there is no bare metal Linux OS that's ready yet, this option is not really viable either.

Virtual Machine (VM)

The remaining option, running Linux in a VM, is our recommendation.

Sadly, VirtualBox (our recommendation for running VMs on non-AS Apple hardware) doesn't (and likely won't) run on this new hardware. That leaves two options:

  • UTM (donationware, recommended)
  • Parallels Desktop (non-free, though there's a free trial available)

Setting up a Linux VM with UTM

Except for three few small changes, you can simply follow the guide here:

  1. You should first download the UTM app from one of the two links at the top of the page here. Don't try to install it via github as the guide suggests -- it's not necessary! Note:

    UTM is and always will be completely free and open source. The Mac App Store version is identical to the free version and there are no features left out of the free version. The only advantage of the Mac App Store version is that you can get automatic updates. Purchasing the App Store version directly funds the development of UTM and shows your support .

  2. In step 3, you can leave "System" on the default (which should be something like:

    QEMU 6.1 ARM Virtual Machine (alias of virt-6.1) (virt))

  3. After step 8, you might need to run sudo apt-get update && sudo apt-get upgrade before attempting to install the Ubuntu desktop or the tasksel commands might fail.

Setting up a Linux VM with Parallels

Simply follow the guide here. Parallels costs 70 GBP a year after the free trial ends.

Supported Linux OSes:

  • Ubuntu Linux 21.04, 20.10, 20.04
  • Fedora Workstation 34, 33-1.2
  • Debian GNU/Linux 10.7
  • Kali Linux 2021.2, 2021.1

Make sure to choose 64-bit ARM installation media; here are some links:


Enjoy your new VM!

Now head over to the Post Installation guide to update your system and install some useful software!

Post installation

Things you might want to do after installing linux, common software choices, etc.

Adjusting your default boot order

Now you've installed Linux remember to go back and readjust your boot order.

If you've dualbooted you'll now have 2 possible partitions to boot into at startup: Windows or Linux, as well as USB etc.

Importantly: if the BIOS boots into windows it'll startup Windows straight away, but if you set it to boot to linux it will actually go to GRUB from which you can select your OS.

So restart your device, press the key to enter BIOS and go back to the "Boot Order" menu. Move Linux to the top and Windows to 2nd place. You can safely remove the installation media now. The order should now look something like this:

BIOS boot order

Then when it boots from now you will end up in a menu such as:

GRUB boot selection

See how you can now choose between linux and windows every time you boot.

Updating

You should keep your system up-to-date, and try and run updates every so often. Updates aren't as naggy as in Windows, so you may find yourself needing to remember to install them.

Notice: Make sure to be connected to an active internet connection, and *prepare for the command to take a while to finish executing.

In Ubuntu (with apt):

sudo apt update && sudo apt upgrade

Note for Manjaro: It is good practice to keep your system up to date as often as possible. Manjaro does not have version releases like Ubuntu. It is a rolling updates distro. It is also good practice to check the Arch Linux News before an update. If a major update (e.g. kernel update) breaks something, it will be posted there, and you'll know to wait a few days such that it's solved.

Also, the Arch Wiki is your friend for any Manjaro related questions. As we said, Manjaro is based on Arch, so most things there apply to it as well!

In Manjaro (with pacman):

sudo pacman -Syu

Lastly, for Manjaro, one of the great things about it is the Arch User Repository. This contains packages contributed by the community. As the AUR disclaimer says,

AUR packages are user produced content. Any use of the provided files is at your own risk.

So please, before you install a package from AUR, read its page and check the Comments section for known issues. As the packages are user contributed, remember, they can be questionable. Make your own decisions.

In order to install packages from AUR, you should use a helper program that will manage the installation and upgrades for you. yay is a great one. You can install it with:

pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Now you can start intalling AUR packages with yay! It behaves similarly to pacman.

Installing software

In Ubuntu (with apt):

sudo apt install <package>

Note: you may see both apt and apt-get around. apt is the new form *of apt-get and should be preferred in general (though not for scripts).

In Manjaro (with pacman):

sudo pacman -S <package>

(with yay):

yay -S <package>

Nvidia drivers

Nvidia drivers may be needed to gain full performance, or screen resolution, on machines with Nvidia GPUs. These instructions are for rather recent Nvidia chips (GeForce 600 series and newer). For older GPUs, you will need to use older driver versions (like 390).

To install it:

sudo pacman -S video-nvidia-440xx

Or, on Ubuntu:

sudo apt install nvidia-driver-440

Reboot your machine after the installation. Before booting back, if Secure Boot is still enabled, disable it for the Nvidia drivers to work!

Laptop users: please note that the Nvidia GPU will be on all the time, thus, battery life may be affected. There is a tool, to turn off the GPU when not needed (Optimus technology), called "Bumblebee", but the setup is not user friendly. Feel free to experiment with it, but things may break!

Firewalling

Linux doesn't come with any preinstalled firewalls, this means devices on a shared network might be able to access any webservers you accidentally leave running, as well as SSH. SSH is probably the one listening service that will run by default on a Linux box and if you have poor passwords this is a risk.

So it's a good idea to install a super simple firewall that just stops anything connecting to your machine, don't worry it won't stop outgoing connections, just incoming attempts.

Follow the short UFW guide to get this set up.

Change your default shell

Lots of us tend to prefer zsh over bash. It's faster, more customizable, and usually has fewer pain points.

To install it:

sudo apt install zsh

or

sudo pacman -S zsh

Then:

chsh -s /bin/zsh

Theming

One of the best things about using Linux is the awesome levels of customisability!

How you customize the look and feel depends on what desktop environment you've chosen, for Ubuntu, it's most likely GNOME, for Manjaro, it's most likely KDE, but check to make sure.

Check out the settings menus in both!

GNOME

For GNOME, you can install GNOME Tweak Tool to be able to change themes:

sudo apt install gnome-tweak-tool

or

sudo pacman -S gnome-tweaks

Detecting Windows in GRUB

If for some reason Windows isn't detected on your boot menu, not to worry! OS-Prober should fix that issue.

Customise GRUB (Advanced)

You can even customise the bootloader you see for choosing the OS.

Gnome-look.org has a lot of nice themes. Don't ask us how to do this, you'll have to learn it on your own! We're just giving you ideas. Google is your friend :-)

Fallout theme GRUB Fallout theme

Plasma Dark theme GRUB Fallout theme

Useful packages

  • Chromium Web Browser - Chromium is an open-source web browser.
  • Java Development Kit (JDK) - Java is a is a general-purpose programming language that is taught in first year Computer Science at UoB.
  • Neofetch - Neofetch is a command that lists information about your Linux distribution and the machine you are running on.
  • Speedtest - Speedtest is a command that tests how fast your internet is via the terminal.

UFW

UFW means Uncomplicated FireWall and don't worry, it is uncomplicated. With UFW you simply describe firewall rules in the simplest possible way and it applies them, permanently. By default it applies to all protocols and interfaces, you can be more specific but the default is the safest, this means it protects you via wifi, ethernet and over VPNs (it doesn't affect the lo local interface however).

Installation

Ubuntu:

sudo apt install ufw

Manjaro:

pacman -S ufw

Checking the status

To see what firewall rules you have running run the command:

sudo ufw status verbose

It will tell you it's inactive for now.

To permanently activate the firewall run:

sudo ufw enable

Check the status again and it should be running.

Basic "Deny all" Rule

The simplest security model here is simply to deny every incoming connection attempt. Unless you have a very good reason for why you / someone else needs to be able to connect to your laptop remotely over a local network this will be fine.

So all we're going to do is write a single rule that sets the default to do this:

sudo ufw default deny incoming

Now any connection attempts to your ports will be rejected.

Adding exceptions

In special circumstances you might want to allow specific services to be reached throught the firewall, for example maybe you want someone to test a server running on your laptop.

Here you simply add a rule on top of the default that says "allow connections for this port number", and now you've got a nice precise hole in your firewall.

So to do this you can run the command:

sudo ufw allow in <PORT NUMBER>/tcp

You can switch TCP for UDP if that's what you need.

It's good practice to disable tis after you stop needing it, in case in the future you run something less secure on the same port and forget to reenable the firewall.

To do this you can simply run the same command as above but with the delete keyword after ufw: this will tell UFW to delete the rule described.

sudo ufw delete allow in <PORT NUMBER>/tcp

Finally and Further Reading

Now you're good to go! Remember to check the status after each new rule just to check that it did what you want.

This is a good guide to UFW: it goes over many of the same steps but some others as well if you're interested: DigitalOcean UFW Guide

And remember man ufw is your friend and will help you out with how to write complicated commands.

Chromium

Chromium is an open-source web browser.

Installation

Manjaro:

 sudo pacman -S chromium

Ubuntu:

sudo apt install chromium-browser

Running

You can either run Chromium by searching it in the applications menu (by pressing the Super (Windows) key and typing Chromium), or by running the following command:

chromium

Removal

Manjaro:

 sudo pacman -Rs chromium

Ubuntu:

sudo apt remove chromium-browser

Connecting to Eduroam

This guide will help you get the eduroam connection working. It assumes you are using Network Manager for handing your network connections (which if you've been following our install guides, should be true).

You will only need wget as extra software. Install it:

Ubuntu:

sudo apt install wget

Manjaro:

sudo pacman -S wget

Certificate

From the terminal:

Make a folder in your home directory (I'll use the folder .eduroam_ca in this guide), download the file:

mkdir ~/.eduroam_ca
cd ~/.eduroam_ca
wget -O ca.pem https://www.quovadisglobal.com/wp-content/files/media/qvrca2g3_pem.pem 

Now download the connection configuration:

wget https://linux.afnom.net/files/eduroam.nmconnection

You have to edit this file. Open it with gedit:

gedit eduroam.nmconnection &
  • Replace [computer user] (the whole thing, [] included!) with your username. You can find it out by running whoami in the terminal.
  • Replace [path to ca.pem] with the full path to the ca.pem file. The full path should look something like /home/[computer user]/.eduroam_ca/ca.pem where [computer user] is your username (like I explained above).
  • Replace [student username] with your UoB student username. They look something like abc123
  • Replace [UoB password] with your UoB account password.

Save and close the window.

Copy the file in the configurations directory of Network Manager (you must use sudo):

sudo cp eduroam.nmconnection /etc/NetworkManager/system-connections

Reload Network Manager:

sudo systemctl restart NetworkManager

You should now be able to see eduroam in your WiFi list and, when in range, connect to it.

Java Development Kit (JDK)

Java is a is a general-purpose programming language that is taught in first year Computer Science at UoB. The development kit is the package you need in order to compile and run Java applications.

Notice: Java and JavaScript are two very different languages - it has as much in common as a Car and a Carpet.

Installation

Manjaro:

 sudo pacman -S jre-openjdk

Ubuntu:

sudo apt install default-jdk

Running

In order to verify that Java has been installed correctly, run the following command.

java --version

This should produce the following (or similar) output if working correctly. ../images/java-version.png

Multiple Java Versions

The first year CS course at UoB requres submissions compatible with Java 11, and so recommend that this is what's used for assignments. In general though it is a good idea to have the latest version available. In this case it's useful to be able to manage multiple installed java versions on one PC. It may well be that the latest version of Java that comes with your distriubtion is java 11 (as with Ubuntu 20.04), in which case you can ignore this section.

Assuming you've already installed the latest JDK as above, install JDK 11:

Manjaro:

sudo pacman -S jdk11-openjdk

Ubuntu:

sudo apt install openjdk-11-jdk

Once the new version is installed, you will be able to see all installed versions like this:

Manjaro:

archlinux-java status

Ubuntu:

update-alternatives --list java

And switch between them like this:

Manjaro:

sudo archlinux-java set <java version>

Ubuntu:

sudo update-alternatives --config java

Removal

Manjaro:

 sudo pacman -Rs jre-openjdk

Ubuntu:

sudo apt remove default-jdk

Installing Eclipse

You may want to install Eclipse, the IDE recommended by the School. The easiest way to do this, is to install it through snap. Both Ubuntu and Manjaro come with snap installed.

To install Eclipse:

sudo snap install eclipse --classic

After Eclipse is installed, you might want to check for updates. From Eclipse, go to Help -> Check for updates. Select the updates you want to do, click Next, confirm, agree with the Terms and Conditions and click Finish.

You may want to install other software/plugins. Can do this from Help -> Install New Software. Select the URL corresponding to the Eclipse version you have and the list will get populated with possible software you may want to install.

Eclipse Software

Neofetch

Neofetch is a command that lists information about your Linux distribution and the machine you are running on, it also provides an ASCII art that differs based on the flavour of linux you are running. An alternative command to neofetch is screenfetch, which you can install and run in exactly the same way, just removing each instance of neofetch with screenfetch in the following commands.

Installation

Manjaro:

 sudo pacman -S neofetch

Ubuntu:

sudo apt install neofetch

Running

In order to run Neofetch simply execute the command via terminal.

neofetch

Here are some example outputs, the messages will differ based on the version of Linux installed and your system's specifications. ../images/neofetch-arch.png ../images/neofetch-ubuntu.png

Uninstallation

Manjaro:

 pacman -Rs neofetch

Ubuntu:

sudo apt remove neofetch

OS-Prober (Detecting other operating systems)

OS-Prober is a command-line utility that detects other operating systems on your device. We use that in conjunction with the grub-mkconfig command in order to detect any operating systems that haven't been automatically picked up.

Installation

Manjaro:

sudo pacman -S os-prober

Ubuntu:

sudo apt install os-prober

../images/os-prober-install

Running

OS-Prober must be ran as run in order to work properly.

sudo os-prober

../images/os-prober

As you can see, I have a Windows partition on /dev/nvme0n1p1. In order for grub to detect this, I need to mount it and then re-run the grub configuration tool.

I will mount my Windows partition to a temporary directory in order for it to be detected. Note: We ignore everything past the @ in the file path, we strictly only care about the drive location.

sudo mount /dev/nvme0n1p1 /mnt

../images/mounting-a-drive.png

As you can see, you should now be able to ls the directory where the drive is mounting to if done successfully.

Now that you've mounted the relevant drive, you can run

sudo grub-mkconfig 

This will then generate a file for you and sets it to GRUB's new configuration.

../images/grub-mkconfig.png

This should fix your GRUB config file, and now Windows should be detected on your boot drives menu in GRUB.

Removal

Manjaro:

sudo pacman -Rs os-prober

Ubuntu:

sudo apt remove os-prober

Speedtest

Speedtest is a command that tests how fast your internet is, this application is a command-line interface (CLI) for the website speedtest.net.

Installation

Manjaro:

 sudo pacman -S speedtest-cli

Ubuntu:

sudo apt install python3 speedtest-cli

Running

To verify your installation, run the following command

speedtest --version

In order to run speedtest-cli, run the following command via terminal.

speedtest

Uninstalling

Manjaro:

 sudo pacman -Rs speedtest-cli

Ubuntu:

sudo apt remove speedtest-cli

Virtual Machine Post Installation

This guide will tell you how to enable a few usefull features for your VM, after you have installed it. Before you follow this guide, make sure to update your system, as described in the Post Installation guide.

Installing Guest Additions

Guest Additions from VirtualBox will allow you to enable some very useful features, such as bi-directional shared clipboard (i.e. you'll be able to copy-paste between you host and the VM) and shared folders. Let's get started!

Note: this guide was written using the Manjaro VM, but it is the same for the Ubuntu VM. Where the commands differ, both are provided.

With the VM powered off, go to Settings -> Storage. Select the CD with a plus button next to Controller IDE.

Note: if you still see the Linux ISO under the Controller IDE, remove it! If you fail to remove the ISO, the VM will boot from the Live CD, not from the VM disk!

./images/insert-ga-disk_1.png

From the list, select VBoxGuestAdditions.iso. Press Choose, then OK. Start the VM.

./images/insert-ga-disk_2.png

Open up a terminal and install gcc, make and perl:

For Manjaro:

sudo pacman -S gcc make perl

For Ubuntu:

sudo apt install gcc make perl

If you are running in a Manjaro VM, you need to install the linux headers for your kernel. You can confirm the kernel version by running

uname -a

Example output:

Linux neko3-manjaro 5.8.6-1-MANJARO #1 SMP PREEMPT Thu Sep 3 14:19:36 UTC 2020 x86_64 GNU/Linux

So 5.8.6-1 is my kernel version.

Ubuntu installs these automatically, so no need to worry.

For Manjaro (58 matches the first two digits of the uname -a command):

sudo pacman -S linux58-headers

Go to the Guest Additions folder. Replace [user] with your own as needed. (Note that the GA version might have changed meanwhile)

For Manjaro:

cd /run/media/[user]/VBox_GAs_6.1.14

For Ubuntu:

cd /media/[user]/VBox_GAs_6.1.14

./images/cd-ga.png

Run the Linux GA:

sudo ./VBoxLinuxAdditions.run

Provide your user password and confirm you want to install by typing yes. It will then finish.

./images/ga-done.png

Next, let's make sure to add our used to the vboxsf group, such that we can do shared folders (replace neko with your own username).

sudo usermod -a -G vboxsf neko

Reboot! (You can optionally now remove the Guest Additions ISO from Settings -> Storage)

Bi-directional clipboard

It's very useful to be able to copy between the guest VM and the host. I usually use the browser on my host machine, and often times I find myself copying stuff from the host to the VM. In order to enable the clipboard, just do to Devices -> Shared Clipboard and choose which one suits you best. I always go for Bidirectional :-) All done, it should just work now!

Shared folders

It's also super useful to have a shared folder between your VM and host. This means you don't have to copy across text or files, they can be seen by both the VM and the host!

In order to setup a shared folder, we'll start with the VM powered off. Now go to Settings -> Shared Folders. Click the folder with plus icon on the right hand side. For the Folder Path box, click the dropdown button -> Other... and navigate to the folder you want to share! In my case, I'll share a folder called docs in my Documents. You can leave the Folder Name as it defaults to, or you can give it a different name. This is how the folder will be named in the VM! You can also make it auto-mount, and give it the path in the VM it will appear under. Remember, in Linux, your home directory is always /home/[your username]. In my case, I chose to mount under the docs directory my home directory. Click Ok until you exit Settings. Now start your VM!

./images/ga-shared-folder.png

Now you should see your shared folder in your home directory! Congrats!

./images/ls-shared-folder.png

Increasing VRAM

To simulate having a graphics card VirtualBox allows you to set the amount of Video RAM given to the VM. It defaults to really low, so if you're going to use the GUI of the VM a lot it's recommended to boost it to max so the VM is nice and smooth. To do this go into the machine settings, select the display tab and drag the slider all the way to the right.

Display Settings

Troubleshooting

For technical questions about Linux and support after install, join the #tech-support channel in the CSS Discord.

Learning

Now that you've gotten setup with Linux, you might want to learn a bit more about the system you're using and customize it a bit!

Shell

One of the most powerful tools to get to grips with is the Linux shell. With the shell you can easily and powerfully perform many operations that are really difficult in a graphical interface. It's quite easy to get the hang of quickly, but you'll find that as long as you make an attempt to use it regularly, you'll continue to pick up skills.

Here are a few places to get started:

If you like interactive tutorials a bit more, then try out:

  • Learn Shell
    • Standard interactive tutorial to introduce you to Bash
    • Very similar in style to tutorials on programming languages
  • Linux Survival
    • Linux command line taught as a visit to the Zoo :)

Practice

If you do some reading, you might find you might want to do some practice!

Here's a few sites you can try out:

  • OverTheWire - Bandit
    • One of the best wargames out there to practice learning the shell
    • Comes at it from a hacking point of view 🎉
  • Commandline Challenge
    • Quiz-style game to test your knowledge of interactice shell usage
    • Also has a really fun variant where all the programs on the system have been removed, and you have to try to perform basic operations.

However, one of the best ways to properly learn bash, is to just use it regularly. Instead of opening up a graphical UI, try and learn how to do things in the terminal. If you recognize yourself doing something repetitive, notice, and try and automate it. Read other people's shell scripts. Customize your prompt. Write your own shell even!

Essentially, just practice!

"Ricing"

There's an awesome community on /r/unixporn that is dedicated to building beautiful Linux desktops (which they call "ricing").

It's a really neat way to learn more about how to build and install lots of different pieces of software, learn some configuration, as well as discover more about display servers.

Here's some common terminology:

  • Desktop Environment
    • A full and complete set of tools that make up "a desktop"
    • Usually includes a window manager, common applications, integrated settings manager, etc.
    • The big ones are GNOME and KDE
  • Display server
    • Piece of software to display windows onto a screen
    • Two choices, the older (and more reliable) X11, and the newer Wayland
  • Window manager
    • Manages windows, layouts, etc
    • Can be grouped into:
      • Stacking, windows are stacked on top of each other, very traditional
      • Tiling, windows are tiled around each other, very flexible
      • Dynamic, a bit of both!
    • Some window managers also include a compositor!
  • Compositor
    • Provide fancy effects
    • Fix common issues like vsync/tearing problems
    • Only really applicable to X11
  • Graphics toolkit
    • Provides widgets, buttons, inputs
    • Two main choices (but others exist), GTK or QT