2024-09-10

Getting Started with Arch Linux: A Beginner’s Guide to Surviving the Install

A beginner-friendly and humorous guide to installing Arch Linux with UEFI or BIOS, setting up GRUB, creating a user, and surviving your first serious Linux installation.

Getting Started with Arch Linux: A Beginner’s Guide to Surviving the Install

So, you want to install Arch Linux.

Excellent.

This means you are brave, curious, and possibly the kind of person who sees a perfectly working computer and thinks:

“Nice. But what if I manually installed the operating system myself?”

Welcome.

Arch Linux has a reputation for being difficult.

That reputation is not completely fake.

But Arch is not impossible. It is just honest. Very honest. Sometimes brutally honest. Like a terminal-shaped fitness trainer shouting:

“You wanted control? Good. Now choose your partitions.”

This guide will walk you through a basic Arch Linux installation using either:

  • UEFI + GPT for most modern computers,
  • BIOS + MBR for older machines.

We will keep things practical, clear, and beginner-friendly.

But serious warning first:

Installing Arch Linux can erase your disk if you choose the wrong drive.

So before typing commands like a heroic keyboard warrior, stop and check what you are doing.

The terminal has no emotional intelligence.

It will delete exactly what you tell it to delete.


Before You Start

You need:

  • an Arch Linux ISO,
  • a USB stick,
  • a computer or laptop,
  • internet access,
  • patience,
  • and the ability to read before pressing Enter.

That last one is important.

Very important.

Especially when disks are involved.

This guide assumes you are doing a clean installation.

If you are dual-booting with Windows or preserving existing data, do not blindly follow the partitioning commands.

That is how sadness becomes permanent.


UEFI or BIOS?

Before installing Arch, you need to know how your computer boots.

Most modern computers use UEFI.

Older machines may use BIOS, also called Legacy BIOS.

After booting from the Arch ISO, run:

ls /sys/firmware/efi

If the directory exists, you are booted in UEFI mode.

If it does not exist, you are in BIOS/Legacy mode.

This matters because the bootloader installation is different.

UEFI and BIOS are like two doors into the same house.

But if you try to use the wrong key, the house will politely refuse to boot.


Check Your Disk Name

Before touching partitions, check your disks:

lsblk

You may see something like:

sda
├─sda1
└─sda2

Or on NVMe drives:

nvme0n1
├─nvme0n1p1
└─nvme0n1p2

In this guide, I will use /dev/sdX as an example.

You must replace it with your real disk.

Examples:

  • /dev/sda
  • /dev/nvme0n1

Do not use /dev/sdX literally.

That is not a disk.

That is a placeholder.

A very dangerous placeholder if misunderstood.


Prepare the USB Stick

On Linux, you can write the ISO to a USB stick with:

sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdX status=progress oflag=sync

Again: replace /dev/sdX with your USB device.

Not a partition like /dev/sdX1.

The whole device.

Check first:

lsblk

This command is powerful.

Powerful like a chainsaw.

Useful, but not something you wave around while distracted.


Set the Keyboard Layout

After booting into the Arch ISO, you can list available keymaps:

localectl list-keymaps

For a US keyboard:

loadkeys us

For another layout, replace us with the correct keymap.

The keyboard layout matters because typing passwords with the wrong layout is a beautiful way to create future suffering.


Connect to the Internet

If you use Ethernet, internet may already work.

Test it:

ping archlinux.org

If you use Wi-Fi, open iwctl:

iwctl

List devices:

device list

Scan for networks:

station wlan0 scan

Show available networks:

station wlan0 get-networks

Connect:

station wlan0 connect your-wifi-name

Exit:

exit

Test again:

ping archlinux.org

If ping works, good.

The internet is alive.

Your installation has a fighting chance.


Installation with UEFI and GPT

Use this path for most modern laptops and desktops.

UEFI is the normal choice today.

If your machine is from the last decade, there is a good chance this is the path you want.


Step 1: Partition the Disk for UEFI

Start partitioning:

fdisk /dev/sdX

Inside fdisk, create a new GPT partition table:

g

