Per alcui utenti, soprattutto quelli alle prime armi, la documentazione ufficiale di Arch potrebbe risultare difficile da seguire: in questi casi penso che possa essere utile una guida che contenga niente più niente meno che i passaggi da seguire per una corretta installazione e configurazione.

Parte 1: Installazione

Passo 1 - Avviare l’installer

Per prima cosa occorre una chiavetta USB configurata per l’installazione di Arch (la preparazione di una USB avviabile con Linux è fuori dallo scopo di questo articolo, online ci sono svariati tuotorial) quindi inseriamola e avviamo il computer: scegliamo la prima opzione nel menu che ci compare, e ci troveremo di fronte ad un terminale come questo

Schermata iniziale
A questo punto potremo partire con il processo di installazione (a differenza di altre distro Linux, arch non ha un installer grafico e si fa tutto da terminale).

Passo 2 - Impostare il layout della tastiera

Di default viene caricato quello americano, ma possiamo cambiarlo guardando quelli disponibili in /usr/share/kbd/keymap e poi impostandolo con il comando loadkeys. Per impostarlo a quello italiano digiteremo

$ loadkeys it

(Potremmo anche cambiare font con procedimento analogo: /usr/share/kbd/consolefonts + comando setfont, ma credo che non sia poi così necessario per il processo di installazione).

Passo 3 - Verificare la modalità di boot

Assicuriamoci di aver avviato il sistema in modalità UEFI. Digitiamo

$ ls /sys/firmware/efi/efivars

e se viene restituito un elenco di file senza errori va tutto bene; altrimenti la cartella non esisterebbe nemmeno.

Passo 4 - Connettersi a Internet

In caso di rete cablata ovviamente dovremmo essere già connessi (verificare per esempio con $ ping google.com), per le reti wireless invece dobbiamo connetterci usando il comando iwctl. Iniziamo dando

$ iwctl

questo aprirà un prompt interattivo in cui scriveremo i prossimi comandi:

# per vedere il nome della scheda di rete
device list

# per vedere le reti disponibili
station wlan0 scan
station wlan0 get-networks

# colleghiamoci alla wifi
station wlan0 connect [nome_rete]

# ora possiamo uscire
exit

Prima di proseguire verifichiamo di essere effettivamente connessi facendo un ping.

Passo 5 - Aggiornare l’orologio di sistema

In Linux possiamo usare NTP (Network Time Protocol) per sincronizzare l’ora attraverso la rete, digitiamo quindi

$ timedatectl set-ntp true

Passo 6 - Partizionare il disco

Questo è sicuramente il momento più delicato: il consiglio è sempre quello di fare un backup dei dati importanti che abbiamo sul disco ed essere sicuri delle partizioni che andremo a modificare (soprattutto in caso di installazione destinata a un dual boot accanto a un altro OS).
Prima di iniziare il processo di partizionamento usiamo fdisk per vedere a quale file è stato assegnato il disco su cui effettueremo l’installazione dando

$ fdisk -l

Questo comando potrebbe dare in output più di un risultato, ma possiamo ignorare quelli che terminano con loop, rom e airoot. Assumendo che il disco che ci interessa sia /dev/sda (potrebbe avere un nome diverso, tipo /dev/nvme0n1 in caso di disco NVME), a questo punto possiamo avviare cfdisk (un tool di partizionamento utilizzabile da terminale, che però possiede un’interfaccia interattiva) dando

$ cfdisk /dev/sda

Nel caso in cui ci chieda di scegliere il tipo di tabella delle partizioni, selezioniamo gpt perchè siamo in modalità UEFI, dopo di che ci troveremo davanti all’interfaccia del programma:

cfdisk
Per poter installare Arch abbiamo bisogno di 3 partizioni:

  • EFI: per i file richiesti dal firmware UEFI
  • ROOT: per installare il sistema vero e proprio
  • SWAP (facoltativa): da “estensione” per la RAM

Assicuriamoci di essere sulla partizione giusta. In questo caso, trattandosi di un’installazione su una macchina virtuale VirtualBox, ho un’unica partizione di spazio libero e non devo scegliere. E simile sarebbe se vogliamo dedicare ad Arch l’intero disco: in questo caso basterebbe eliminare tutte le partizioni con Delete, fino ad ottenrne una unica.
Premiamo New e inseriamo la dimensione che vogliamo (che consiste nel numero seguito da una lettera: M per megabytes, G per gigabytes e T per terabytes). La prima che creiamo sarà quella EFI (in caso di installazione accanto a Windows questa partizione dovrebbe essere già presente: lasciamola e creiamo le altre) e sono sufficienti 500M; dopo aver confermato dovremmo avere una situazione del genere:

cfdisk efi
ed ora bisogna specificare il tipo di partizione, perciò premiamo Type e dalla lista che esce selezioniamo EFI System.
Con lo spazio rimanente ripetiamo il procedimento due volte per creare prima la partizione di root (la cui dimensione è a nostra discrezione, e il tipo è quello predefinito Linux filesystem) e poi quella di swap (anche qui per la dimensione non c’è una regola precisa, potete cercare qualche consiglio online; mentre il tipo è Linux swap). Alla fine il risultato dovrebbe essere simile a questo:

cfdisk fine
Se siamo sicuri, clicchiamo su Write, digitiamo yes e infine selezioniamo Quit.

Passo 7 - Formattare le partizioni

Qui useremo i programmi mkfs e mkswap. Prima di procedere però diamo uno sguardo finale alla nostra lista delle partizioni con

$ fdisk -l /dev/sda

lista partizioni
La partizione EFI (questo caso /dev/sda1) deve essere formattata come FAT32, quindi diamo

$ mkfs.fat -F32 /dev/sda1

Quella di root invece come EXT4, quindi

$ mkfs.ext4 /dev/sda2

Infine, per formattare quella di swap

$ mkswap /dev/sda3

Passo 8 - Montare il file system

Usiamo il comando mount per montare il volume di root in /mnt:

$ mount /dev/sda2 /mnt

Per la swap invece dobbiamo usare il comando swapon:

$ swapon /dev/sda3

Della partizione EFI ce ne occuperemo dopo.

Passo 9 - Configurare i mirrors

Su Arch i pacchetti da installare vengono scaricati da dei server mirror definiti in una lista nel file /etc/pacman.d/mirrorlist. Nel sistema live di Arch possiamo usare lo script reflector per aggiornare la lista. Lanciamo prima lo script da solo per assicurarci che funzioni

$ reflector

L’output sarà simile al seguente:

reflector
Se tutto va bene, facciamo una copia preventiva della lista attuale con

$ cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

e poi sovrascriviamola:

$ reflector --country Italy,Germany,France --protocol https --sort rate --age 12 --save /etc/pacman.d/mirrorlist  
# per la comprensione di tutti i parametri basta guardare l'help di reflector

Se mentre lo script è in esecuzione viene stampato qualche errore non preoccupiamoci, nella lista andranno solo i mirror funzionanti (e in ogni caso alla fine possiamo vedere che sia tutto apposto con $ cat /etc/pacman.d/mirrorlist).

Passo 10 - Installare i programmi essenziali

Prima di procedere aggiorniamo la cache dei pacchetti del sistema con i nuovi mirror dando

$ pacman -Sy

Adesso usiamo lo script pacstrap per installare i programmi, che passiamo come argomento, nella partizione di root (che abbiamo montato in /mnt):

$ pacstrap /mnt base base-devel linux linux-firmware sudo nano man-db ntfs-3g networkmanager
  • base - necessario per un’installazione minima di Arch
  • base-devel - per compilare e linkare i sorgenti
  • linux - il kernel
  • linux-firmware - firmware files per Linux
  • sudo - per eseguire i comandi con i massimi privilegi
  • nano - un editor di testo (io ho scelto questo ma sostituitelo pure con il vostro preferito)
  • man-db - per accedere ai manuali dei programmi
  • ntfs-3g - per poter lavorare con dischi NTFS
  • networkmanager - per connettersi automaticamente alle reti

A questo punto, se pacstrap termina senza errori, Arch sarà finalmente installato. Quello che ci spetta adesso è passare alla configurazione del sistema.

Parte 2: Configurazione

Passo 1 - Generare il file Fstab

Questo file serve per definire il modo in cui le partizioni devono essere montate nel file system. Generiamolo con

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

Passo 2 - Cambiare la radice

Usiamo lo script arch-chroot per fare il login nel nostro nuovo sistema che abbiamo appena installato, senza dover fare il reboot:

$ arch-chroot /mnt

Passo 3 - Fuso orario

La lista delle località principali la troviamo sotto /usr/share/zoneinfo. Nel nostro caso, se vogliamo impostare l’ora italiana, diamo

$ ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime

Passo 4 - Localizzazione

Ora configuriamo la lingua di sistema. Apriamo il file /etc/locale.gen con

$ nano /etc/locale.gen

e decommentiamo #it_IT.UTF-8 UTF-8; dopo generiamo le localizzazioni con

$ locale-gen

Ora creiamo il file /etc/locale.conf e impostiamo la variabile LANG: diamo quindi

$ nano /etc/locale.conf

e scriviamoci LANG=it_IT.UTF-8. Inoltre, se all’inizio avevamo cambiato il layout della tastiera, rendiamo questa modifica persistente modificando il file /etc/vcosnole.conf:

$ nano /etc/vconsole.conf

e inseriamo KEYMAP=it.
(Ovviamente in caso di lingua diversa il procedimento resterebbe invariato, l’unica differenza sarebbero le variabili. Possiamo anche abilitare più lingue decommentando quelle che ci interessano in /etc/locale.gen, e poi stabilire quale usare di default scrivendola in /etc/locale.conf).

