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:
- Ubuntu flavor of your choice, in this case, I’ll use ubuntu 17.10 iso
- 2 USB sticks
- Windows PC or Linux based PC
- Arch Linux iso
- 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.
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.
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.
Upon Successful boot, you will see the following screen asking you to try Ubuntu or install Ubuntu. Choose install Ubuntu.
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.
Then choose ‘Something else’ so that we can partition the hard disk and set aside space for swap, Ubuntu, and Archlinux.
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.
Then create a partition with mount point ‘/’. Then click the install now button.
Choose your location then choose language and keyboard settings.
Then create the user credentials that will create a new user.
The installation will now start by clicking next.
When the installation is done click on restart PC.
Remove the installation media and press enter when done.
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.
After choosing, it will open a tty1 terminal that you will use to install the operating system.
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
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
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.
Use for example 9.3G – G representing gigabytes.
Make the partition primary as below.
Then choose the write partition entry.
Type ‘yes’ to confirm the writing of the partition.
Then choose the quit option.
Then type: fdisk -l To confirm the changes
Then partition the disk using:
Make sure the partition you choose is the last one that we created so that we don’t mess with the Ubuntu partition.
Then mount it to using the following command – mount /dev/sda3 /mnt
Make a home directory using:
Mount the home folder to the partition using mount /dev/sda3 /mnt/home
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.
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
After that, you need to verify the fstab file entries using: cat /mnt/etc/fstab
Configuring Arch Linux: the basic configuration
You will need to configure the following upon installation:
- The system language and the system locales
- The system timezones
- Root user password
- 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:
You will need to set the LANG variable in locale.conf accordingly, for example:nano /etc/locale.confThen change to:LANG=en_US.UTF-8If you set the keyboard layout, make the changes persistent in vconsole.conf:nano /etc/vconsole.confThen 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:
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.
4. Set a hostname and configure network
You will need to create the hostname file: nano /etc/hostname
Change the name to your 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
Then reboot the machine and enter into Ubuntu to configure the grub.
You will type: reboot
The Arch Linux installation still doesn’t appear therefore we need to install it using update-grub in ubuntu.
Open a terminal in Ubuntu and type: sudo update-grub It should update the grub to include Arch Linux.
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.
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.
Totally agreed!! WRONG title!!
`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
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.
you can manually edit the grub.cfg, but i think that would be the hard way
Thanks for reading! I am glad that the article helped you!
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.
I Can I follow the same method to have both Ubuntu and Parrot OS
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.