Archlinux Install Notes
Lenovo i7 Thinkpad (quad core laptop)

(this is what I did, mostly just following Archlinux install wiki, I added notes in bold as needed)

Verify the boot mode

If UEFI mode is enabled on an UEFI motherboard, Archiso will boot Arch Linux accordingly via systemd-boot. To verify this, list the efivars directory:

# ls /sys/firmware/efi/efivars

If the directory does not exist, the system may be booted in BIOS or CSM mode. Refer to your motherboard's manual for details.

Connect to the Internet

The installation image enables the dhcpcd daemon on boot for wired network devices. The connection may be checked with:

# ping

If no connection is available, stop the dhcpcd service with systemctl stop dhcpcd@ and pressing Tab. Proceed with Network configuration for wired devices or Wireless network configuration for wireless devices.
For wireless settings, you can use wifi-menu [just select essid to connect to]

Update the system clock

Use timedatectl(1) to ensure the system clock is accurate:

# timedatectl set-ntp true

To check the service status, use timedatectl status.

Partition the disks

When recognized by the live system, disks are assigned to a block device such as /dev/sda or /dev/nvme0n1. To identify these devices, use lsblk or fdisk.

# fdisk -l

Results ending in rom, loop or airoot may be ignored.

The following partitions are required for a chosen device:

Note: Swap space can be set on a separate partition or a swap file.

To modify partition tables, use fdisk or parted.

# fdisk /dev/sda

See Partitioning for more information.

Note: If you want to create any stacked block devices for LVM, disk encryption or RAID, do it now.

Format the partitions

Once the partitions have been created, each must be formatted with an appropriate file system. For example, to format the root partition on /dev/sda1 with ext4, run:

# mkfs.ext4 /dev/sda1

If you created a partition for swap (for example /dev/sda3), initialize it with mkswap:

# mkswap /dev/sda3
# swapon /dev/sda3

See File systems#Create a file system for details.

Mount the file systems

Mount the file system on the root partition to /mnt, for example:

# mount /dev/sda1 /mnt

Create mount points for any remaining partitions and mount them accordingly:

# mkdir /mnt/boot
# mount /dev/sda2 /mnt/boot

genfstab will later detect mounted file systems and swap space.


Select the mirrors

Packages to be installed must be downloaded from mirror servers, which are defined in /etc/pacman.d/mirrorlist. On the live system, all mirrors are enabled, and sorted by their synchronization status and speed at the time the installation image was created.

The higher a mirror is placed in the list, the more priority it is given when downloading a package. You may want to edit the file accordingly, and move the geographically closest mirrors to the top of the list, although other criteria should be taken into account.

This file will later be copied to the new system by pacstrap, so it is worth getting right.

Install the base packages

Use the pacstrap script to install the base package group:

# pacstrap /mnt base

This group does not include all tools from the live installation, such as btrfs-progs or specific wireless firmware; see packages.both for comparison.

To install packages and other groups such as base-devel, append the names to pacstrap (space separated) or to individual pacman commands after the #Chroot step.

Ok, rather than just installing the base apps, here is what I did (it’s a laptop):
# pacstrap /mnt base grub networkmanager network-manager-applet xorg xfce4 xfce4-goodies alsa-utils udisks2 firefox sddm gvfs gamin pulseaudio pavucontrol openssh sudo

Configure the system


Generate an fstab file (use -U or -L to define by UUID or labels, respectively):

# genfstab -U /mnt >> /mnt/etc/fstab

Check the resulting file in /mnt/etc/fstab afterwards, and edit it in case of errors.


Change root into the new system:

# arch-chroot /mnt

Time zone

Set the time zone:

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

Run hwclock(8) to generate /etc/adjtime:

# hwclock --systohc

This command assumes the hardware clock is set to UTC. See Time#Time standard for details.


Uncomment en_US.UTF-8 UTF-8 and other needed localizations in /etc/locale.gen, and generate them with:

# locale-gen

Set the LANG variable in locale.conf(5) accordingly, for example:


If you set the keyboard layout, make the changes persistent in vconsole.conf(5):

I did not change keyboard layout, defualt is fine for us in the USA


Create the hostname file:


Add matching entries to hosts(5):

/etc/hosts       localhost

::1             localhost       myhostname.localdomain  myhostname

If the system has a permanent IP address, it should be used instead of

Network configuration

The newly installed environment has no network connection activated by default. See Network configuration#Network managers.

For Wireless configuration, install the iw and wpa_supplicant packages, as well as needed firmware packages. Optionally install dialog for usage of wifi-menu.


Creating a new initramfs is usually not required, because mkinitcpio was run on installation of the linux package with pacstrap.

