Dual Boot Ubuntu And Arch Linux

Dual booting Ubuntu and Arch Linux is not as easy as it sounds, however, I’ll make the process as easy as possible with much clarity. First, we will need to install Ubuntu then Arch Linux since it’s much easier configuring the Ubuntu grub to be able to dual boot Ubuntu and Arch Linux.  

Dual Boot Ubuntu And Arch Linux

Some of the things you will need:

  1. Ubuntu flavor of your choice, in this case, I’ll use ubuntu 17.10 iso
  2. 2 USB sticks
  3. Windows PC or Linux based PC
  4. Arch Linux iso
  5. Rufus(for windows) or etcher(for Linux distro)

​Install Ubuntu 16.10

​First, create a bootable flash drive using Rufus for both Ubuntu and Arch Linux. Alternatively, you could use etcher to create bootable flash drives for both Ubuntu and Arch Linux.

bootable ubuntu usb etcher image writer

Select the ISO image file for Ubuntu then select the flash drive of your choice after which click flash to create the bootable flash drive. Wait till it completes and Voila! Your bootable flash drive is ready for use.

make ubuntu usb bootable in linux

​Turn on your machine and boot using the bootable flash drive with the Ubuntu installation media. Ensure that you boot into UEFI or BIOS compatibility mode depending on the type of PC you are using. I prefer using UEFI for a newer PC builds.

live ubuntu boot

​Upon Successful boot, you will see the following screen asking you to try Ubuntu or install Ubuntu. Choose install Ubuntu.

install usb from live usb

​Then check to install third-party software for graphics and Wifi hardware, MP3 and other media. Optionally if you have an internet connection choose to download updates while installing Ubuntu since it will save time setting up the installation as well as ensure you get the latest updates of your installation.

custom partition hd install ubuntu

​Then choose ‘Something else’ so that we can partition the hard disk and set aside space for swap, Ubuntu, and Archlinux.

create swap partition ubuntu

​Create a swap area partition. Preferably half the size of the ram. In my case, I have 1GB of ram thus 512mb of swap area space.

install ubuntu root partition

​Then create a partition with mount point ‘/’. Then click the install now button.

select ubuntu timezone

Choose your location then choose language and keyboard settings.

select ubuntu keyboard layout

​Then create the user credentials that will create a new user.

create username, system name ubuntu install

​The installation will now start by clicking next.

ubuntu installation finishing

​When the installation is done click on restart PC.

ubuntu installation finished restart system

​Remove the installation media and press enter when done.

remove installation media after ubuntu

​Upon confirmation of successful installation, restart and boot into the Arch Linux installation media.  

​Install Arch Linux

​Upon booting into the Arch Linux installation media you should see an initial screen as follows. Choose Boot Arch Linux(x86_64). Note Arch Linux is a more of DYF (do it yourself) kind of Operating system.

arch linux installation boot menu

After choosing, it will open a tty1 terminal that you will use to install the operating system.

arch linux tty1 linux

Note: You will need an internet connection to download some packages in order to install Arch Linux successfully. So we need to check if the internet is working fine. Enter the following into the terminal to check internet connectivity. ping linuxandubuntu.com -c 4

arch linux ping check internet connection

​If the internet is working fine you should get an echo back showing the number of packets sent and received. In this case, we sent 4 echos and got 4 back meaning the connection is good.

If you want to setup Wifi in Arch Linux, read this post here on setting up Wifi in Arch Linux. ​Next, we need to select the partition that’s free that we had earlier set aside while installing Ubuntu. fdisk -l ​The above should show you the available disks that are there. You should see the Ubuntu partitions as well as the free space. We will use cfdisk to partition. cfdisk

install arch partition disk with cfdisk

You will see the partitions. Select the free space that is below the other allocated partitions.​You will need to select new and then enter the partition size for the partition.

partition free space swap arch linux

Use for example 9.3G – G representing gigabytes.

install arch linux partition

Make the partition primary as below.

make arch linux root as primary partition

Then choose the write partition entry.

select partition to install arch

​Type ‘yes’ to confirm the writing of the partition.

install arch linux confirm create partition

Then choose the quit option.

quit cfdisk arch linux

Then type: fdisk -l ​To confirm the changes

confirm partition changes

​Then partition the disk using:

mkfs.ext4 /dev/sda3 ​

Make sure the partition you choose is the last one that we created so that we don’t mess with the Ubuntu partition.

complete arch linux installation partition

​Then mount it to using the following command – mount /dev/sda3 /mnt

mount base partition in arch linux

​Make a home directory using:

mkdir .mnt/home 
mount home partition arch linux

​Mount the home folder to the partition using mount /dev/sda3 /mnt/home

make mount home directory

​Now install the base system of Archlinux using the command: pacstrap /mnt base Make sure you have an internet connection.

It should take a while to download and set it up depending on the internet speed you have.

install arch linux base

