Download
Installation Notes
Initial
EFI Entry Wipe
efibootmgr -v
efibootmgr -b 0000 -B
efibootmgr -b 0001 -B
efibootmgr -O
Drive Wipe
lsblk
sgdisk --zap-all '/dev/sda'
dd if='/dev/zero' of='/dev/sda'
reboot
Test Internet
Wireless Connection
iw dev is used to find the wireless interface name
If single wireless interface exists, no need to specify it
iw dev
wifi-menu -o 'wlp3s0'
Enable SSH
Allows installation over SSH
ifconfig shows the IP address
Connect with the username root
ip addr
passwd
systemctl start 'sshd'
Synchronize Time
timedatectl set-ntp 'true'
Disk Partitioning
Install
Update Mirrorlist
wget 'https://www.archlinux.org/mirrorlist/?country=US&protocol=https&ip_version=4' -O '/etc/pacman.d/mirrorlist'
nano '/etc/pacman.d/mirrorlist'
Easy Update Mirrorlist
wget 'https://www.archlinux.org/mirrorlist/?country=US&protocol=https&ip_version=4' -O '/tmp/mirrorlist' && sed -i 's/#Server/Server/g' '/tmp/mirrorlist' && mv '/tmp/mirrorlist' '/etc/pacman.d/mirrorlist'
Install
pacstrap -i '/mnt' 'base' 'base-devel'
Configuration
fstab
genfstab -L '/mnt' >> '/mnt/etc/fstab'
chroot
Time Zone
ln -s '/usr/share/zoneinfo/America/New_York' '/etc/localtime'
hwclock --systohc --utc
Locale
Set locale.gen
Set locale.conf
echo LANG='en_US.UTF-8' > '/etc/locale.conf'
Easy .conf and .gen Set
sed -i 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' '/etc/locale.gen' && echo LANG='en_US.UTF-8' > '/etc/locale.conf'
Generate
Hostname
echo 'x' > '/etc/hostname'
Pacman
Uncomment Color and TotalDownload
Uncomment [multilib] and its following Include line on 64-bit installs if multilib is desired
Add ILoveCandy under Misc options
nano '/etc/pacman.conf'
pacman -Syyuu
NetworkManager
pacman -S 'networkmanager'
systemctl enable 'NetworkManager'
F2FS
OpenSSH
Intel Microcode
Root Password
Create User
useradd -m -G 'wheel' -s '/bin/bash' 'espionage724'
passwd 'espionage724'
chfn 'espionage724'
Enable SSH
pacman -S 'openssh'
nano '/etc/ssh/sshd_config'
PermitRootLogin no
systemctl enable 'sshd.socket'
sudo
EDITOR='nano' visudo
%wheel ALL=(ALL) ALL
Nano as default editor
nano '/etc/sudoers.d/nano'
Defaults editor = /usr/bin/nano
Easy Defaults editor
echo 'Defaults editor = /usr/bin/nano' > '/etc/sudoers.d/nano'
Allow nano text wrapping
nano '/etc/nanorc'
set nowrap
Easy set nowrap
sed -i 's/# set nowrap/set nowrap/g' '/etc/nanorc'
Initramfs
Modules line is needed only if root partition is F2FS
Add lvm2 between block and filesystems hooks if using LVM
Add encrypt between block and filesystems hooks, but before lvm2 for encrypted root partition
Add COMPRESSION=cat to disable image compression
Options
nano '/etc/mkinitcpio.conf'
MODULES="f2fs crc32 libcrc32c crc32c_generic crc32c-intel crc32-pclmul"
HOOKS="base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck"
COMPRESSION=cat
Generate
Boot Loader
systemd-boot
Install
Entry
Add cryptdevice=/dev/sda2:lvm to options if encrypted
Change root= to /dev/mapper/arch-root if using LVM
Remove initrd /intel-ucode.img if not using an Intel processor
nano '/boot/loader/entries/linux-kernel.conf'
title Arch Linux (linux-kernel)
linux /vmlinuz-linux
initrd /initramfs-linux.img
initrd /intel-ucode.img
options root=/dev/sda2 rw quiet
Loader
nano '/boot/loader/loader.conf'
timeout 2
default linux-kernel
editor 0
GRUB
Install
pacman -S 'grub'
grub-install --target='i386-pc' '/dev/sda'
Settings
nano '/etc/default/grub'
GRUB_TIMEOUT 2
Finalize
grub-mkconfig -o '/boot/grub/grub.cfg'
Finalize
sync
exit
umount -R '/mnt'
poweroff
Continue
Notable Folders and Commands
Show CPU Frequency
grep 'MHz' '/proc/cpuinfo'
watch -n 0.1 grep \'cpu MHz\' '/proc/cpuinfo'
hdparm Secure Erase
lsblk
hdparm -I '/dev/sda' | grep 'not'
hdparm --user-master u --security-set-pass 'x' '/dev/sda'
hdparm --user-master u --security-erase 'x' '/dev/sda'