How to install Arch Linux step by step and get it working perfectly

Last update: 26/02/2026
Author Isaac
  • Arch Linux offers a very flexible installation based on a minimal base that the user expands according to their needs.
  • The process includes partitioning, local configuration, network, boot manager, and user creation.
  • Drivers, graphical environment, and gaming tools make Arch a powerful platform for everyday use and gaming.
  • Installers like archinstall and derivative distros make it easy to enjoy Arch without taking on all the manual complexity.

Step-by-step guide to installing Arch Linux

If you've been told that Arch Linux is wonderful but a pain to installThey're not far off the mark... but it's not so dramatic if you know where to start. Today you'll see how to go from a simple empty USB drive to having Arch installed, with a desktop, video drivers, and even ready for gaming, combining the classic method and modern tools like installation without depending on the terminal.

In this guide you will find both the Traditional manual installation from the terminal such as simplified options (official installer, scripts, and derivative distributions). We'll also cover concepts like UEFI, partitioning, BTRFS, GRUB, language and keyboard configuration, user creation, pacman optimization, and various ways to get your Linux system ready to play.

1. Download Arch Linux and prepare the bootable USB drive

The first thing is to get the Official Arch Linux ISO image, which can be downloaded from the Arch website (archlinux.org/downloadArch is a distribution rolling releaseSo even if you see a date in the file name, they are not "major versions" like in other distros, just snapshots of the system with all updates up to that day.

Once you have the ISO, you must Record it on a USB drive of at least 4 GB Creating a bootable USB drive. Copying it directly won't work: you need a program that generates a bootable USB drive by reading the contents of the ISO image and writing it correctly to the drive.

Install Arch without commands
Related article:
How to install Arch Linux without relying on the terminal

In Windows, a very convenient option is Rufus (Free and portable application). Simply select the USB device, click "Select" to choose the Arch Linux ISO, and let the application fill in the remaining fields. To begin the process, simply click on Start and wait a few minutes for the installation USB to be created.

In Linux, instead of using dd (which is easy to misuse and doesn't give many clues if something goes wrong), it's more advisable to use tools like windywhich usually has fewer problems with modern Linux ISOs. You simply create the USB drive with Ventoy and then copy the Arch ISO to the drive.

If you have downloaded the ISO from a GNU/Linux system and you have GnuPG Once installed, you can verify the signature to ensure the download is not corrupted or tampered with. This is done with a command like this: gpg –keyserver-options auto-key-retrieve –verify archlinux-version-x86_64.iso.sig, adapting the name to that of your file.

2. Start from the ISO and basic requirements

With the USB ready, play boot the computer from the USB driveIn the Arch boot menu, select the usual "Boot Arch Linux" option and wait a few seconds while the system loads into memory and places you in a console as a user. root.

Arch needs very little to function: just a 64-bit CPU and 512 MB RAMAlthough nowadays it's more sensible to have more memory. Internet access is also essential because many packages will be downloaded during installation, and it's convenient to use DHCP to obtain an IP address automatically; otherwise, you'll have to configure the network manually.

If your machine uses UEFIYou need to make sure you're booting in that mode and that the firmware partition is available. You can check this by listing the directory. /sys/firmware/efi/efivarsIf content appears and there is no error, you are in UEFI mode; otherwise, you are in BIOS/Legacy mode.

To verify that you have network connectivity, you can use tools such as ip or even ifconfig (if available) to view the interfaces and verify that an IP address has been assigned. Then, perform a ping google.com It helps you confirm that there is traffic going out to the Internet.

If you're using a wired connection, you usually won't need to do anything. If you're using Wi-Fi, the Arch ISO includes utilities such as iwctlWithin iwctl, you will typically list the adapter with device listYou'll scan networks, see the available SSIDs, and run something like station wlan0 connect NETWORK_NAME To connect, enter the password when prompted.

3. Configure keyboard, date, and time before installing

Working with the wrong keyboard layout is a hassle, so it's best to adjust this from the start. The command ls /usr/share/kbd/keymaps/**/*.map.gz It shows you all the existing distributions, and with loadkeys You apply the one you're interested in. For example, for a Spanish keyboard you can use loadkeys isWhereas if you're comfortable with the US map, you can leave it as is.

It is also highly recommended synchronize system time via the internet to avoid later problems with certificates, package updates, or network services. This is easily done with timedatectl set-ntp truewhich enables NTP synchronization. You can check the status with timedatectl status And if you want to adjust to a specific time zone, use timedatectl set-timezone Region/City (for example, Europe/Madrid).

At this point, many people consider activating Secure Boot or encrypt the disk. Following the more cautious approach of many Arch guides, it is common Do not configure secure boot or full encryption In a first installation, handling custom keys in UEFI can be tricky, and a mistake could render the system unusable. Encrypting the entire system also introduces complexity and some latency at startup. If you really need it later, you can always thoroughly review the documentation and proceed with caution.

4. Create and prepare the disk partitions

The next major section is partitioning. Before touching anything, it's advisable to list the existing disks with fdisk -l o lsblk to find out which device you want to install Arch on (for example, / Dev / sda o /dev/nvme0n1Sometimes it's a good idea to practice this whole process first on a virtual machine with VirtualBox to lose your fear without risking your main system.

  How to Enchant Things in Minecraft - You can enchant things in Minecraft at levels 1000, X, and infinite.

In systems with UEFIIt is common to create a GPT partition table and set up at least two partitions: a small partition EFI (for example, 512 MB) formatted as FAT32 and another large partition for the Linux system. In a typical example, we might have:

  • Partition 1: EFI type, size around 512 MB.
  • Partition 2Linux filesystem type, using the rest of the disk for the root.

If you work in BIOS/MBR, you can choose a different scheme and use tools such as cfdisk selecting table type “two”. In that context, it is common to reserve a partition for swap (for example, 4 GB) and another for the system (Linux filesystem). With cfdisk, the workflow is usually something like this: create a new partition, choose size and type (primary), change the type to “Linux swap” when necessary, and leave the rest of the space for the main partition.

For the file system, more and more users are opting for BTRFS instead of the classic ext4, especially since it has matured considerably and offers advanced features such as Copy-on-Write, Snapshots, Subvolumes, and Transparent CompressionExt4 remains a solid and simple option, but BTRFS allows, for example, the creation of separate subvolumes for @root y @home, take snapshots before updating the system and revert changes if something goes wrong.

If you choose BTRFS, you can format the partition with a command like mkfs.btrfs and then create subvolumes like @ (root), @home, @snapshotsetc. An important trick is that, if you're going to use snapshot tools like Timeshift modeIt is advisable to mount the EFI partition in /efi instead of in /boot, to avoid conflicts when restoring previous states of the root subvolume, since the kernels and bootloader files are stored outside of that subvolume.

In any case, once the scheme has been decided, you must format partitionsFor example: the Linux partition in ext4 to mkfs.ext4 /dev/sda2, the EFI with mkfs.fat -F32 /dev/sda1And for the swap, it's enough to mkswap /dev/sdaX and then activate it with swaponIf you don't use swap as a partition, you can always create a swap file later from the already installed system.

5. Mount the partitions and install the base system

With the partitions ready, the next step is mount them in /mnt so that the installer can use them as a destination. For example, you would mount the main partition with something like mount / dev / sda2 / mnt and then you would create the necessary assembly points, like /mnt/efi, and then mount the EFI partition there.

It is advisable to check the structure with lsblk o findmnt to ensure everything is in its correct place. Once the hierarchy is set up correctly, you can launch the base system installation with the command pacstrap, which is responsible for downloading and installing packages in the destination directory.

The minimum is usually something like pacstrap -K /mnt base linux linux-firmwareHowever, many guides recommend also adding useful packages such as base-devel (software compilation) and a basic text editor such as nano o vim, since you will need them to edit configuration files within the chroot.

When pacstrap is finished, you have a basic Arch Linux installation on your disk, but it's not yet bootable on its own. To tell the system what to mount at startup, you need to generate the file / etc / fstab Based on what's set up in /mnt. It's done with something like genfstab -U /mnt >> /mnt/etc/fstaband then it's a good idea to review its content with cat /mnt/etc/fstab to confirm that all partitions and mount points are properly defined.

6. Log in to the system and start the basic setup

With the system copied and fstab generated, it's time to "enter" the installation to work from within. This is done with arch-chroot / mntThis changes the system's root directory to the new environment. From this point on, any configuration you make will be directly applied to your newly installed Arch system.

One of the first adjustments is the time zoneYou must link the correct file in /usr/share/zoneinfo to / etc / localtimeFor example, if you live in Spain, you can use ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtimeThen you can generate the adjtime file with hwclock –systohc so that the hardware time is synchronized with the system time.

The next important block is the location (locale). Within /etc/locale.gen You'll see a long list of locales marked with #. You must uncomment the lines for the languages ​​you want to enable, for example en_US.UTF-8 UTF-8 y en_ES.UTF-8 UTF-8 o en_MX.UTF-8 UTF-8 according to your preferences. Then you run locale-gen to generate them.

To tell the system which language to use by default, create or edit /etc/locale.conf and add a variable LONG with the desired value, for example LANG=es_ES.UTF-8If you want a finer combination (for example, an English interface but Spanish date and currency formats), you can define LONG with a value and then use variables like LC_MESSAGES for the message language, leaving the rest in the main language.

It's also a good idea to make the keyboard map you've been using in the console permanent. To do this, create the file /etc/vconsole.conf and define something as KEYMAP=es o KEYMAP=la-latin1Depending on what you usually use. With this, all TTYs will boot with that distribution enabled.

7. Configure network, hostname, and root password

For the system to be correctly identified on the network, you need to choose a hostnameCreate the file / etc / hostname and write a simple name, without spaces, for example archlinux or whichever one you prefer for your machine.

Then, edit / Etc / hosts to include the basic local resolution entries. They are usually something like 127.0.0.1 localhost, :: 1 localhost and a line with 127.0.1.1 your-hostnameThis ensures that internal services can resolve the machine name without relying on external DNS.

  Steam error when adding a friend

Regarding administrative access, it is mandatory to establish a password for the root userFrom the chroot, simply run PasswdEnter a password you'll remember and confirm it. Without this, you won't be able to securely log in to the newly created installation.

The networking aspect will depend on which network manager you want to use. A very common setup is to install and enable it. NetworkManager or, in simpler settings, use systemd-networkd and DHCP. In many examples, a service is enabled as dhcpcd@eth0.service to automatically obtain an IP address on the wired interface, although the interface name may vary (for example, enp3s0).

8. Install and configure GRUB as the boot manager

To boot the newly installed system you need a boot loaderArch usually uses GRUB Due to its flexibility and compatibility with both BIOS and UEFI. First, you must ensure that the corresponding package is installed (in many cases it is added with pacstrap or installed now via pacman within the chroot).

In BIOS/MBR systems, the installation usually consists of a command like grub-install / dev / sdapointing to the entire disk, not a partition. In UEFI, the command changes to use –target=x86_64-efi y –efi-directory=/efi (or where you mounted the EFI partition) and a –bootloader-id which assigns a name to the boot register.

Once the bootloader is installed, you need to generate the configuration file, which is where GRUB compiles the list of bootable systems. This is done with grub-mkconfig -o /boot/grub/grub.cfg, which scans the system for kernels and, if applicable, other operating systems.

If you use BTRFS with sub-volumes and want to enjoy automatic entries in GRUB for each snapshotYou can install and enable services such as grub-btrfsdThis daemon monitors the creation of snapshots (such as those made by Timeshift) and updates the boot menu entry list. In its systemd unit, it's possible to adjust the line ExecStart to adapt it to Timeshift (for example with the option –timeshift-auto).

Once you've finished with the boot manager and basic settings, you'll have an Arch system ready to boot into text mode. Before exiting the chroot, you can install additional services such as OpenSSH (for remote access), CUPS (for printing), or whatever you consider essential in your environment, and enable them with systemctl enable so that they start automatically.

9. Creating a normal user and first steps after restarting

In Arch and any other distro, it's not a good idea to use root for everything In day-to-day use, you typically create a regular user and grant them sudo privileges as needed. From within the chroot environment, you can use useradd o adduser (depending on the available utility) to create an account, assign it a primary group, and add it to relevant groups.

A common configuration is to add the new user to the group. wheel so that you can use sudo, and others like audio, video, storage, optical, lp, power, games, scanner depending on the resources you need to manage. Then, with passwd username You define your password and leave the account ready to log in.

To give the wheel group sudo permissions, you need to edit the file / Etc / sudoers (preferably with visudo) and uncomment the line that contains %wheel ALL=(ALL) ALLThis will allow any user in that group to execute commands as a superuser when required.

At this point you can exit the chroot with exit, unmount the partitions mounted with umount -R /mnt y restart the machineMake sure to remove the installation USB drive so that your computer boots from the disk containing your newly installed Arch Linux. You should see GRUB; select Arch Linux and you'll be taken to a console session where you can log in with your normal user account.

After the initial startup, a good practice is to update the entire system with sudo pacman -Syyu To ensure you have the latest version of each package, remember that Arch is a rolling release, so staying up-to-date means checking for updates regularly.

10. Installation of video drivers and graphical environment

If you want to use Arch with graphical environment and gamesThe next step is installing video drivers and a graphics server. On modern systems, it's common to install... Xorg or opt directly for Wayland sessions, depending on your preferred desktop environment or window manager.

For relatively recent AMD GPUs (starting with the GCN 3 architecture, i.e., RX 400 series and above), the recommended driver is AMDGPUwhich is free and part of the standard Linux stack. It is complemented by packages such as vulkan-radeon And, if you're going to play, with 32-bit support by enabling the repository en /etc/pacman.conf (uncommenting that section and then updating the package database).

In the case of NVIDIA cards, you have two options: use the driver new (free) or the proprietary driver nvidiaThe second one usually offers better performance in games but also more headaches, and the official Arch guide is the essential reference for installing it correctly, especially if you mix Wayland and Xorg.

Intel integrated graphics are managed with specific drivers and packages with different names, so it's advisable to also consult the Arch wiki, replacing AMD-related components with their Intel counterparts where appropriate. In all cases, it's important to review the section on Hardware acceleration for video and make sure that the codecs and libraries are properly installed.

Regarding the graphical environment, you have several options. A classic and very complete one is KDE Plasmawhich supports both Xorg and Wayland, is even used in devices like the Steam Deck and has a reputation for being very game-friendlyAnother more minimalist, but very powerful, alternative is to opt for a window manager like Hyprland, which is a Wayland tiling compositor based on wlroots and intended for users who want a modern and lightweight desktop, although it requires reading its documentation carefully.

11. Display manager, Hyprland and environments for advanced users

Once the drivers and graphical environment are installed, you can decide if you want to use a display manager or launch the desktops manually from TTY. A display manager provides a graphical login screen from which to choose user, session, and sometimes more options, and is especially useful if you have several environments installed.

  How to put the Downloads folder on the Windows 11 desktop

Among the most popular for Arch is SDDMIt works very well with KDE Plasma and supports a high degree of customization. From the console, you can install it with pacman and enable it with... systemctl enable sddm and on the next restart your login screen will appear directly.

If you choose Wayland-centric window managers like HyprlandIt's advisable to consult their specific notes on display manager compatibility. Although some sources indicate that SDDM works well with Hyprland, there are cases where logging in via custom scripts is recommended. Hyprland's official documentation is very clear, and their comprehensive guide is well worth reading.

In virtual machine scenarios, for example in VirtualBoxYou will also need to install the Guest Additions or the corresponding packages to achieve host integration: improved resolution, shared clipboard, shared folders, etc. This usually requires restarting and running specific utilities from the graphical environment.

To manage additional packages, especially those coming from the Arch User Repository (AUR)Many users install a helper such as yay or tools with a graphical interface such as pamac (very typical in Manjaro). Keep in mind that to build AUR packages you need a normal user (not root) and the base-devel utility group.

12. Preparing Arch Linux for gaming (Steam, Proton, and optimizations)

The support of Gaming on Linux has improved tremendously. And Arch is an excellent base if you configure it properly. The first thing is to have a good game client, such as SteamAnd, if you want to access titles from other platforms, tools like lutris o BottlesFor Bottles, installation via Flatpak from Flathub to better isolate dependencies.

Steam incorporates its own compatibility layer called Proton, which integrates technologies such as DXVK extension (DirectX 9/10/11 to Vulkan translation), VKD3D (DirectX 12 on Vulkan) and a customized version of WineFrom Steam's settings, you can enable Proton globally or per game, allowing you to run many Windows titles with very decent performance.

There is also a variant called Proton GE (Glorious Eggroll)which adds patches and improvements for some problematic games. You can install it by manually downloading the builds or using an AUR helper like yaywhich largely automates the process. Afterwards, Steam will detect it as an additional Proton version in the compatibility menu.

To squeeze out a few extra FPS and smooth out your experience, you can install gamemodeA daemon that applies performance adjustments (CPU priority, governor, etc.) while the game is running. Many games on Linux detect it automatically, and if not, simply running the game with gamemoderun.

Another very popular tool is HandleHudThis displays an on-screen overlay with data such as FPS, GPU and CPU usage, temperature, VRAM usage, etc. This allows you to monitor system behavior while gaming and adjust graphics or resolution to avoid bottlenecks.

13. Additional settings: pacman, repositories, kernels and Arch derivatives

To make package management easier, it's worth taking a look at the file /etc/pacman.confThere you can activate the repository If you want 32-bit support for older games and programs, enable colors in Pac-Man's output, or allow simultaneous downloads to speed up installations and updates.

Another useful tool is reflectorThis tool updates the mirror list and selects the fastest or geographically closest packet servers. Simply install it and run a command configured with your country, protocol, and sort order preferences (by latency, transfer rate, etc.), saving the result to [location/filename]. /etc/pacman.d/mirrorlist.

As for the kernel, Arch uses by default the main kernel which is kept very up-to-date. There are variants such as linux-zen Custom kernels are an option, but switching to others is generally not recommended unless you have a clear reason (hardware problems, a desire to experiment, etc.). Compiling kernels by hand requires attention and time, and often the real performance benefit is minimal or nonexistent for typical use.

If you like the Arch ecosystem but the idea of ​​doing all this manually seems excessive, there are alternatives. On the one hand, there are the guided installation tools , the archinstall, officially included for some time now in the Arch ISO: an interactive wizard that, by answering a handful of questions (language, disk, desktop, drivers, time zone, users…), builds a functional installation with very little effort.

There are also community scripts such as Aturux-OSThese are downloaded via Git and run from the live session, automating partitioning, network configuration, boot manager, and desktop environment selection. And for those who want a pre-packaged Arch system, there are projects like Calam-Arch (Arch with the Calamares graphical installer) or Manjaro, which maintains the rolling philosophy but with a simple graphical installer and a set of pre-installed programs.

Arch Linux stands out for its Minimalist philosophy, absolute control, and excellent documentationHowever, it also requires more involvement and reading than distributions like Ubuntu or Linux Mint, which prioritize ease of use. If you take the time to follow all these steps, test it first in a virtual machine, and support your work with the wiki and well-explained guides, you can end up with an extremely lightweight, modern system, ready for gaming and precisely tailored to your needs, with no unnecessary software and ready to be maintained for years thanks to its rolling release model.