After the step is complete, the Archlinux base installation is completed.After installing the Arch Linux base, create a fstab file using the command:genfstab -U /mnt >> /mnt/etc/fstab

create fstab in arch linux

​After that, you need to verify the fstab file entries using: cat /mnt/etc/fstab

cat fstab file data terminal

​Configuring Arch Linux: the basic configuration

You will need to configure the following upon installation:

  1. The system language and the system locales
  2. The system timezones
  3. Root user password
  4. Set a hostname

Firstly, you will need to switch to the newly installed base by changing root into the system using the command:arch-chroot /mnt 

The system Language and the system locale

You will then have to configure the system language. You will have to uncomment en_UTF-8 UTF-8 and the localization you need in /etc/local.gen
Type:nano /etc/local.genThen uncomment the en_UTF-8 UTF-8
Then type:locale-genTo generate the localization settings as follows:

generate localization arch linux

 You will need to set the LANG variable in locale.conf  accordingly, for example:nano /etc/locale.conf​Then change to:LANG=en_US.UTF-8If you set the keyboard layout, make the changes persistent in vconsole.conf:nano /etc/vconsole.conf​Then change to:KEYMAP=us-eng 

2. The system timezones

​You will need to set the time zone using –

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime 

To see the available time zones, you can use the following command in the terminal:
Note region is shown in blue below in the screenshot:

ls /usr/share/zoneinfo 
setup zonefile in arch linux
setup country zonefile

Run hwclock command as follows to generate /etc/adjtime(assumes the hardware clock is set to UTC.):

# hwclock --systohc   

3. Root password

​To set a new password for the Arch Linux installation set root password using: Passwd ​Supply a new password and confirm the password to set the root password.

setup arch linux root password

4. Set a hostname and configure network

​You will need to create the hostname file: nano /etc/hostname

set arch linux hostname

Change the name to your username:

set arch linux username

Then add a matching entry to hosts:

nano /etc/hosts 127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
127.0.1.1 LinuxandUbuntu.localdomain LinuxandUbuntu

You will need to make the network connections persistent thus use:

systemctl enable dhcpd   

Grub configuration

Then reboot the machine and enter into Ubuntu to configure the grub.
You will type: reboot

reboot system after arch linux installation

The Arch Linux installation still doesn’t appear therefore we need to install it using update-grub in ubuntu.

ubuntu grub menu
ubuntu grub menu

Open a terminal in Ubuntu and type: sudo update-grub It should update the grub to include Arch Linux.  

Conclusion

Congratulations you have successfully set up Ubuntu and Arch Linux to dual boot. The Ubuntu installation is easy but the Arch Linux installation is a challenge for new Linux users. I tried making this tutorial as simple as it can be. But if you have any questions about the article, let me know in the comment section below. Also, share this article with your friends and help them learn Linux.

SHARE THIS POST

MassiveGRID Banner
11 Comments Text
  • Great article but needed few correction required which is very important.
    You said you like UEFI mode but this is a BIOS installation process not UEFI.

  • `pacstrap /mnt base base-devel` is not enough now. You need to install `linux` and `linux-firmware` too:
    `pacstrap /mnt base base-devel linux linux-firmware`

  • very nice article, but on reboot grub does not display arch.
    sudo update-grub returns:
    Letrura file “/etc/default/grub”
    Generazione file di configurazione GRUB…
    Trovata immagine linux: /boot/vmlinuz-4.15.0-88-generic
    Trovata immagine initrd: /boot/initrd.img-4.15.0-88-generic
    Trovata immagine linux: /boot/vmlinuz-4.15.0-76-generic
    Trovata immagine initrd: /boot/initrd.img-4.15.0-76-generic
    Found memtest86+ image: /boot/memtest86+.elf
    Found memtest86+ image: /boot/memtest86+.bin
    Trovato Arch Linux su /dev/sda3
    fatto
    can you help me in any way?

  • I was able to boot Arch Linux (Reborn OS), Xubuntu, Mint, and Windows 10, but after Xubuntu got updated and rewrote the Grub menu, I am unable to boot back into Arch Linux. My Reborn OS is on /dev/sda5, and when I select it from Grub, it doesn’t boot into it just is blank. I’m using GPT and I can load every other OS, including Windows 10, but not Arch (Reborn OS). I guess I have to re-install Reborn OS and have it’s Grub menu replace the Xubuntu Grub. I’m sure there’s a work-around for this, and would welcome suggestions.

  • Thanks for this guide. I wondered whether I should install ArchLinux first. After reading your article, I understand. Ubuntu or Manjaro in my case should go first. Thanks again.

  • I have followed each and every command, but grub still doesn’t detect Arch linux. For me, it is on the partition /dev/sda2 and Ubuntu on/dev/sda3.

    • This tutorial is basically telling you to create a new partition, install the OS on it and then update grub from Ubuntu. Simply install Parrot OS on the created partition, and it should work.

  • Leave a Reply

    Your email address will not be published. Required fields are marked *