Installation

Keyboard layout

loadkey fr-latin1

Wifi setup

iwctl 
station wlan0 scan
station wlan0 get-networks
station wlan0 connect ${SSID}

Disk

EFI Partition

Command (m for help): n
Partition number: <Press Enter>
First sector: <Press Enter>
Last sector, +/-sectors or +/-size{K,M,G,T,P}: +100M
Command (m for help): t
Partition type or alias (type L to list all): uefi

Boot Partition

Command (m for help): n
Partition number: <Press Enter>
First sector: <Press Enter>
Last sector, +/-sectors or +/-size{K,M,G,T,P}: +1024M
Command (m for help): t
Partition type or alias (type L to list all): linux

LUKS Partition

Command (m for help): n
Partition number: <Press Enter>
First sector: <Press Enter>
Last sector, +/-sectors or +/-size{K,M,G,T,P}: <Press Enter>
Command (m for help): t
Partition type or alias (type L to list all): linux

Check partition table and write change

Command (m for help): p
Command (m for help): w

Format EFI and Boot

mkfs.fat -F 32 /dev/${efi-disk}
mkfs.ext4 /dev/${boot-disk}

Setup LUKS

cryptsetup --use-random luksFormat /dev/${luks-disk}
cryptsetup luksOpen /dev/${luks-disk} cryptlvm

LVM

lvcreate --size 8G vg0 --name swap
lvcreate --size 100G vg0 --name root
lvcreate -l +100%FREE vg0 --name home
lvreduce --size -256M vg0/home

Format LV

mkswap /dev/vg0/swap
mkfs.ext4 /dev/vg0/root
mkfs.ext4 /dev/vg0/home

Mount new FS

mount /dev/vg0/root /mnt
mount --mkdir /dev/<your-disk-efi> /mnt/efi
mount --mkdir /dev/<your-disk-boot> /mnt/boot
mount --mkdir /dev/vg0/home /mnt/home
swapon /dev/vg0/swap

Install base system

pacstrap -K /mnt base linux linux-firmware openssh git vim sudo

Generate fstab

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

Chroot

arch-chroot /mnt 

Timezone

# See available timezones:
ls /usr/share/zoneinfo/

# Set timezone:
ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
hwclock --systohc

Locale

vim /etc/locale.gen (uncomment en_US.UTF-8 UTF-8)
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf

Hostname

echo yourhostname > /etc/hostname

Create user

useradd -m -G wheel --shell /bin/bash ${user}
passwd ${user}
visudo
# ---> Uncomment "%wheel ALL=(ALL) ALL"

mkinit

pacman -S lvm2
vim /etc/mkinitcpio.conf
# ---> Add 'encrypt' and 'lvm2' to HOOKS before 'filesystems'
mkinitcpio -P

GRUB

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB

in /etc/default/grub

GRUB_CMDLINE_LINUX="cryptdevice=/dev/<your-disk-luks>:cryptlvm root=/dev/vg0/root"
grub-mkconfig -o /boot/grub/grub.cfg

NetworkManager

pacman -S networkmanager
systemctl enable NetworkManager

Exit chroot

exit
umount -R /mnt
swapoff -a
reboot