Arch Linux Installation

Arch gang rise up

As you can notice, there are various tutorials in the net for the keyword “Arch installation”. As an Arch user, I will recommmend you to take a look at the Arch wiki for such an installation progess instead. So what is the purpose of this post? You may ask.

First of all, this post serves as a snippset for my arch installation. I don’t want to forget anything esstensial for my daily workflow incase I have to make a complete reinstall. Secondly, as personalized as this installation guide may seems, it may help new users in some ways.

Important
This installation guide is very outdated. Always follow the official guide from the ArchWiki for porper up-to-date instructions.

Now let’s get started:

Caution
/dev/nvme0n1 should be replaced with /dev/sda depending on different hardware.

bash

ip link
wifi-menu

bash

lsbk
cgdisk /dev/nvme0n1
Partitions Space Type Lable
/dev/nvme0n1p1 512M ef00 boot
/dev/nvme0n1p2 4G 8200 swap
/dev/nvme0n1p3 remaining 8300 system

1. EFI partition

bash

mkfs.fat -F32 /dev/nvme0n1p1

2. Activate swap

bash

mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2

3. System partition

bash

mkfs.ext4 /dev/nvme0n1p3

bash

$ mount /dev/nvme0n1p3 /mnt
$ mkdir /mnt/boot
$ mount /dev/nvme0n1p1 /mnt/boot
$ df

bash

$ nano /etc/pacman.d/mirrorlist

Place your host of choice on top:

bash

Server = http://abcdxyz.example.com/archlinux/$repo/os/$arch

bash

$ pacstrap /mnt base linux linux-firmware neovim
$ genfstab -U /mnt
$ genfstab -U /mnt >> /mnt/etc/fstab
$ cd /mnt/etc
$ cat fstab

bash

$ arch-chroot /mnt
$ ln -sf /usr/share/zoneinfo/ /  /etc/localtime
$ hwclock --systohc --utc
$ nvim  /etc/locale.gen` then uncomment `en_US.UFT-8`
$ locale-gen
$ echo "LANG=en_US.UFT-8" > /etc/locale.conf
$ nvim /etc/hostname
$ passwd
$ useradd -g users -G wheel,storage,power -m ashpex

or

bash

localectl set-locale LANG=en_US.UTF-8

bash

$ pacman -S grub efibootmgr
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
$ pacman -S os-prober
$ grub-mkconfig -o /boot/grub/grub.cfg

bash

$ pacman -S networkmanager wireless_tools wpa_supplicant network-manager-applet
$ exit
$ reboot

bash

$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

bash

$ pacman -S ntp
$ systemctl enable ntpd
$ systemctl start ntpd
$ timedatectl set-ntp 1

bash

$ sudo pacman -Syu
$ sudo pacman -S xorg xorg-server
$ sudo pacman -S gnome
$ sudo systemctl start gdm.service
$ sudo systemctl enable gdm.service
$ sudo pacman -S pulseaudio pulseaudio-alsa

bash

$ sudo pacman -S i3-gaps dunst dmenu picom feh mpd mpv ranger rofi scrot neovim xorg xorg-server pulseaudio pulseaudio-alsa alsa-utils nemo alacritty firefox git zathura

bash

$ yay polybar ranger-git
Tip
Install light package to control brightness. It works better than xbacklight and supports Wayland.

bash

sudo pacman -S xfce4 xfce4-goodies

That’s pretty much the whole installation of your Arch Linux system. You can customize your OS more later such as things like ricing,… The fun has just begun. Here are some screenshots of my machine over time.

2019-08_scrot
Screenshot taken in August 2019
2019-12_scrot
Screenshot taken in December 2019
2020-05_scrot
Screenshot taken in May 2020
2021-03_scrot
Screenshot taken in March 2021

  1. Hosts

    Check the configuration of your /etc/hosts file, a valid configuration looks like this:

    bash

    #<ip-address> <hostname.domain.org> <hostname> 127.0.0.1 localhost.localdomain yourHostname ::1 localhost.localdomain yourHostname 
  2. Devices

  • You can identify your networking devices like this:

    bash

    lspci | grep -i net
  • If your device is not listed, it is maybe an usb-device, so try this command:

    bash

    lsusb
  • With the following command you can check the current state of all your network-devices:

    bash

    ip link
  1. Install the wpa_supplicant tools

    bash

    sudo pacman -S wpa_supplicant
  2. the wireless tools

    bash

    sudo pacman -S wireless_tools
  3. Install the networkmanager

    bash

    sudo pacman -S networkmanager
  4. Install the network-manager-applet aka nm-applet

    bash

    sudo pacman -S network-manager-applet
  5. Install gnome-keyring

    bash

    sudo pacman -S gnome-keyring
  6. Configuration

  • Make the networkmanager start on boot:

    bash

    sudo systemctl enable NetworkManager.service
  1. Disable dhcpcd
  • Since networkmanager wants to be the one who handles the dhcpcd related stuff, you have to disable and stop dhcpcd:

    bash

    $ sudo systemctl disable dhcpcd.service 
    $ sudo systemctl disable dhcpcd@.service 
    $ sudo systemctl stop dhcpcd.service 
    $ sudo systemctl stop dhcpcd@.service
  1. Enable wpa_supplicant, if you want to use your wireless connection:

    bash

    sudo systemctl enable wpa_supplicant.service
  2. Add your user to the network group:

    bash

    gpasswd -a <USERNAME> network
  3. Turn off your network interface controllers, in my case eth0 and wlan0:

    bash

    $ ip link set down eth0
    $ ip link set down wlan0
  • Now start wpa_supplicant:

    bash

    $ ip link set down eth0
    $ ip link set down wlan0
  • Now Start the networkmanager:

    bash

    sudo systemctl start NetworkManager.service

Finally, you should see the tray-icon on the top bar.

Logging as root

bash

visudo

Add another line after this one

bash

root ALL=(ALL) ALL

With: (by pressing O, then :X to save)

bash

username ALL=(ALL) ALL