Page cover

How to install Arch Linux (Manual & Script Way)

On this wiki page, I will show you my methods for installing Arch Linux using both the manual and script options.


1. Manual Way

0. 🧠 ~ Introduction

This section describes the complete manual installation process of Arch Linux, explaining each step in detail and giving the user full control over system setup.

Arch Linux is a minimalist Linux distribution that does not include a graphical installer. Instead, the user installs and configures the system manually using the command line. This approach provides maximum control and flexibility, but it also requires attention and understanding of each installation step.

Manual installation is recommended if you want:

  • a clean and minimal system

  • full control over disk layout and packages

  • deeper understanding of how Linux works internally


1. 📥 ~ Preparation

This section covers everything needed before installation, including downloading the ISO and preparing bootable installation media.

1.1. Downloading and creating installation media

This subsection explains how to download the Arch Linux ISO and create a bootable USB drive.

  1. Download the Arch ISO

  2. Create a bootable USB drive:

Explanation:

  • if= — input file (ISO image),

  • of= — output device (USB drive, e.g. /dev/sdb),

  • bs=4M — block size for faster writing,

  • status=progress — shows progress,

  • oflag=sync — ensures data is written correctly.

⚠️ WARNING: This command will erase all data on the target USB drive.

Tip: Or you can use GUI apps like Balena Etcher or Rufus.

  1. Boot from the USB drive in UEFI mode (recommended).


2. 🖥️ ~ Live Environment & Basic Setup

This section describes the initial setup steps performed in the live Arch Linux environment after booting from the installation media.

After booting, you will see a terminal prompt like:

2.1. Keyboard Layout

This subsection explains how to list and set the correct keyboard layout in the live environment.

List available keymaps:

Set your keyboard layout (example: Slovak):


2.2. Internet Connection

This subsection shows how to connect to the internet using either Ethernet or Wi-Fi.

Wired (Ethernet): usually works automatically.

Wireless (Wi-Fi):

Test connectivity:


3. 🛠️ ~ Disk Partitioning (using cfdisk)

This section explains how to prepare the disk by creating partitions for the operating system.

Before partitioning, list all available storage devices:

This command displays all detected disks and partitions. Identify the disk where Arch Linux will be installed (e.g. /dev/sda, /dev/nvme0n1).


3.1. Starting cfdisk

This subsection shows how to launch the cfdisk partitioning tool for the selected disk.

Launch the partition editor:


3.2. Selecting Partition Table Type

This subsection explains how to choose the appropriate partition table, typically GPT for UEFI systems.

If the disk is empty or uninitialized, cfdisk will ask for a partition table type.

Select:

Why GPT?

  • Required for UEFI systems.

  • Supports modern disks and large capacities.

  • More robust than MBR.


3.3. Creating Partitions (UEFI layout)

This subsection describes how to create the required EFI and root partitions using cfdisk.

Inside cfdisk, you will see an interactive TUI (text-based interface).

My UEFI partition layout:

Partition
Size
Type
Mount point

EFI

1 GB

Linux filesystem

/mnt/boot/efi

Swap

4 GB

Linux filesystem

[SWAP]

Root

Remaining

Linux filesystem

/


Step-by-step:

  1. Select Free Space

  2. Choose [ Write ] and type yes

  3. Again select Free Space and choose [ New ]

  4. Enter size (1G)

  5. Again select Free Space and choose [ New ]

  6. Enter size (4G)

  7. Again select Free Space and choose [ New ]

  8. Enter size (remaining size e.g. 100G)


3.4. Writing Changes to Disk

This subsection explains how to save the partition layout and apply changes to the disk.

After creating all partitions:

  1. Select [ Write ] on the root partition

  2. Type yes to confirm

  3. Select [ Quit ]

⚠️ WARNING: Writing the partition table will permanently modify the disk and erase existing data.


3.5. Verify Result

This subsection shows how to verify the newly created partitions.

After exiting cfdisk, verify the layout:

You should now see something like:

  • /dev/sdX1 - EFI System partition

  • /dev/sdX2 - Swap partition

  • /dev/sdX3 - Root partition


Why I use cfdisk instead of fdisk?

  • Interactive interface (no memorizing commands).

  • Clear overview of partitions.

  • Safer and more intuitive for beginners.

  • Faster to use for standard layouts.


4. 📂 ~ Formatting & Mounting

This section covers formatting the partitions and mounting them to prepare for system installation.

Format root partition (ext4 example):

Format EFI partition:

Format Swap partition:

Mount root:

Create and mount EFI directory:

Mount Swap partition:

Check if you mounted correctly:

You should now see something like:

NAME
MAJ:MIN
RM
SIZE
RO
TYPE MOUNTPOINTS

sdX

8:0

0

100G

0

disk

sdX1

8:1

0

1G

0

part /mnt/boot/efi

sdX2

8:2

0

4G

0

part [SWAP]

sdX3

8:3

0

95G

0

part /mnt


5. 📦 ~ Installing the Base System

This section explains how to install the core Arch Linux packages into the mounted filesystem.

Install essential packages:

Explanation:

  • base — essential system packages,

  • linux — Linux kernel,

  • linux-firmware — firmware for hardware devices,

  • (Optional - recommended for development) base-devel - essential development tools required for building and compiling software from source.


6. 📑 ~ Generating fstab

This section describes how to generate the filesystem table used during system boot.

What this does: Generates the filesystem table (fstab), which tells the system which partitions to mount during boot.


7. 🧠 ~ Chroot into the New System

