This article details the installation of Winston, my main machine.
Tech Specs
Since Winston is forever, his hardware changes from time to time.
Winston is currently (2021-04-14) a Lenovo Thinkpad T470p, featuring an i7-7700HQ cpu, 32Gb of memory and features a 1Tb NVME2 SSD.
Operating System
Winston runs Arch Linux!
Installation steps
These steps will install Arch Linux on an EFI system, using full disk encryption on a single root partition.
The steps below use the disk /dev/sda, make sure to use the device name of your system and don't blindly use the commands in this file.
Set correct keymap and enable NTP
loadkeys be-latin1
timedatectl set-ntp true
Create partitions (adjust sizes if desired)
Create the following partitions on your systems. You can change the size of the partions if you want / know what you're doing.
1: 512Mb EFI partition (type ef00)
2: 512Mb boot partition (type 8300)
3: 2G swap partition (type 8200)
4: 100% root partition (type 8300)
Setup encrypted disk
If you use another mapping name in the cryptsetup open
step then make sure to update the step under Setup grub.
cryptsetup -c aes-xts-plain64 --use-random luksFormat /dev/sda4
cryptsetup open /dev/sda4 arch
Format partitions (adjust device names)
mkfs.vfat -F32 /dev/sda1
mkfs.ext2 /dev/sda2
mkswap /dev/sda3
mkfs.ext4 /dev/mapper/arch
swapon /dev/sda3
Mount all partitions
mount /dev/mapper/arch /mnt
mkdir /mnt/boot
mount /dev/sda2 /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
Install base system
pacstrap /mnt base linux linux-firmware grub-efi-x86_64 zsh vim git efibootmgr dialog wpa_supplicant networkmanager dhclient
Setup fstab
genfstab -pU /mnt >> /mnt/etc/fstab
chroot
arch-chroot /mnt
Setup timezone and sync hardware lcock
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
Uncomment en_US.UTF-8 UTF-8 and other needed locales in /etc/locale.gen, and generate them with:
locale-gen
Create the locale.conf(5) file, and set the LANG variable accordingly:
LANG=en_US.UTF-8
If you set the keyboard layout, make the changes persistent in vconsole.conf(5):
KEYMAP=be-latin1
Set hostname (/etc/hostname) and /etc/hosts file
Set root password, add user
passwd
useradd -m -g users -G wheel -s /bin/zsh michael
passwd michael
Configure mkinitcpio with modules needed for the initrd image
vim /etc/mkinitcpio.conf
# Add 'ext4' to MODULES
# Add 'keymap' and 'encrypt' to HOOKS before filesystems, make sure keymap is before encrypt or the keymap specified in /etc/vconsole.conf won't load and you'll be stuck in Qwerty to type your passphrase.
Regenerate initrd image
mkinitcpio -p linux
Setup grub
If you chose another mapping name in the step Setup encrypted disk then make sure to adjust the arch in the GRUB_CMDLINE_LINUX below.
grub-install
# In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to
# GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdX3:arch:allow-discards" then run:
grub-mkconfig -o /boot/grub/grub.cfg
Exit new system and go into the cd shell
exit
Unmount all partitions
umount -R /mnt
swapoff -a
Reboot into the new system, don't forget to remove the cd/usb
reboot
Post installation steps
These post installation steps will install some of my personally prefered software. You can skip these steps are they aren't required for a fully working system.
Install required software
pacman -S sway terminator man ssh