Passo 5 - Configurazione della rete

Per prima cosa impostiamo l’hostname della macchina scrivendolo dentro al file /etc/hostname, come nome potete usare quello che volete (io generalmente uso il nome del modello del computer, in questo caso quindi essendo su un laptop Acer Swift ci scriverò swift).
Ora modifichiamo il file /etc/hosts e inseriamo le seguenti righe:

127.0.0.1   localhost
::1         localhost
127.0.0.1   swift

E infine abilitiamo il servizio networkmanager, che abbiamo già installato, in modo tale che venga caricato automaticamente all’avvio del sistema:

$ systemctl enable NetworkManager

Passo 6 - Impostare la password di root

Digitiamo prima

$ passwd

e poi inseriamo la password che vogliamo.
(Lanciato così senza parametri, il comando ci fa cambiare la password per l’utente corrente, che ora è proprio l’utente root).

Passo 7 - Creare un utente non root

Ovviamente è fondamentale usare il nostro sistema come utente senza massimi privilegi, tranne che nei casi in cui non siano necessari. Diamo dunque

$ useradd -m -G wheel qsl

l’opzione -m serve per creare la directory home dell’utente, il -G wheel per aggiungere l’utente al gruppo wheel (gruppo di amministrazione di Arch), e infine qsl è il nome scelto in questo caso per l’utente (voi sostituitelo con quello che volete).
Approfittiamo per impostare la password del nuovo utente con

$ passwd qsl

Poi abilitiamo anche i privilegi di sudo: apriamo il file /etc/sudoers e troviamo e decommentiamo la stringa # %wheel ALL=(ALL) ALL.

Passo 8 - Installare Microcode

I produttori di processori come AMD e Intel rilasciano spesso aggiornamenti di sicurezza e stabilità per i processori, che sono importanti per la sicurezza stessa del nostro sistema; per poter ricevere questi aggiornamenti dobbiamo installare il relativo pacchetto:

# per processori AMD
$ pacman -S amd-ucode

# per processori Intel
$ pacman -S intel-ucode

Passo 9 - Installare e configurare il bootloader

Per installare il bootloader GRUB (non è l’unico possibile, ma è sicuramente il più usato) prima abbiamo bisogno di questi due pacchetti:

$ pacman -S grub efibootmgr

In caso di installazione accanto ad un altro OS dovremo installare anche il pacchetto os-prober

Ora dobbiamo montare la partizione EFI:

$ mkdir /boot/efi
$ mount /dev/sda1 /boot/efi

A questo punto possiamo installare il bootloader nella partizione appena montata:

$ grub-install --removable --target=x86_64-efi --bootloader-id=grub

Se siamo nel caso di dual boot dobbiamo fare un ulteriore passaggio prima di continuare, ovvero abilitare os-prober prima di creare il file di configurazione: apriamo il file /etc/default/grub e decommentiamo la riga#GRUB_DISABLE_OS_PROBER=false (dovrebbe essere l’ultima riga del file)

Ora Generiamo il file di configurazione:

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

Passo 10 - Installare Xorg

Xorg è necessario per poter eseguire i programmi che hanno un’interfaccia grafica; installiamolo con:

$ pacman -S xorg-server

Passo 11 - Installare i driver per la grafica

Qui dobbiamo solo installare il giusto pacchetto in base alla nostra scheda grafica:

# per schede grafiche Nvidia
pacman -S nvidia nvidia-utils

# per schede grafiche AMD dedicate e integrate
pacman -S xf86-video-amdgpu

# per schede grafiche Intel integrate
pacman -S xf86-video-intel

Passo 12 - Installare un Desktop Environment

Per i DE la scelta è molto ampia; io per semplicità riporto solo il caso di installazione di GNOME. Iniziamo con:

$ pacman -S gnome

(Durante l’installazione ci verrà chiesta una scelta per diversi pacchetti: possiamo premere Invio per accettare quelli di default).
Adesso abilitiamo GDM (Gnome Display Manager):

$ systemctl enable gdm

Passo 13 - Terminare l’installazione

A questo punto finalmente l’intero processo è terminato e possiamo goderci il nostro nuovo sistema. Per prima cosa usciamo da arch-chroot:

$ exit

Poi smontiamo la partizione root:

$ umount -R /mnt

e spegniamo il sistema:

$ poweroff

Ora possiamo rimuovere la chiavetta USB e avviare il pc; dal menu di GRUB che ci apparirà selezioniamo Arch Linux e dovrebbe comparire la schermata di login di GNOME (o qualsiasi altro DE abbiate scelto): inseriamo le nostre credenziali e… siamo dentro!
La prossima volta che installeremo una distro Linux con installer grafico sarà come dare un pacman -Syu.