This section explains how to enter the newly installed system environment for further configuration.

This switches the root directory to the newly installed system, allowing you to configure it as if it were already running.


7.1. (Optional) Install essential packages

Packages that I install and also recommend to you:

Explanation:

  • sof-firmware — firmware required for sound devices using Sound Open Firmware,

  • grub — a bootloader used to load the operating system at startup,

  • networkmanager — a service for managing network connections automatically,

  • efibootmgr — a tool for managing UEFI boot entries,

  • nano — a simple and beginner-friendly terminal text editor.


8. 🌍 ~ System Configuration

This section covers essential system settings such as time zone, language, and hostname.

8.1. Time Zone

This subsection explains how to set the correct system time zone.


8.2. Locale Settings

This subsection describes how to configure system language and locale settings.

Edit locale configuration:

Uncomment and save:

(or another locale you prefer)

Generate locales:

Set system language:

Set console keyboard layout


8.3. Hostname

This subsection explains how to set the system hostname.

Set system hostname:


9. 🔐 ~ Root Password

This section explains how to set a secure password for the root user.

Set root password:

9.1. Add user account & set password

Add user account:

Set user password:

9.2. Edit visudo file

Type:

and find the line with the word wheel

Uncomment and save:

9.3. Log in to your user and test the sudo command

Type:

And for the test, type:

If everything works, come back to the chroot typing:


10. 🧰 ~ Core Systemd Services (Optional) & Bootloader installation

This section describes how to install and configure a bootloader and enabling some systemd services so the system can start correctly.

To enable the networkmanager package (if you have installed it), type:

10.1. Installing systemd-boot or GRUB bootloader

systemd-boot:

Install bootloader:

Edit loader configuration:

Example configuration:

Explanation:

  • default — default boot entry,

  • timeout — seconds before auto-boot,

  • editor — disables kernel parameter editing at boot.

Create a boot entry:

Example configuration:

Important:

Replace PARTUUID=XXXX with the actual PARTUUID of your root partition:

GRUB:

Install bootloader:

Generate a config file:

And that's it, you have successfully installed Arch Linux manually. Now after rebooting, all you have to do is install some desktop environment and basic applications and you're done. Congrats! :)


🧩 ~ Command Explanations

This section provides brief explanations of important commands used during installation.

What is pacstrap?

Installs packages into the mounted target system.

What is genfstab?

Automatically creates a filesystem mount configuration.

What is arch-chroot?

Changes the root environment so you can configure the installed system.


⚠️ ~ Important Notes

This section highlights common risks, warnings, and best practices to avoid data loss or installation issues.

  • Manual installation can destroy existing data if disks are partitioned incorrectly.

  • Always double-check device names (/dev/sdX).

  • Back up important data before proceeding.


2. Script Way

This section provides an automated approach to installing Arch Linux using custom scripts, designed to simplify and speed up the installation process while still allowing customization. In this part, I'll show you what scripts do I use or I tested and how do I install Arch Linux through them.


1. 💻 ~ ArchInstall (official Arch Linux install script)

  1. Boot into the Arch Linux live environment from your installation media.

  2. Ensure you have a working internet connection (Ethernet or Wi-Fi). For Wi-Fi, use iwctl to connect.

  3. Run the Archinstall script:

  1. Follow the interactive prompts:

  • Choose language and keyboard layout,

  • Select installation type (guided, custom, etc.),

  • Partition disks automatically or manually,

  • Select desktop environment and packages,

  • Configure user account and root password,

  • Setup bootloader (systemd-boot or GRUB).

  1. Confirm all your choices and start the installation.

  2. Wait for the script to complete the installation.

  3. Reboot into your new Arch Linux system.


Additional tips

  • For advanced options or unattended installations, you can prepare a JSON configuration file and pass it to Archinstall.

  • Archinstall supports UEFI and BIOS systems.

  • You can customize partition schemes, package selections, and network settings.

  • And my recommendation, I recommend editing the /etc/pacman.conf file and finding the SigLevel line and instead of Required DatabaseOptional, change it to Never and save the file.


2. 💻 ~ Trinteen's ArchInstall

  1. Boot into the Arch Linux live environment from your installation media.

  2. Ensure you have a working internet connection (Ethernet or Wi-Fi). For Wi-Fi, use iwctl to connect.

  3. Download git and clone the script repository:

  1. Enter to directory:

  1. Run:

  1. Confirm all your choices and start the installation.

  2. Wait for the script to complete the installation.

  3. Reboot into your new Arch Linux system.


3. 💻 ~ ChrisTitusTech's ArchTitus

  1. Boot into the Arch Linux live environment from your installation media.

  2. Ensure you have a working internet connection (Ethernet or Wi-Fi). For Wi-Fi, use iwctl to connect.

  3. Type:

  1. Step into System Setup folder.

  2. In this folder there is an Arch subfolder, select it.

  3. And in this subfolder select Arch Server Setup, type y on the keyboard, fill in the basic info and wait.

  4. After the installation is complete, exit LinUtil and restart the system.

  5. And after restarting, just install the desktop environment and you're done.


🎯 ~ Conclusion

This guide covered both the manual and scripted ways to install Arch Linux, providing detailed step-by-step instructions, explanations of commands, and configuration tips. Whether you prefer full control through manual installation or the convenience of automated scripts like Archinstall, this wiki equips you with the knowledge to set up a customized and functional Arch Linux system. Always remember to back up your data and carefully review each step to ensure a smooth installation process.

Last updated