For special configurations, modify the mkinitcpio.conf(5) file and recreate the initramfs image:

# mkinitcpio -p linux
Usually not needed, I skipped the above Initramfs section.

Root password

Set the root password:

# passwd

Boot loader

A Linux-capable boot loader must be installed in order to boot Arch Linux. See Category:Boot loaders for available choices.

If you have an Intel CPU, install the intel-ucode package in addition, and enable microcode updates.

I istalled and enabled grub boot loader with following commands:

# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

created the user and added him to a bunch of groups and set password for user:

# useradd -m -G wheel,video,audio,scanner,network,optical joe 
# passwd joe  
   type password 
I went another step further and enabled the NetworkManager and the login manager
# systemctl enable NetworkManager
# systemctl enable sddm

Done………………….The initial install took about an hour


After reboot, I installed Microcode update files for Intel CPUs intel-ucode,
and Nvidia Module and utilities

# pacman -S intel-ucode
# pacman -S nvidia-340xx lib32-nvidia-340xx-utils lib32-nvidia-340xx-utils

I made necessary changes to enable multilib

uncommented the [multilib] section in /etc/pacman.conf
(be sure to uncomment both lines):

Include = /etc/pacman.d/mirrorlist

and to make it immediately effectual run:
# pacman -Syu

I set up the system for building AUR packages (Arch User Repository)

# pacman -S --needed base-devel
# pacman -Syu

I went on to install irssi, Libreoffice and gimp
# pacman -S irssi
# pacman -S libreoffice-fresh
# pacman -S gimp

From AUR, I installed mythtv and teamviewer


and they both worked just fine, mythtv automaticall found the mythtv server on the network so there was no configuration accept for selecting pulseaudio for audio server.
Teamviewer only requires enabling teamviewerd:

# systemctl enable teamviewerd

Hard drive usage [at this point] is 7.5G

Further developments; I installed more packages:

[2018-04-07 15:56] [PACMAN] Running 'pacman -S kdeconnect'
[2018-04-07 16:03] [PACMAN] Running 'pacman -S x11vnc tigervnc'
[2018-04-07 18:32] [PACMAN] Running 'pacman -S gtypist'
[2018-04-08 15:07] [PACMAN] Running 'pacman -S deja-dup'
[2018-04-09 10:04] [PACMAN] Running 'pacman -S speedtest-cli'
[2018-04-09 15:40] [PACMAN] Running 'pacman -S lynx'
[2018-04-09 21:04] [PACMAN] Running 'pacman -S net-tools'
[2018-04-10 12:58] [PACMAN] Running 'pacman -S cups'
[2018-04-10 12:59] [PACMAN] Running 'pacman -S hplip'
[2018-04-10 13:55] [PACMAN] Running 'pacman -S calibre'
[2018-04-10 14:40] [PACMAN] Running 'pacman -S okular'

Hard Drive usage is 6.5G

I had a sudden obsession with fonts – I went hog-wild and installed:

ttf-merriweather ttf-merriweather-sans ttf-opensans ttf-oswald ttf-quintessential ttf-signika ttf-ubuntu-font-family ttf-mac-fonts ttf-google-fonts-git

Some of the above are font families so it’s a lot more than it looks like. Probably not anything I really needed, just a sudden impulse thing.
At any rate, I’m now up to:
Hard Drive usage: 7.6G

More apps installed April 12:

[2018-04-12 03:13] [PACMAN] Running 'pacman -S bind-tools'
[2018-04-12 03:13] [PACMAN] Running 'pacman -Syu'

Various applications upgraded:

[2018-04-12 03:01] [ALPM] upgraded alsa-lib (1.1.5-1 -> 1.1.6-1)
[2018-04-12 03:01] [ALPM] upgraded alsa-utils (1.1.5-2 -> 1.1.6-1)
[2018-04-12 03:01] [ALPM] upgraded libutil-linux (2.32-2 -> 2.32-3)
[2018-04-12 03:01] [ALPM] upgraded btrfs-progs (4.15.1-1 -> 4.16-1)
[2018-04-12 03:01] [ALPM] upgraded sqlite (3.23.0-1 -> 3.23.1-1)
[2018-04-12 03:01] [ALPM] upgraded libgpg-error (1.28-1 -> 1.29-1)
[2018-04-12 03:01] [ALPM] upgraded libsystemd (238.51-1 -> 238.76-1)
[2018-04-12 03:01] [ALPM] upgraded util-linux (2.32-2 -> 2.32-3)
[2018-04-12 03:01] [ALPM] upgraded systemd (238.51-1 -> 238.76-1)
[2018-04-12 03:01] [ALPM] upgraded glib2 (2.56.0+16+gecabc6e21-1 -> 2.56.1-1)
[2018-04-12 03:01] [ALPM] upgraded colord (1.4.2-1 -> 1.4.2-3)
[2018-04-12 03:01] [ALPM] upgraded libsoup (2.62.0-1 -> 2.62.1-1)
[2018-04-12 03:01] [ALPM] upgraded gdk-pixbuf2 (2.36.11+70+g00e03a272-1 -> 2.36.12-1)
[2018-04-12 03:01] [ALPM] upgraded fribidi (1.0.1+8+gdf7252b-1 -> 1.0.2-1)
[2018-04-12 03:01] [ALPM] upgraded gtk-update-icon-cache (3.22.29+60+ge42d8598ca-1 -> 3.22.29+86+gd92df4ff2c-1)
[2018-04-12 03:01] [ALPM] upgraded gtk3 (3.22.29+60+ge42d8598ca-1 -> 3.22.29+86+gd92df4ff2c-1)
[2018-04-12 03:01] [ALPM] upgraded gnupg (2.2.5-1 -> 2.2.5-2)
[2018-04-12 03:01] [ALPM] upgraded gvfs (1.36.0-2 -> 1.36.1-1)
[2018-04-12 03:01] [ALPM] upgraded webkit2gtk (2.20.0-2 -> 2.20.1-1)
[2018-04-12 03:01] [ALPM] upgraded deja-dup (36.3-4 -> 38.0-1)
[2018-04-12 03:01] [ALPM] upgraded libinput (1.10.3-1 -> 1.10.4-1)
[2018-04-12 03:01] [ALPM] upgraded xf86-input-libinput (0.27.0-2 -> 0.27.1-1)
[2018-04-12 03:01] [ALPM] upgraded xorg-server-common (1.19.6+13+gd0d1a694f-1 -> 1.19.6+13+gd0d1a694f-2)
[2018-04-12 03:01] [ALPM] upgraded xorg-server (1.19.6+13+gd0d1a694f-1 -> 1.19.6+13+gd0d1a694f-2)
[2018-04-12 03:01] [ALPM] upgraded qca-qt5 (2.1.3-9 -> 2.1.3-10)
[2018-04-12 03:01] [ALPM] upgraded solid (5.44.0-1 -> 5.44.0-2)
[2018-04-12 03:01] [ALPM] upgraded kdeconnect (1.2.1-1 -> 1.3.0-1)
[2018-04-12 03:01] [ALPM] upgraded logrotate (3.13.0-1 -> 3.14.0-1)
[2018-04-12 03:01] [ALPM] upgraded openssl-1.0 (1.0.2.n-1 -> 1.0.2.o-1)
[2018-04-12 03:01] [ALPM] upgraded procps-ng (3.3.12-3 -> 3.3.13-1)
[2018-04-12 03:01] [ALPM] upgraded sdl2 (2.0.8-7 -> 2.0.8-8)
[2018-04-12 03:01] [ALPM] upgraded systemd-sysvcompat (238.51-1 -> 238.76-1)
[2018-04-12 03:01] [ALPM] upgraded vte-common (0.52.0-1 -> 0.52.1-1)
[2018-04-12 03:01] [ALPM] upgraded vte3 (0.52.0-1 -> 0.52.1-1)
[2018-04-12 03:01] [ALPM] upgraded xfce4-whiskermenu-plugin (1.7.5-1 -> 2.1.6-1)
[2018-04-12 03:01] [ALPM] upgraded xorg-server-devel (1.19.6+13+gd0d1a694f-1 -> 1.19.6+13+gd0d1a694f-2)
[2018-04-12 03:01] [ALPM] upgraded xorg-server-xdmx (1.19.6+13+gd0d1a694f-1 -> 1.19.6+13+gd0d1a694f-2)
[2018-04-12 03:01] [ALPM] upgraded xorg-server-xephyr (1.19.6+13+gd0d1a694f-1 -> 1.19.6+13+gd0d1a694f-2)
[2018-04-12 03:01] [ALPM] upgraded xorg-server-xnest (1.19.6+13+gd0d1a694f-1 -> 1.19.6+13+gd0d1a694f-2)
[2018-04-12 03:01] [ALPM] upgraded xorg-server-xvfb (1.19.6+13+gd0d1a694f-1 -> 1.19.6+13+gd0d1a694f-2)
[2018-04-12 03:01] [ALPM] upgraded xorg-server-xwayland (1.19.6+13+gd0d1a694f-1 -> 1.19.6+13+gd0d1a694f-2)