Create the EFI partition:

n

Choose the default partition number, default first sector, and set size:

+512M

Change its type to EFI System:

t
1

Create the root partition:

n

Accept defaults to use the rest of the disk.

Write changes:

w

You now have something like:

/dev/sdX1  EFI
/dev/sdX2  root

For NVMe, it may look like:

/dev/nvme0n1p1
/dev/nvme0n1p2

Disk names change.

The danger remains.


Step 2: Format the Partitions

Format the EFI partition as FAT32:

mkfs.fat -F32 /dev/sdX1

Format the root partition as ext4:

mkfs.ext4 /dev/sdX2

This erases data on those partitions.

Not “moves it somewhere safe”.

Not “hides it politely”.

Erases it.

Linux is efficient like that.


Step 3: Mount the Partitions

Mount the root partition:

mount /dev/sdX2 /mnt

Create the boot directory:

mkdir -p /mnt/boot

Mount the EFI partition:

mount /dev/sdX1 /mnt/boot

Your future Arch system is now mounted under /mnt.

At this point, /mnt is basically the construction site.

Hard hat recommended.

Emotionally, at least.


Step 4: Install the Base System

Install the base packages:

pacstrap -K /mnt base base-devel linux linux-firmware nano man-db man-pages texinfo networkmanager sudo

This installs:

  • the basic Arch system,
  • Linux kernel,
  • firmware,
  • development tools,
  • documentation,
  • a text editor,
  • NetworkManager,
  • sudo.

You can install fewer packages.

But beginners usually enjoy having internet after reboot.

Strange, I know.


Step 5: Generate fstab

Generate the file system table:

genfstab -U /mnt >> /mnt/etc/fstab

Check it:

cat /mnt/etc/fstab

The fstab file tells your system what partitions to mount at boot.

If this file is wrong, your system may boot into confusion.

And confusion is not a desktop environment.


Step 6: Enter the New System

Now enter your new Arch installation:

arch-chroot /mnt

You are now inside your installed system.

Not fully booted into it yet.

But close enough to feel powerful.

Do not let it go to your head.


Step 7: Set the Time Zone

For Italy, use:

ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
hwclock --systohc

For another region, replace Europe/Rome.

You can list time zones with:

timedatectl list-timezones

Time matters.

Especially when logs say something failed “tomorrow”.


Step 8: Set Localization

Edit the locale file:

nano /etc/locale.gen

Uncomment:

en_US.UTF-8 UTF-8

Then generate locales:

locale-gen

Set the system language:

echo "LANG=en_US.UTF-8" > /etc/locale.conf

This gives your system a basic UTF-8 locale.

Because computers should understand normal text instead of acting like accents are ancient magic.


Step 9: Set Hostname

Choose a name for your computer:

echo "archpc" > /etc/hostname

Edit hosts:

nano /etc/hosts

Add:

127.0.0.1   localhost
::1         localhost
127.0.1.1   archpc.localdomain archpc

Replace archpc with your chosen hostname.

Your computer now has a name.

Treat it with respect.

Or at least do not name it test-final-final2.


Step 10: Set Root Password

Set the root password:

passwd

Choose something strong.

Not 123456.

Not password.

Not arch.

The system is giving you control.

Do not respond with comedy-level security.


Step 11: Install CPU Microcode

For Intel CPUs:

pacman -S intel-ucode

For AMD CPUs:

pacman -S amd-ucode

Install the one that matches your processor.

Not both for fun.

This helps your CPU receive important microcode updates during boot.

Tiny updates.

Big importance.

Like firmware vitamins.


Step 12: Install GRUB for UEFI

Install GRUB and EFI tools:

pacman -S grub efibootmgr

Install GRUB:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

Generate the GRUB configuration:

grub-mkconfig -o /boot/grub/grub.cfg

If there are no errors, good.

Your system now has a bootloader.

That means it has a way to wake up without the USB stick.

A small miracle.


Step 13: Create a User

Create a normal user:

useradd -m -G wheel,video,audio -s /bin/bash admin

Set the password:

passwd admin

You can replace admin with your own username.

