This guide will install a base arch system with a encrypted root partition.

1. Format and Partition the disk


Below is an example of the disk layout:

Mount PointPartitionTypeFile SystemSize
/mnt/boot/dev/efi_system_partitionEFI system partitionfat321G
[swap]/dev/swap_partitionLinux swapswap16G
/mnt/dev/root_partitionLinux rootbtrfs200G
/mnt/home/dev/home_partitionLinux homebtrfsRemainder

1.1. Create GPT partition table

List the available drives and create the partition table:

1
2
lsblk
cfdisk /dev/disk

1.2. Create filesystem and mount partitions

1
2
3
4
5
6
mkfs.fat -F32 /dev/efi_system_partition
mkfs.btfs /dev/root_partition
mkfs.btfs /dev/home_partition
mount /dev/root_partition /mnt
mount --mkdir /dev/efi_system_partition /mnt/boot
mount --mkdir /dev/home_partition /mnt/home

2. Install essential packages


1
pacstrap -K /mnt <packages>
  • base base-devel
  • linux linux-firmware
  • man-db man-pages texinfo
  • git
  • grub efibootmgr os-prober
  • networkmanager
  • vim neovim
  • Filesystem utilies
    • btrfs-progs
  • GPU Drivers
    • nvidia nvidia-settings
    • xf86-video-amdgpu
    • xf86-video-intel
  • CPU UCode
    • intel-ucode
    • amd-ucode

3. Configure the system


3.1. Fstab and Chroot

1
2
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt

3.2. Time

1
2
ln -sf /usr/share/zoneinfo/<Region>/<City> /etc/localtime
hwclock --systohc

3.3. Localization

Edit /etc/locale.gen and uncomment en_US.UTF-8 UTF-8.

1
2
3
locale-gen
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "<myhostname>" >> /etc/hostname

3.3. Enabling systemd units

1
systemctl enable NetworkManager

4. Install the bootloader


4.1. Install grub bootloader

The command with `–removable’ I have found is needed when installing on a system with a duel boot setup.

1
grub-install --target=x86_64-efi --efi-directory=boot --bootloader-id=GRUB

or

1
grub-install --target=x86_64-efi --efi-directory=boot --removable

4.2. Generating grub config

1
grub-mkconfig -o /boot/grub/grub.cfg

5. Creating users

1
useradd -m -G wheel,audio,disk,input,kvm,optical,scanner,storage,video <username>

Edit sudoers using the command $EDITOR=nvim visudo and uncomment:

1
%wheel ALL=(ALL:ALL) ALL

The next line can also be uncomment and updated with any commands you want entered without a password. Example

1
%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/mount,/usr/bin/umount,/usr/bin/pacman

Give root and the newly created user a password

1
2
passwd
passwd <username>

Exit chroot, reboot your system, and remove your installation usb.