This is basically the arch install wiki pared down and personalized.
Make sure you have an up-to-date arch iso. If not, download the official image and install on a USB:
# dd bs=4M if=path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync
ls /sys/firmware/efi/efivars
Wired connections (including dongles) will work OOB with dhcpcd
.
timedatectl set-ntp true
Identify devices: lsblk
Partition with: fdisk
Default Partition Scheme
Mount point | Partition | Partition Type | Size |
---|---|---|---|
/mnt/efi |
/dev/nvme0n1p1 |
EFI system | +512M |
/mnt |
/dev/nvme0n1p2 |
Linux | rest |
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
fallocate -l 1024m /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
mkdir -p /mnt/efi
mount /dev/nvme0n1p1 /mnt/efi
mount /dev/nvme0n1p2 /mnt
Make sure all partitions are mounted so they can be auto-gen'ed by genfstab
.
#1: http://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch
#2: http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch
# Essentials
pacstrap /mnt base linux linux-firmware
# Install if internet is fast. Good idea to install internet related packages now
pacstrap /mnt base-devel vim man-db man-pages texinfo dhcpcd wpa_supplicant iputils iw
genfstab -U /mnt >> /mnt/etc/fstab
# Add swapfile
echo "/swapfile none swap defaults 0 0" >> /mnt/etc/fstab
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
hwclock --systohc
Uncomment out relevant lines from /etc/locale.gen
...
#en_PH.UTF-8 UTF-8
#en_PH ISO-8859-1
#en_SC.UTF-8 UTF-8
#en_SG.UTF-8 UTF-8
#en_SG ISO-8859-1
en_US.UTF-8 UTF-8
en_US ISO-8859-1
#en_ZA.UTF-8 UTF-8
#en_ZA ISO-8859-1
#en_ZM UTF-8
#en_ZW.UTF-8 UTF-8
#en_ZW ISO-8859-1
...
locale-gen
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
Choose a name for the computer.
echo "myhostname" >> /etc/hostname
Modify /etc/hosts
with chosen name:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/mnt/efi --bootloader-id=GRUB
Install necessary microcode package before configuring grub:
pacman -S <intel/amd>-ucode
grub-mkconfig -o /boot/grub/grub.cfg
-
exit
-
umount -R /mnt
-
reboot