Arch Linux Installation Notes
NOTE
These are the base notes displayed at the top of the documentation.
Only refer to them if you missed something in the earlier guide.
Avoid following these legacy notes directly.
Preparation in the ISO Environment
Set Keymap
loadkeys us
List Existing Partitions
lsblk
Partition Disk (Erase All)
Usegdisk
to prepare the disk:gdisk /dev/nvme0n1
orgdisk /dev/sda
- Enter
x
to open expert mode - Enter
z
to delete all partitions
- Enter
Reboot System
reboot
Set Keymap Again
loadkeys us
List Partitions Again
lsblk
Create Partitions with cfdisk
cfdisk /dev/nvme0n1
orcfdisk /dev/sda
- Partition 1:
1G
, EFI - Partition 2:
4G
, Linux swap - Partition 3: Remaining space, Linux filesystem
- Partition 1:
Format Partitions
mkfs.fat -F 32 /dev/nvme0n1p1
ormkfs.fat -F 32 /dev/sda1
mkswap /dev/nvme0n1p2
ormkswap /dev/sda2
swapon /dev/nvme0n1p2
orswapon /dev/sda2
mkfs.ext4 /dev/nvme0n1p3
ormkfs.ext4 /dev/sda3
Mount Partitions
mount /dev/nvme0n1p3 /mnt
ormount /dev/sda3 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/boot
ormount --mkdir /dev/sda1 /mnt/boot
mount --mkdir /dev/sda1 /mnt/media
ormount --mkdir /dev/sda1 /mnt/media
Install Base System
pacstrap -k /mnt base base-devel linux linux-firmware sof-firmware linux-headers nano networkmanager grub efibootmgr intel-ucode bash-completion
Generate fstab
genfstab -U /mnt >> /mnt/etc/fstab
Chroot into New System
arch-chroot /mnt
Configuration in the New System
Enable NetworkManager
sudo systemctl enable NetworkManager
Configure pacman [OPTIONAL]
nano /etc/pacman.conf
- Enable
ILoveCandy
,ParallelDownloads
, andMultilib
- Enable
- Update Package Database
pacman -Syy
Set Timezone
ln -sf /usr/share/zoneinfo/Asia/Kathmandu /etc/localtime
[ChangeAsia/Kathmandu
to your timezone]Synchronize Hardware Clock
hwclock --systohc
Configure Locale
- Edit locale file:
nano /etc/locale.gen
- Uncomment
en_US.UTF-8
[Changeen_US.UTF-8
to your locale]
- Uncomment
- Generate locale:
locale-gen
- Set locale:
echo "LANG=en_US.UTF-8" > /etc/locale.conf
[Changeen_US.UTF-8
to your locale]
- Edit locale file:
Set Hostname
echo "arch" > /etc/hostname
Set Keymap
echo "KEYMAP=us" > /etc/vconsole.conf
[Changeus
to your keymap]Create User
useradd -m -g wheel,power,storage,video,audio -s /bin/bash yourusername
Set User Password
passwd yourusername
Edit sudoers File
EDITOR=nano visudo
- Uncomment
%wheel ALL=(ALL) ALL
- Uncomment
Additional Installations
Nvidia Drivers
Install Drivers
pacman -S nvidia-dkms libglvnd nvidia-utils opencl-nvidia nvidia-settings
Configure mkinitcpio
- Edit configuration:
nano /etc/mkinitcpio.conf
- Add
nvidia nvidia_modeset nvidia_uvm nvidia_drm
toMODULES
- Add
- Edit configuration:
Update Grub Configuration
- Edit grub settings:
nano /etc/default/grub
- Add
nvidia_drm.modeset=1
toGRUB_CMDLINE_LINUX_DEFAULT
- Add
- Rebuild initramfs:
mkinitcpio -P
- Edit grub settings:
Reboot System
GRUB Bootloader
Install GRUB
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --removable
Generate GRUB Configuration
grub-mkconfig -o /boot/grub/grub.cfg
Exit Umount and Reboot
exit
umount -R /mnt
reboot
PipeWire (Audio Server)
Install PipeWire
sudo pacman -S lib32-pipewire pipewire pipewire-alsa pipewire-audio pipewire-jack pipewire-pulse gst-plugin-pipewire wireplumber rtkit
Add User to rtkit Group
sudo usermod -a -G rtkit $USER
Enable PipeWire Services
systemctl --user enable pipewire pipewire-pulse wireplumber
Installing Desktop Environments (DE)
GNOME
Install GNOME and GDM
sudo pacman -S gnome gnome-tweaks gdm gst-libav
Set Keymap
sudo localectl set-keymap de-latin1
Enable GDM
sudo systemctl enable gdm
Reboot System
reboot
i3wm
Clone Dotfiles Repo
git clone https://github.com/justus0405/i3wm-dotfiles.git
Navigate to Script Directory
cd i3wm-dotfiles/src/
Make Script Executable
chmod +x install.sh
Run Install Script
./install.sh
DWM
Clone DWM Repo
git clone https://github.com/harilvfs/dwm
Install DWM
cd dwm
sudo make clean install
Hyprland
Recommended Setup
Use one of these repositories for a seamless setup:These repositories provide a ready-to-use Hyprland environment.