---
# System prepended metadata

title: Arch install

---

# Arch install

Verify EFI boot
```
ls /sys/firmware/efi/efivars/
```

Set time
```
timedatectl set-ntp true
timedatectl set-timezone Asia/Hong_Kong
```

partition `cfdisk` and mount the disk with `mount /dev/sdx /path`
```
mkfs.ext4 # root path, home path
mkswap # swap partition
mkfs.fat -F 32 # boot sector
```

rank mirror (optional)
```
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
pacman -S pacman-contrib
rankmirrors -n 10 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist
```

Install kernel
```
pacstrap -i /mnt base base-devel linux linux-headers linux-firmware intel-ucode sudo nano neovim git networkmanager dhcpcd pipewire zsh curl wget
cp /etc/pacman.d/mirrorlist.bak /mnt/etc/pacman.d/mirrorlist.bak
```

Gen automount
```
genfstab -U /mnt >> /mnt/etc/fstab
```

Into installed arch
```
arch-chroot /mnt
```

Set root password
```
passwd
```

Add user
```
useradd -m name
passwd name
usermod -aG wheel,storage,power name
```

sudoer (allow wheel to execute command)
Also add Defaults timestamp_timeout=5
```
EDITOR=nano visudo
```

Set locale
```
nano /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8
```

Set host in hosts
  - 127.0.0.1 localhost
  - ::1 localhost
  - 127.0.1.1 hostname.localdomain localhost
```
echo hostname > /etc/hostname
nano /etc/hosts
```

Set timezone
```
ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime
hwclock --systohc
```

Make bootloader, enable GRUB OS PROBER(`/etc/default/grub`, last line, enable)
```
mkdir /boot/efi
mount /dev/sda1 /boot/efi
pacman -S grub efibootmgr dosfstools mtools os-prober
nano /etc/default/grub
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
grub-mkconfig -o /boot/grub/grub.cfg
systemctl enable dhcpcd.service
systemctl enable NetworkManager.service
exit
umount -lR /mnt
reboot
```

Install KDE (enable parallel pacman first)
`sudo nano /etc/pacman.conf`
```
pacman -Sy xorg xorg-xinit plasma-desktop sddm alacritty pipewire
echo "exec startkde" > ~/.xinitrc
sudo systemctl enable --now sddm.service
reboot
```

Install other stuff
```
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si
sudo pacman -S libreoffice-still docker code firefox tmux xouralnpp ranger alacritty openssh openssl discord mesa lib32-mesa wqy-zenhei flameshot
yay -S ttf-jetbrains-mono tts-meslo-nerd-font-powerlevel10k ttf-work-sans ttf-win10 papirus-icon-theme noto-fonts-cjk noise-suppression-for-voice code-marketplace 
```

Not sure needed
```
yay -Sy
yay -S wine-staging winetricks
yay -S giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader cups samba dosbox
yay -Rdd pulseaudio
yay -S pipewire pipewire-pulse pipewire-jack pipewire-alsa wireplumber
```