Install Arch
# medium
setfont ter-928n
# large
setfont ter-132b
- connect to network
iwctl
# connect to network
device list
station wlan0 scan
station wlan0 get-networks
station wlan0 connect "Network Name"
# exit iwctl
exit
# cpmmet to network
iwctl --passphrase <pwd> station wlan0 connect <ssid>
- set time-zone
# list timezones
timedatectl list-timezones
# type / to start searching
# set timezone
timedatectl set-timezone America/Toronto
- partition table
# list devices
# note down <os-drive>
# ex. /nvme0n1 or /sda1
lsblk
fdisk -l # for more details
# start fdisk on <os-drive>
fdisk /dev/<os-drive>
# type following in order
# (note) q ENTER to quit, nothing will be saved until w ENTER
# create new label
g
ENTER
# partitions (1. 1GB boot and 2. rest)
n ENTER ENTER ENTER +1G ENTER
t ENTER 1 ENTER
n ENTER ENTER ENTER ENTER
# verify
p
# write and quit
w ENTER
# base - bare minimum
# linux - kernal
# linux-firmware - more device drivers
pacstrap /mnt base linux linux-firmware
# fetch the disk mounting points
genfstab -U /mnt >> /mnt/etc/fstab
# verify it matches step 9
cat /mnt/etc/fstab
# move to system
arch-chroot /mnt
- install important packages
# base-devel - package building tools
# sudo - privilege
# grub efibootmgr - bootloader
# btrfs-progs - utilites for file system management
# intel-ucode # or amd-ucode for amd cpus
# networkmanager - ethernet and wifi
# reflector - manage pacman mirrors
# git curl wget - download files
# vim - text editor
# man-db man-pages - manuals for commands
pacman -S base-devel sudo grub efibootmgr btrfs-progs intel-ucode networkmanager reflector git curl wget vim man-db man-pages
- setup timezone and locale
# set timezone and sync hardware clock
# ex. <region>/<city>: America/Toronto
ln -sf /usr/share/zoneinfo/<region>/<city> /etc/localtime
hwclock --systohc
# set language
vim /etc/locale.gen
# look for UTF-8 version
# use / to search, then ENTER to go to line, arrow keys to navigate
# use i to edit, then delete # beside the desired line to uncomment
# use ESC :wq to save and quit
# ex. sequence: /en_US ENTER i BACKSPACE ESC :wq ENTER
locale-gen
# use the same line that was uncommented
echo "LANG=en_US.UTF-8" > /etc/locale.conf
- setup locale and network
# set hostname
# ex. "jimbo"
echo "<host-name>" > /etc/hostname
# create host file entries, add following lines
vim /etc/hosts
# 127.0.0.1 localhost
# ::1 localhost
# 127.0.1.1 <host-name>
# set root password
passwd
# add new user
# ex. <user>: bimbo
useradd -mG wheel <user>
passwd <user>
EDITOR=vim visudo
# find the line saying:
# uncomment to allow members of group wheel to execte any command
# remove the # from the line right below
- finishing up
# update mkinitcpio config
vim /etc/mkinitcpio.conf
# add btrfs to modules
# ex. MODULES=(btrfs)
mkinitcpio -P
# setup grub
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
# enable network manager
systemctl enable NetworkManager
ping google.ca # test
# Ctrl + C to quit
# exit and reboot
exit
umount -R /mnt
reboot
# login with your created user
# enable time sync
timedatectl set-ntp true
# if on wifi
nmcli device wifi list # list networks
nmcli device wifi connect <SSID> # connect to network
# update system
sudo pacman -Syu
Arch is installed and ready to use. Continue installing features and configuring them.
Continue Setting Up
- pacman
- pacman wrappers
- ssh and firewall (optional)
- fish shell
- nvidia drivers (if using nvidia gpu)
- user directories
- greeter
paru -S greetd-tuigreet
sudo vim /etc/greetd/config.toml
# copy this and fill in username
[terminal]
vt = 1
[default_session]
command = "tuigreet --asterisks --time --remember --theme border=magenta;text=cyan;prompt=green;time=red;action=blue;button=yellow;container=black;input=red --cmd Hyprland"
user = "<username>"
# start greeter service
sudo systemctl enable greetd
sudo systemctl start greetd