- Enter BIOS with F2 and configure:
- "System Configuration" > "SATA Operation": "AHCI"
- "Secure Boot" > "Secure Boot Enable": "Disabled"
Enter boot menu with F12, and boot the Arch USB medium
loadkeys us
setfont latarcyrheb-sun32
wifi-menu
timedatectl set-ntp true
https://wiki.archlinux.org/index.php/Securely_wipe_disk#Random_data
cgdisk /dev/nvme0n1
- 1GB EFI System
- 16GB Swap
- Rest Linux Filesystem
mkfs.fat -F32 /dev/nvme0n1p1 cryptsetup luksFormat /dev/nvme0n1p3 cryptsetup open /dev/nvme0n1p3 luks mkfs.btrfs -L luks /dev/mapper/luks mkswap /dev/nvme0n1p2
mount -t btrfs /dev/mapper/luks /mnt btrfs subvolume create /mnt/@root btrfs subvolume create /mnt/@var btrfs subvolume create /mnt/@home btrfs subvolume create /mnt/@snapshots
umount /mnt mount -o subvol=@root /dev/mapper/luks /mnt mkdir /mnt/{var,home,.snapshots} mount -o subvol=@var /dev/mapper/luks /mnt/var mount -o subvol=@home /dev/mapper/luks /mnt/home mount -o subvol=@snapshots /dev/mapper/luks /mnt/.snapshots
mkdir /mnt/boot mount /dev/nvme0n1p1 /mnt/boot
vi /etc/pacman.d/mirrorlist
pacstrap /mnt base sudo
genfstab -L /mnt >> /mnt/etc/fstab
For all btrfs filesystems consider:
- Change "relatime" to "noatime" to reduce wear on SSD
- Adding "discard" to enable continuous TRIM for SSD
- Adding "autodefrag" to enable online defragmentation
arch-chroot /mnt
rm /ect/localtime ln -s /usr/share/zoneinfo/America/Toronto /etc/localtime hwclock --systohc
vi /etc/locale.gen # Uncomment desired locales, e.g. "en_US.UTF-8", "de_CH.UTF-8" locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
echo 'KEYMAP=us' > /etc/vconsole.conf echo 'FONT=latarcyrheb-sun32' >> /etc/vconsole.conf
echo '' > /etc/hostname
echo '127.0.0.1 localhost' >> /etc/hosts echo '::1 localhost' >> /etc/hosts echo '127.0.1.1 .localdomain ' >> /etc/hosts
passwd
useradd -m -g users -G wheel -s /bin/bash passwd echo ' ALL=(ALL) ALL' > /etc/sudoers.d/
vi /etc/mkinitcpio.conf
Change: HOOKS="base systemd autodetect modconf block keyboard sd-vconsole sd-encrypt filesystems
mkinitcpio -p linux
bootctl --path=/boot install
pacman -S intel-ucode or pacamn -S amd-ucode
Get luks-uuid with: cryptsetup luksUUID /dev/nvme0n1p2
/boot/loader/entries/arch.conf
---
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options rw luks.uuid=<uuid> luks.name=<uuid>=luks root=/dev/mapper/luks rootflags=subvol=@root
---
---
/boot/loader/loader.conf
---
default arch
---
exit reboot