I've borrowed very, very heavily from Mattias Lundberg's github gist.
The official installation guide contains a more verbose description.
Download the archiso image from the archlinux download page.
Copy to a usb-drive.
dd if=archlinux.img of=/dev/sdX bs=4M oflag=sync status=progress
Boot from the usb. If the usb fails to boot, make sure that secure boot is disabled in the UEFI/BIOS configuration.
Create partitions.
cfdisk /dev/sdX
1 100MB EFI partition
2 250MB Boot partition
3 100% size partiton
Format partitions.
mkfs.vfat -F32 /dev/sdX1
mkfs.ext4 /dev/sdX2
mkfs.ext4 /dev/sdX3
Mount the new system.
mount /dev/sdX3 /mnt
mkdir /mnt/boot
mount /dev/sdX2 /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sdX1 /mnt/boot/efi
I use swap files rather than partitions.
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
Install the base system. Included are the packages that I like. Modify at will.
pacstrap -i /mnt base base-devel grub-efi-x86_64 efibootmgr linux acpi acpid amd-ucode (or intel-ucode) linux-firmware nano networkmanager
'install' fstab.
genfstab -Up /mnt >> /mnt/etc/fstab
Change relatime on all non-boot partitions to noatime (reduces wear if using an SSD).
Enter the new system.
arch-chroot /mnt /bin/bash
Setup system clock.
ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime
hwclock --systohc
Set the hostname.
echo MYHOSTNAME > /etc/hostname
Update locale.
echo LANG=en_US.UTF-8 >> /etc/locale.conf
nano -wc /etc/locale.gen` use the locale from where you are located
Set password for root.
passwd
Add real user.
useradd -m -g users -G wheel,storage,power -s /bin/bash MYUSERNAME`
passwd MYUSERNAME
Lets make your new user able to use sudo.
Find the line that reads "Uncomment to allow members of group wheel to execute any command." and uncomment it.
nano -wc /etc/sudoers
Configure mkinitcpio with modules needed for the initrd image.
nano -wc /etc/mkinitcpio.conf
Regenerate initrd image.
mkinitcpio -p linux
Setup grub.
grub-install
grub-mkconfig -o /boot/grub/grub.cfg
Start services.
systemctl enable Network-Manager acpid
Normally at this point I install a desktop environment. I'll do that part later. Maybe.
Exit new system and go into the cd shell.
exit
Unmount all partitions.
umount -R /mnt
Reboot into the new system, don't forget to remove the cd/usb.
reboot