Arch Linux Installation and Post-Install Setup
After using Fedora for years, I wanted something lighter and more customizable. Arch Linux offers a minimal, DIY approach with no bloat and full control.
1. Pre-Installation
Download Arch Linux ISO and create a bootable USB:
sudo dd if=/path/to/arch.iso of=/dev/sdX status=progress
#Boot into the system and test internet:
ping -c 3 google.com2. Partitioning
#Check disks:
fdisk -l
#Or use:
cfdisk /dev/sda
#Format partitions:
mkfs.ext4 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda23. Install Base System
#Mount partition:
mount /dev/sda1 /mnt
#Install base packages:
pacstrap -i /mnt base base-devel
#Generate fstab:
genfstab -U /mnt >> /mnt/etc/fstab
#Verify:
nano /mnt/etc/fstab
#Chroot:
arch-chroot /mnt4. Locale and Time
#Edit locale:
nano /etc/locale.gen
#Uncomment:
en_US.UTF-8 UTF-8
#Run:
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
#Set timezone:
ln -sf /usr/share/zoneinfo/Asia/Kathmandu /etc/localtime
hwclock --systohc5. Package Manager Setup
#Edit config:
nano /etc/pacman.conf
#Enable:
[multilib]
Include = /etc/pacman.d/mirrorlist
#Update:
pacman -Sy6. Users and Permissions
#Set root password:
passwd
#Create user:
useradd -m -G wheel -s /bin/bash your_username
passwd your_username
#Install sudo:
pacman -S sudo
#Enable sudo:
EDITOR=nano visudo
#Uncomment:
%wheel ALL=(ALL) ALL7. Bootloader
#Install GRUB:
pacman -S grub
grub-install --target=i386-pc /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg8. Finish Installation
exit
umount -R /mnt
reboot9. Network Setup
ip link
#Enable network:
systemctl enable dhcpcd
systemctl start dhcpcd
#Test:
ping -c 3 google.com10. Install GUI (Xorg)
pacman -S xorg-server xorg-xinit mesa
#Input drivers:
pacman -S xf86-input-synaptics
#Test GUI:
pacman -S xorg-twm xorg-xclock xterm
startx11. Desktop Environment
#Install LXDE:
pacman -S lxde lxdm
#Enable display manager:
systemctl enable lxdm
systemctl start lxdm12. Essential Applications
pacman -S wget git firefox vlc gimp file-roller unzip13. Development Stack (Optional)
#Install Apache:
pacman -S apache
systemctl enable httpd
systemctl start httpd
#Install MySQL:
pacman -S mysql
systemctl start mysqld
mysql_secure_installation
#Install PHP:
pacman -S php php-apache14. Network Manager (WiFi)
pacman -S networkmanager network-manager-applet
systemctl enable NetworkManager
systemctl start NetworkManager15. NTFS Support
pacman -S ntfs-3gNotes
- Arch is minimal by design
- Always double-check partitions and configs
- Keep backups before running destructive commands