Winston

Written by Michael Anckaert - Published on - Posted in general

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