Using root for everyday work is like driving a truck through your kitchen.

Technically possible.

Not recommended.


Step 14: Enable sudo

Open the sudo configuration:

EDITOR=nano visudo

Find and uncomment this line:

%wheel ALL=(ALL:ALL) ALL

Save and exit.

Now users in the wheel group can use sudo.

You have delegated power.

Use it wisely.

Or at least read commands before copying them.


Step 15: Enable NetworkManager

Enable NetworkManager:

systemctl enable NetworkManager.service

This is important.

If you forget it, you may reboot into a beautiful new Arch system with no internet.

That is not minimalism.

That is suffering.


Step 16: Optional GNOME Minimal Desktop

If you want a minimal GNOME desktop, install:

pacman -S gnome-shell gdm gnome-control-center gnome-disk-utility alacritty xorg-server network-manager-applet pavucontrol ttf-dejavu ttf-droid noto-fonts noto-fonts-emoji git wget rsync openssh ntfs-3g gst-libav gnome-keyring

Enable GDM:

systemctl enable gdm.service

This gives you a graphical login and a minimal GNOME setup.

Not the full GNOME kingdom.

More like GNOME with a small backpack.


Step 17: Exit and Reboot

Exit chroot:

exit

Unmount everything:

umount -R /mnt

Reboot:

reboot

Remove the USB stick when appropriate.

If everything went well, your system should boot into Arch Linux.

If it does not, welcome to the second part of Arch installation:

“Learning why it did not boot.”

A classic.


Installation with BIOS and MBR

Use this path for older computers that boot in Legacy BIOS mode.

This is simpler in some ways, but less modern.

Still useful.

Older machines deserve love too.

Sometimes also new thermal paste.


Step 1: Partition the Disk for BIOS

Start partitioning:

fdisk /dev/sdX

Create a new DOS partition table:

o

Create a new partition:

n

Accept defaults to use the full disk.

Make it bootable:

a

Write changes:

w

You now have:

/dev/sdX1

Again, replace disk names properly.

The computer will not forgive creative guessing.


Step 2: Format the Partition

Format the root partition:

mkfs.ext4 /dev/sdX1

This erases that partition.

Yes, again.

Arch gives many opportunities to prove you selected the correct disk.


Step 3: Mount the Partition

Mount it:

mount /dev/sdX1 /mnt

Now the root partition is ready.

No EFI partition needed in this BIOS/MBR path.

Old-school booting.

Vintage, but functional.


Step 4: Install the Base System

Install the base packages:

pacstrap -K /mnt base base-devel linux linux-firmware nano man-db man-pages texinfo networkmanager sudo

Same idea as before.

Base system, kernel, firmware, tools, network, and sudo.

Because rebooting without network is a rite of passage, but not one we need today.


Step 5: Generate fstab

genfstab -U /mnt >> /mnt/etc/fstab

Check it:

cat /mnt/etc/fstab

If it looks reasonable, continue.

If it looks empty, something is wrong.

An empty fstab is not minimalism.

It is a warning.


Step 6: Enter the New System

arch-chroot /mnt

Now configure the system from inside.

Same as UEFI.

Different bootloader installation later.

Same emotional tension.


Step 7: Time Zone

For Italy:

ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
hwclock --systohc

For another region, choose another time zone.

Your system should know where it lives.

Even if emotionally it still lives in the terminal.


Step 8: Localization

Edit:

nano /etc/locale.gen

Uncomment:

en_US.UTF-8 UTF-8

Generate locale:

locale-gen

Set language:

echo "LANG=en_US.UTF-8" > /etc/locale.conf

Clean and simple.

Like we wish all configuration files were.


Step 9: Hostname and Hosts

Set hostname:

echo "archpc" > /etc/hostname

Edit hosts:

nano /etc/hosts

Add:

127.0.0.1   localhost
::1         localhost
127.0.1.1   archpc.localdomain archpc

Replace archpc if you choose another name.

A good hostname is useful.

A funny hostname is tempting.

Choose wisely.


Step 10: Set Root Password

passwd

Use a real password.

