Table of Contents
My current install is getting old (5+ years) and I thought it might be a good idea to start from scratch.
Obviously I follow the Installation Guide as if my life depends on it; this document is for additional notes.
These notes are for an MBR/BIOS install with full system encryption.
Before you start-up-
If you have an old install you might want to consider these steps.
Get a list of all installed packages from your current system:
pacman -Q > pkglist
Get a list of explicitely installed packages:
pacman -Qe > pkglist_explicit
And to be on the safe side, make a copy of
Copy your dotfiles into a repository.
I did not delete the old install, so I could copy files and code over from it, but I did create a Firefox bookmark backup before I started.
Partition the disks-up-
I am opting for system encryption as described here.
Leave the last two chapters (Configuring mkinitcpio and bootloader) for later and return to the main article.
After editing the mirrorlist, it's time to install the base system:
# pacstrap /mnt base linux-lts linux-firmware lvm2 nano man-db man-pages dhcpcd syslinux
If you forget something here the Installation Guide recommends chrooting into the system, then installing it with pacman.
In other words, do not use
Swap - Suspend (Hibernate) and Resume-up-
- First of all, make sure it's in
/etc/fstab. I couldn't figure out what its UUID would be, so I used something like
- I also append
resume=/dev/mapper/myVolGroup/swapto the bootloader's linux command line.
- I add the
resumehook after the
For a bootloader I choose syslinux.
It seems necessary to edit
/boot/syslinux/syslinux.cfg accordingly even after the Automatic install.
If you chose the
linux-lts kernel, remember to adjust the LINUX and INITRD accordingly.
Consider loading microcode during early boot.
Syslinux does not find & add other installs automatically. To dual boot one needs to chainload the partition in question - all I had to add was this:
LABEL old MENU LABEL Old Arch COM32 chain.c32 APPEND hd0 2
hd0 is the first internal drive, i.e.
2 is the 2nd partition, i.e.
Also have a look at these instructions (AFAIU they are too complicated; all I had to do was asdd above menu entry; possibly because that other partition is already using syslinux).
- I like to load my chosen console font as soon as possible:
- I also choose
COMPRESSION="cat"; this makes a much larger image, but is a little faster to boot.
Into the encrypted system. There's no internet. We forgot to
# systemctl start dhcpcd # systemctl status dhcpcd (gives error messages about the still unconfigured wifi interface, but wired should be OK) # systemctl enable dhcpcd
This is really the bigger part of the installation process.
Follow the articles one by one.
Keep boot messages on tty1-up-
This is mentioned in the General Recommendations, but the linking is a little twisted. It is explained here.
Installing a graphical system-up-
Eventually it is time to install a busload of packages. Once again, I opt for a simple Openbox environment without a display manager.
Example, reconstructed with
grep pacman /var/log/pacman.log:
# pacman -Syu sudo ttf-ibm-plex ttf-opensans openbox python-xdg xorg-xinit xorg-server xorg-xfontsel rxvt-unicode terminus-font obconf lxappearance xfce4-power-manager tint2 dmenu thunar gvfs thunar-archive-plugin mpv firefox firefox-extension-https-everywhere firefox-umatrix keepassxc git openssh geany network-manager-applet
Don't forget to set up sudo!
Please take some time to configure Firefox as it isn't very privacy aware OOTB.
That last one pulls in network-manager which requires me to
# systemctl disable dhcpcd # systemctl enable NetworkManager # reboot
Next we have to move some dotfiles over to the new system lest we reinvent the wheel.
While migrating my login scripts I stumbled upon this:
xrdb cannot use the
#include directive (which I've been using for years) unless a C preprocessor, such as GNU CPP, in other words
gcc, is installed.
While you're at it you might just as well install the whole
base-devel group, and a few more likely candidates:
# pacman -Syu base-devel wget wmctrl xdotool ...
Many more such dependency issues await the new install, but I prefer it that way so that I only install what I really need.
I use NFS unencrypted over a local network. Assuming the new install will receive the same IP on the LAN there isn't anything to do server-wise.
Client-wise, only the package
nfs-utils needs to be installed, and the according entries copied over from your old
- Have the Installation Guide open on a secondary device with a sufficiently large screen.
- Throughout the installation process (and generally alway when using the shell) I recommend using tab completion as much as possible. This is not only more convenient but also reduces the risk of typos and other mistakes.
- If applicable: add an entry to
/etc/fstabto mount your old install to a dedicated directory, e.g.
UUID=what-ever-it-is /home/OLD ext4 rw,relatime 0 3- because you'll be needing it a lot during the first days!