Note
ONLY UEFI
iwctl
device list
station wlan scan
station wlan0 get-networks
station wlan0 connect "WIFINAME"
station wlan0 show
No need (Should auto connect)
ping google.com
If not working
rm /etc/resolv.conf echo "nameserver 1.1.1.1" > /etc/resolv.conf
Tip
If ping shows “temporary failure in name resolution”, it’s usually a DNS issue — fixing /etc/resolv.conf (as shown above) solves it.
cfdisk
Choose "GPT" from the table Make partitions -
- Allocate atleast 300M for a partition (for boot).
- Allocate atleast ~8G for second partition (for system).
- Allocate atleast ~1G for third partition (for swap - optional but recommended). ALSO DO NOT FORGET to [WRITE] each one PARTITION BEFORE EXITING cfdisk
lsblk
You have to find the partition labels, For example -
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 8.3G 0 disk ├─sda1 8:1 0 300M 0 part <--- boot (*) ├─sda2 8:2 0 1G 0 part <--- swap (%) └─sda3 8:3 0 7G 0 part <--- system (&) ^^^^ └└└└── these are paritions label
mkfs.ext4 /dev/sdX
for the system (&)
mkfs.fat -F 32 /dev/sdX
for the boot (*)
mkswap /dev/sdX
for the swap (%)
blkid
Just to confirm if partitions formatted correctly or not, Find system as TYPE="ext4", Find boot as TYPE="vfat", Find swap as TYPE="swap".
mount /dev/sdX /mnt
for system
mkdir -p /mnt/boot/efi
for boot
mount /dev/sdX /mnt/boot/efi
mount boot partition to EFI dir
swapon /dev/sdX
lsblk
Check again, And it should look something like this-
[root@archiso] NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 8.3G 0 disk ├─sda1 8:1 0 300M 0 part /mnt/boot/efi <--- nice! ├─sda2 8:2 0 1G 0 part [SWAP] <--- nice! └─sda3 8:3 0 7G 0 part /mnt <--- and nice!
pacstrap /mnt base base-devel linux linux-firmware sudo networkmanager nano grub efibootmgr
Installing essential packages in Arch Mount
genfstab /mnt > /mnt/etc/fstab
arch-chroot /mnt
Tip
Once you’re inside the chroot, you’re effectively using your installed Arch system — commands now affect your new OS, not the live ISO.
ln -sf /usr/share/zoneinfo/<continent>/<region> /etc/localtime
Example:
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
nano /etc/locale.gen
uncomment en_US.UTF-8 for English (Or Find your Region in It)
echo "LANG=en_US.UTF-8" > /etc/locale.conf
Same for here, Replace your Region with "en_US.UTF-8"
locale-gen
nano /etc/hostname
name the system/computer
passwd
useradd -m -G wheel -s /bin/bash <username>
passwd <username>
EDITOR=nano visudo
Uncomment the first coming line starting from "%wheel ALL=(ALL) NOPASSWD: ALL" and save, This is for anyone part of wheel group can run sudo commands
systemctl enable NetworkManager
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
exit
to return to the live ISO environment
umount -R /mnt
reboot
sudo pacman -Syu
For updating System and Packages
sudo pacman -S <desktop-environment> <display-manager>
For GUI (Graphical User Interface)
-
xfce4 xfce4-goodies<-- lightweight with decent GUI -
lightdm lightdm-gtk-greeter<-- recommended display manager for XFCE -
lxqt lxqt-qtplugin<-- lighter than XFCE, Qt-based -
lightdm lightdm-gtk-greeter<-- recommended DM (or sddm optional) -
gnome<-- full-featured, modern but heavy -
gdm<-- official GNOME display manager -
plasma kde-applications<-- very customizable, modern, resource-heavy -
sddm<-- official KDE display manager -
cinnamon<-- good balance of features and usability -
lightdm lightdm-gtk-greeter<-- works well with Cinnamon
sudo pacman -S <terminal> <webbrowser>
xfce4-terminal<-- default terminal for XFCE, lightweight and stablelxterminal<-- default for LXDE/LXQt, very lightgnome-terminal<-- feature-rich, matches well with GNOMEkonsole<-- KDE’s terminal, very customizablexterm<-- basic X terminal, ultra-lightweighturxvt<-- ultra-light and fast, customizable via .Xresourcesalacritty<-- GPU-accelerated, very fast, modern (needs config)kitty<-- GPU-based, feature-rich with ligature supporttilix<-- tiling terminal emulator with session savingterminator<-- split-screen terminal with lots of features
firefox<-- default on many distros, open-source and privacy-respectingchromium<-- open-source base of Google Chrome, less proprietarylibrewolf<-- Firefox fork with enhanced privacy defaults (AUR)epiphany<-- GNOME Web browser, minimal and integratedfalkon<-- KDE browser, light and Qt-based
sudo systemctl enable --now lightdm
for LightDM
sudo systemctl enable --now gdm
for GDM
sudo systemctl enable --now sddm
for SDDM
curl<-- Download files or fetch web datalsd<-- Modern 'ls' command with icons and better formattingranger<-- Terminal file manager with VI-style navigationbtop<-- Resource monitor (CPU, RAM, Disk, Network)tldr<-- Simplified man pages (shows practical examples)clamav<-- Scan files and folders for virusesbuku<-- Command-line bookmark managerchafa<-- Convert images into terminal graphics
LUCKYS1NGHH
Written with ❤️ for learners installing Arch manually.