Your future self will thank you.

Or at least not curse you.


Step 11: Install CPU Microcode

For Intel:

pacman -S intel-ucode

For AMD:

pacman -S amd-ucode

Choose the correct one.

This is not a buffet.


Step 12: Install GRUB for BIOS

Install GRUB:

pacman -S grub

Install it to the disk, not the partition:

grub-install --target=i386-pc /dev/sdX

Important:

Use the disk:

/dev/sdX

Not:

/dev/sdX1

Then generate the configuration:

grub-mkconfig -o /boot/grub/grub.cfg

This is one of those commands where one character can decide whether your system boots or stares into the void.

Read carefully.


Step 13: Create a User

useradd -m -G wheel,video,audio -s /bin/bash admin
passwd admin

Replace admin if you want your own username.

This user will be your normal daily account.

Root is not for casual living.

Root is for serious moments and mild fear.


Step 14: Enable sudo

EDITOR=nano visudo

Uncomment:

%wheel ALL=(ALL:ALL) ALL

Save and exit.

Now your normal user can use sudo.

Congratulations.

You have given yourself controlled danger.


Step 15: Enable NetworkManager

systemctl enable NetworkManager.service

This ensures networking starts after reboot.

Internet after installation is a beautiful thing.

Especially when something needs fixing.

Which, on Arch, is not impossible.


Step 16: Optional GNOME Minimal Desktop

Install a minimal GNOME setup:

pacman -S gnome-shell gdm gnome-control-center gnome-disk-utility alacritty xorg-server network-manager-applet pavucontrol ttf-dejavu ttf-droid noto-fonts noto-fonts-emoji git wget rsync openssh ntfs-3g gst-libav gnome-keyring

Enable GDM:

systemctl enable gdm.service

This gives you a graphical environment.

Because yes, even Arch users are allowed to have windows.

Emotionally and graphically.


Step 17: Exit and Reboot

Exit:

exit

Unmount:

umount -R /mnt

Reboot:

reboot

Remove the USB stick when needed.

If your system boots, congratulations.

You installed Arch Linux.

You are now legally allowed to say:

“I use Arch, by the way.”

Use this power responsibly.

Maybe not during dinner.


After the First Boot

Log in with your user.

If you installed GNOME and enabled GDM, you should see a graphical login screen.

If you boot into terminal, log in and start checking services:

systemctl status NetworkManager

Connect to Wi-Fi if needed:

nmtui

Update the system:

sudo pacman -Syu

Install anything else you need:

sudo pacman -S firefox

Or, if you prefer something more dramatic, continue building your perfect Arch setup one package at a time.

That is the Arch way.


Common Beginner Problems

No internet after reboot

Check NetworkManager:

systemctl status NetworkManager

If it is not enabled:

sudo systemctl enable --now NetworkManager

GRUB does not appear

Boot back into the USB, mount your partitions, chroot again, and reinstall GRUB.

This is annoying.

But very educational.

In the same way falling off a bicycle is educational.

Wrong disk selected

This is why we checked lsblk.

If you formatted the wrong disk, there is no funny paragraph here.

Only silence.

And backups.

Always have backups.


Final Thoughts

You have now walked through a basic Arch Linux installation.

You learned how to:

  • check UEFI or BIOS mode,
  • partition a disk,
  • format partitions,
  • mount the system,
  • install the base packages,
  • generate fstab,
  • enter with arch-chroot,
  • configure locale and time,
  • install GRUB,
  • create a user,
  • enable sudo,
  • enable NetworkManager,
  • optionally install a minimal GNOME desktop.

That is a lot.

And yes, it may feel complicated the first time.

But that is the point.

Arch Linux teaches you what is happening under the hood.

It does not hide the system from you.

It hands you the keys and says:

“Try not to crash.”

And once you succeed, the reward is beautiful:

A clean Linux system that you built yourself.

Not by accident.

Not by clicking “Next” twelve times.

But step by step.

Command by command.

Welcome to Arch Linux.

Enjoy the control.

Respect the terminal.

And remember:

Always check the disk name before formatting.