Arch Linux Day 1: Installation

12 Dec 2015

Tags: linux installation


This is by no means a tutorial or a guide to installing Arch Linux - it is just how I did my things. Everything that I do should be taken as (at the most) advice. Everything written here should be taken with a grain of salt, as I am going off of my memory of what I have done, and may have forgotten things, even if it was only a few days since I have actually done the deed. I don’t remember every command that I execute.

The Process

The Installation Media

You won’t believe me when I tell you that the most difficult part of this day was to burn the image to the disk. But let me tell you: it was.

The main tool I used was ImgBurn on Windows 10. I downloaded the ISO image, which was around 600MB. I then proceeded to insert a blank DVD into my disk drive, and started up ImgBurn. I finished burning the image onto my disk, but the problem came when ImgBurn started verifying my disk. At the 20% mark, verification errors began popping up for no reason. I know because I tried burning it on my Ubuntu laptop, and was successful (which is why I am using Arch right now). Some research showed me that it was not ImgBurn’s problem, but a combined problem between old hardware and new software/drivers. Mind you that my main laptop is almost 6 years old (as of writing this).

Booting Up

After that fiasco, I booted my disk, and boy did it load up fast.


The first thing I did was (re)partitioning my disk. Since I did not have multiple hard drives, I had to partition my disk. Unfortunately for me, Windows 10 has already partitioned my disk into 3 parts: the boot-loader, my main C:\ drive, and a recovery partition, making 3 primary partitions. As you may or may not know, you can only have 4 partitions on 1 disk at the same time. I saw that my previous Fedora 20 distribution got around this by making a logical partition.

Using cfdisk, I deleted my Fedora partitions, then created a large logical partition (with the remaining space) and pushed my root, boot, swap, and home partitions on there. I gave every partition type ext4 (default) except swap (Linux swap/Solaris). I then saved and exited.

Formatting the Partitions

After all the partitioning, I used fdisk -l to list out all the available partitions. I then tried to format my swap partition with the commands:

mkswap /dev/sda7
swapon /dev/sda7

This failed miserably with an error. I then found out that my beloved Fedora 20 installation formatted every partition it touched with lvm. I removed them all with lvremove -r /dev/mapping/fedora and tried formatting again. It worked.

mkfs.ext4 /dev/sda5     # Root
mkfs.ext4 /dev/sda6     # Boot
mkfs.ext4 /dev/sda8     # Home (doesn't rhyme with 'oot')

Installation of the Base System

With formatting done and out of the way, next comes installation of base packages. The instructions say that I have to install the packages to the root partition, and that’s what I did.

# Mount everything
mkdir /mnt/home /mnt/boot
mount /dev/sda5 /mnt
mount /dev/sda6 /mnt/boot
mount /dev/sda8 /mnt/home

# Install the base package
pacstrap /mnt base

One thing that I need to do before chroot-ing into the new system is to generate an fstab file:

genfstab -p /mnt >> /mnt/etc/fstab
arch-chroot /mnt    # Change root

Configure Network

I wanted a working ethernet connection, so I did systemctl enable dhcpcd@enp3s0.service to enable the ethernet service for my machine. You may have a different device name, like eth0.

Install the Boot-Loader

I’ve been using GRUB before, and didn’t want to change, so I ran pacman -S grub os-prober to install GRUB and a module called os-prober that detects my Windows OS so that GRUB recognizes it and allows me to boot from that as well.

To configure and install GRUB:

grub-mkconfig -o /boot/grub/grub.cfg    # Create config file
grub-install --recheck /dev/sda         # Install GRUB

Setting root Password

One of the last things that you should do is to set the password for root user for the next/first time you login. A simple passwd does it.

Exiting and Rebooting

I exited the chroot with exit (Ctrl+D also works). Afterwards, I unmounted all the mounted partitions with unmount -R /mnt, the -R being recursive to unmount everything recursively. Apparently, unmounting also checks for problems with fuser. I rebooted the machine with reboot.

First Login

At last, it was time for me to login for the first time! GRUB loaded correctly, and defaulted to Arch Linux. The loading-up was very fast, as I had nearly nothing to load. I successfully logged in with my root account, and was greeted with a very nice shell prompt.

Creating a User

Creating a user is very essential - I don’t want to be logging in as the root user every time because if I screw something up, I lose everything.

useradd -m cheukyin699  # Create the user
passwd cheukyin699      # Change the password

pacman -S sudo          # Install sudo
visudo                  # Edit sudoers file to add user

A Whole New World

After rebooting, it’s time to login a second time as a normal user and start installing stuff. But I thought that what I did was good enough for the day.