Arch Guide
About 2144 wordsAbout 7 min
2025-05-29
DISCLAIMER
This guide will not hold responsibility for any personal data loss or damages of any kind, proceed with personal judgement.
Installation guide
Note
Before starting, it's recommended to read the official installation guide and understand the major concepts.
Warning
This guide only works with UEFI/GPT Systems. For BIOS/MBR Systems, this guide will NOT work.
Part 1: Preparation
Prepare an unallocated free space for Arch (Recommended 80GB+)
Windows partitioning tool: diskmgmt.msc
Linux partition tool: GParted
If Dual-Booting with Windows: Take notes on the Windows EFI Partition Directory
Install the Arch mirror ISO from the official website, for country, selecting any mirror from the US
Write the ISO into a bootable USB using Rufus or Ventoy for multiple ISOs on the same USB. For reference, refer to Flashing Guide.
Reboot into system BIOS System and boot into the USB.
Note: Turn off secure boot
Part 2. Connect to the Internet
Use iwctl tool for internet connection.
- To ensure that the network adapter is successfully detected by the system, list the network devices available using
device listImportant
If not network adapter is shown, force shutdown and reboot. If problem persists, Arch is not for you.
- Proceed with station scanning:
station <device> scan
station <device> get-networks- For connection:
station <device_name> connect “<network_name>”- Check whether the internet connection is successfully established
ping archlinux.orgPart 3. Partitioning
Info
Both cfdisk and fdisk are available as tools for partitioning. In this guide, cfdisk would be used
List the hard drives and partition:
Take notes on the hard drive name.
# Examples: /dev/nvme0n1 /dev/sda...Run:
cfdisk /dev/<primary-hard-drive-name> # Example cfdisk /dev/nvme0n1.Search for the unallocated space designated for Arch
Essential Partitions:
EFI Partition
- If Dual-Booting with Windows, simply use the Windows EFI Partition, do not create another EFI partition as it may prevent Windows from booting
- If no EFI partition is available, partition at least 512MiB for EFI Partition.
- Press t for choosing the type of partition and select EFI System Partition
Swap Partition
- Computer Ram + 4 = Swap Partition Size. E.g. 16 GB ram + 4 = 20 GB
- Press t for choosing the type of partition and select Linux Swap
- Computer Ram + 4 = Swap Partition Size. E.g. 16 GB ram + 4 = 20 GB
Root Partition: Two Options
- Leave the rest of the partition for root partition
- Press t for choosing the type of partition and select Linux x86-64 root (/)
- Leave at least 30 GB for root and the rest for home
- Write the partitions
- Leave the rest of the partition for root partition
Formatting:
- To format the EFI partition run:
mkfs.fat -F 32 /dev/<efi_system_partition>Skip this step if you already have a EFI Partition
- To format the root partition run:
mkfs.ext4 /dev/<root_partition>- To format the swap partition run:
mkswap /dev/<swap_partition>- To format the home partition run:
mkfs.ext4 /dev/<home_partition>Mount System Partitions:
- To mount the root partition run:
mount /dev/root_partition /mnt- To mount the EFI partition run:
mount /dev/efi_partition /mnt/boot/efiIf directory does not exist make the directory:
mkdir /mnt/boot/efi- To enable the Swap partition run:
swapon /dev/swap_partition
Part 4. Installation
Run:
pacstrap -K /mnt base linux linux-firmware nano networkmanagerPart 5. System Configuration
To generate fstab with UUID (recommended) Run:
genfstab -U /mnt >> /mnt/etc/fstabChroot into the Arch System
- Run:This means that everything you install from now on will be saved onto your computer’s root partition hard disks. This is the root in your current Arch system inside your root partition.
arch-chroot /mnt
- Run:
Time:
Run
ln -sf /usr/share/zoneinfo/<Region>/<City>/etc/localtime # Example setting the timezone to Caracas, Venezuela: ln -sf /usr/share/zoneinfo/Americas/Caracas/etc/localtimeRun hwclock to generate /etc/adjtime:
hwclock --systohcImportant
This command assumes the hardware clock is set to UTC
Localization:
- edit
/etc/locale.genand uncommenten_US.UTF-8 UTF-8and other needed UTF-8 locales# Example: (Note: nano is an editor) nano /etc/locale.conf # Run to generate the locales locale-genCtrl + oand enter to save the changes andCtrl + xto exit
- edit
Initramfs:
"Creating a new initramfs is usually not required, because mkinitcpio was run on installation of the kernel package with pacstrap." -Archlinux.org
Run it if you have system encryption (Bitlocker)
mkinitcpio -P
Create locale.conf file
- Create directory
/etc/locale.conf# Example: (Note: nano is an editor) nano /etc/locale.conf - Type:
LANG=en_US.UTF-8Ctrl + oand enter to save the changes andCtrl + xto exit ::::
- Create directory
Part 6. Network Configuration
- Create the hostname file in /etc/hostname Eg. nano /etc/hostname
- Add your host name
- Complete the network configuration for the newly installed environment. That may include installing suitable network management software, configuring it if necessary and enabling its systemd unit so that it starts at boot.
systemctl enable NetworkManager
Part 7. Root Password
To create a root password, run:
passwdIf a normal user is desired, you can create another user by running:
useradd -m <user-name>To give the user a password, run:
passwd <user-name>Make user a superuser:
pacman -S sudo usermod -aG wheel,storage,power <user-name> EDITOR=nano visudoUncomment
%wheel ALL=(ALL) ALLand addDefaults timestamp_timeout=0directly underCtrl + oand enter to save the changes andCtrl + xtoInfo
For more information, reference to this Youtube Video at minute 21:11
Part 8 Bootloader
Choose and install a Linux-capable bootloader. If you have an Intel or AMD CPU, enable Microcode updates in addition.
# For Intel CPU: pacman -S intel-ucode # For AMD CPU: pacman -S amd-ucodeIn this guide, Grub would be used as a bootloader
# Install grub and efibootmgr: pacman -S grub efibootmgr # For Dual-Booting: pacman -S os-proberNote
If using
os-prober, edit/etc/default/gruband uncomment the last lineGRUB_DISABLE_OS_PROBER=falseRun
grub-install:grub-install --target=x86_64-efi --efi-directory= <EFI_partition_mount_directory> --bootloader-id=ArchMake sure that the EFI partition have enough storage, you can delete unwanted bootloaders by:
ls /boot ls /boot/EFI rm -rf /boot/<directory-of-bootloader>Now we want to create a config inside file the installed grub entry called “Arch” in the previous step
- Run
grub-mkconfig -o /boot/grub/grub.cfg
Info
Refer to this link if things gets complicated
- Run
Part 9. Reboot
Use nmcli to connect to network
# Show local network interface nmcli device # List nearby WIFI networks nmcli <device> wifi list # Connect to a WIFI network nmcli <device> wifi connect <SSID_or_BSSID> password <password>Perform system update:
sudo pacman -SyuInstall fastfetch
sudo pacman -S fastfetchRun fastfetch
Take picture and prove you’re a prestigious Arch user
Part 10. Post Installation
- Gnome
- Checkout our Gnome Guide
sudo pacman -S gnome - KDE Plasma
sudo pacman -S plasma-meta - Hyprland
- For installation details follow the official wiki page
- Gnome
Audio (Pulse Audio vs. Pipewire)
- PipeWire: (Recommended for Most Users)
- Modern features (Bluetooth LDAC, pro audio support)
- Screen recording (OBS, Wayland screencasting)
- Use JACK applications (DAWs like Ardour, REAPER)
- Lower latency (audio production, gaming)
- Running Wayland (better integration)
sudo pacman -S pipewire pipewire-pulse pipewire-jack wireplumber systemctl --user enable --now pipewire pipewire-pulse wireplumber- Pulse Audio: (For older applications)
- Using very old applications (with hardcoded PulseAudio support)
- Prefer simplicity over advanced features
- Troubleshooting PipeWire issues (fallback option)
- Running Xorg-only systems without Wayland needs
sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol systemctl --user enable --now pulseaudio- PipeWire: (Recommended for Most Users)
Yay Installation - Yay is a package manager that allows the user to access the AUR repository
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
ROG Asusctl
Repo
sudo pacman-key --recv-keys 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
sudo pacman-key --finger 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
sudo pacman-key --lsign-key 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
sudo pacman-key --finger 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35- Edit
/etc/pacman.confand add
[g14]
Server = https://arch.asus-linux.org- Perform a full system update
sudo pacman -SuyAsusctl - custom fan profiles, anime, led control etc.
pacman -S asusctl power-profiles-daemon
systemctl enable --now power-profiles-daemon.serviceSuperfxctl - graphics switching
pacman -S supergfxctl switcheroo-control
systemctl enable --now supergfxd
systemctl enable --now switcheroo-controlROG Control Center - GUI
pacman -S rog-control-centerCustom Kernel
pacman -Sy linux-g14 linux-g14-headers
grub-mkconfig -o /boot/grub/grub.cfg- Run
unname -rit should output:
# -g14 is the important one
6.8.1-arch1-g14- If you are using a custom kernel use the
nvidia-dkmspackage for nvidia drivers.
sudo pacman -S nvidia-dkmsKnown errors and fixes
Important
Note that all fixes below may vary depending on the user's specific situation.
Make sure to identify the error before copying the commands listed under.
Yay Error: error while loading shared libraries
- This happens when your Yay repo is very outdated compared to your system, usually happens after a system update, to fix this, simply reinstall yay:
# Remove yay for update
sudo pacman -R yay
# Install yay from git
cd /tmp
git clone https://aur.archlinux.org/yay-bin.git
cd yay bin
makepkg -si
cd ..
# Clean /tmp folder
rm -rf yay-bin Pacman Error: mirror not responding
- This happens when your list of mirrors are too slow or are outdated, this can be fixed by regenerating a list of faster mirrors under the
/etc/pacman.d/mirrorlistfile. - This can be done by
reflector, a package that automatically sorts and generates the mirrors by rates and saves on the/etc/pacman.d/mirrorlistfile.
# Install reflector
sudo pacman -S reflector
# Example Template:
sudo reflector --country <country_name> --latest <number of servers from the latest> --protocol https --sort rate --save /etc/pacman.d/mirrorlist
# Example Use:
sudo reflector --verbose --sort rate -l 75 --save /etc/pacman.d/mirrorlist Signature from "" is unknown trust
# Example fail message:
error: PackageName: signature from "User <email@archlinux.org>" is invalid
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.- "This occurs because the packager's key used in the package package-name is not present and/or not trusted in the local pacman-key gpg database" - archlinux.org
Fix can be done by:
pacman-key refresh-keys- If error persists, try regenerating the list of keys by the following:
# Remove the keys
sudo rm -r /etc/pacman.d/gnupg
# Re-add the default keys
sudo pacman-key --init
sudo pacman-key --populate Pacman Error: failed to synchronize all databases (unable to lock database)
sudo rm /var/lib/pacman/db.lck Pacman Error: failed to commit transaction (invalid or corrupted package)
- This happens when the keyring is outdated due to the lack of use or update of the system. The cause of this error is that it fails to check the package integrity using the PGP signature. To fix this error, simply update the keyrings by:
pacman -S archlinux-keyringNoob corner (commonly asked questions)
How to install .tar.zst files through terminal?
sudo pacman -U <directory-of-extracted-package.pkg.tar.zst>Uninstall:
# Search for package name
pacman -Q | grep "<package_name>"
# Removing while keeping dependencies (recommended)
sudo pacman -R package_name
# Removing unused dependencies
sudo pacman -Rsn package_nameHow to revert pacman system update?
Check for cached packages (old packages)
ls /var/cache/pacman/pkg/ | grep <package-name>Downgrade specific packages
sudo pacman -U /var/cache/pacman/pkg/<package-name>-<old-version>.pkg.tar.zstIf cache was cleared, use downgrade from aur
yay -S downgrade
sudo downgrade <package-name>Last resort, revert all recent updates. The following line reverts the last 10 packages being updated
sudo pacman -U $(ls -t /var/cache/pacman/pkg/*.pkg.tar.zst | head -n 10)How to improve download speed?
Install reflector package
sudo pacman -S reflectorReflector is a package designed to filter and replace existing pacman mirrorlists
# Example Template:
sudo reflector --country <country_name> --latest <number of servers from the latest> --protocol https --sort rate --save /etc/pacman.d/mirrorlist
# Example Use:
sudo reflector --verbose --sort rate -l 75 --save /etc/pacman.d/mirrorlistSystem Maintainance
Clearingpacman cached files to free up file system space
Refer to the official ArchWiki for more details.
- Install
pacman-contribpackage
sudo pacman -S pacman-contrib- Run
# Removes all older unused packages sudo paccache -r # Removes all uninstalled packages sudo pacman -Sc- Install
Cool tricks
- Add the line
ILoveCandyunder /etc/pacman.conf will give you a cooler download bar!
Contributors
Changelog
cf4be-Corrected Arch Guide for more precise and modern practiceson35118-Grammar and Spell Checks for the entire Webon5810a-Cleaner way of displaying contributors in articles.onde685-Migrating to permalinks for article references.onda9f9-Enhance Arch guide formatting and update instructions for secure boot and CPU microcodeona6ccb-Fix formatting issues in error messages and FAQs in Arch guideon4c5a5-Reformatted Arch pageon4d9e4-Set Arch and Debian guides to published statuson26c5a-Restructuring tags.on4fdc4-Added system maintainence on Arch Guideon0072f-Arch page reformattingon06f80-Better & more consistent iconson6f292-Enhance markdown formatting for consistency across documentationond4a77-Remove co-author card placeholders from Arch, Debian/Ubuntu, and Fedora guidesonc2d6c-arch fixone2f6b-Refactor guide authorship sections: update titles from "Maintainer" to "Author(s)" and "Contributors" to "Co-author(s)" across multiple guidesone3681-Vuepress guide completed, Added code-tree to guidlines, arch guide modified.on6e25d-arch guideon2fc68-Update TODO noteon9c0ab-Refactor guides for improved formatting and clarity across Vuepress, Essentials, Popular, Arch, and Fedora documentationonfbbc3-Arch bug fixed, Vuepress guide updatedon9d94b-maintainers tag added and guideline page addedoncca8b-Fixed broken archon573fd-Tagging/untagging.on4d89a-typoon62c4b-Automating steps.on20bcd-Change our-team desc and added noob corner to arch.mdon0e612-Cool trickonaa1e5-Cool trick section added on arch.mdonb2539-Edited arch.md, fix homepage become contributor link, started linux guide home pageonf101c-Rough formatting of Arch guideon41f78-deleting legacy metadataon362e5-Moved to linux-guidesonddcec-Batch metadata editingon63f60-Draft ongoingon20414-Draftson