Arch Linux è una distribuzione Linux creata da Judd Vinet secondo la filosofia KISS (Keep It Simple, Stupid).
Per la sua filosofia minimalista, l’installazione base non incorpora nessuno strumento di configurazione automatica, nessun ambiente desktop e nessun altro programma o tool che non sia strettamente necessario all’avvio del sistema; per questo non è indicata per coloro che non vogliono avere a che fare con la shell di comando. Inoltre, Arch Linux è una distribuzione rolling release: tutti i pacchetti disponibili per l’installazione sono sempre aggiornati all’ultima versione distribuita dagli autori.
In questa guida viene documentato il processo di installazione step-by-step su una VM, cifrando la partizione di root per garantire una maggiore sicurezza. Al termine, il sistema sarà configurato come segue:
| Opzione | Configurazione adottata |
|---|---|
| Crittografia disco | Yes |
| Firmware | UEFI |
| Tabella partizioni | GPT |
| Boot loader | GRUB / systemd-boot |
Per ogni dubbio, si rimanda alla guida ufficiale.
Creazione della VM
Per iniziare, procederemo con la creazione di una VM utilizzando Proxmox (o qualsiasi HV):
È possibile scaricare l’immagine ISO ufficiale direttamente dal sito di Arch Linux.
Verifica della modalità di boot
Questa guida presuppone l’uso di UEFI. Per verificare la modalità di boot, elencare la directory efivars con il comando:
|
|
Se il comando restituisce 64, significa che il sistema è avviato in modalità UEFI a 64 bit (x64). Se, invece, il comando restituisce No such file or directory, il sistema potrebbe essere avviato in modalità BIOS (o CSM).
Connessione alla rete internet
Per consentire alla VM di accedere a Internet, seguire i seguenti passaggi. Innanzitutto, verificare il nome dell’interfaccia di rete con il comando ip -c a.
Nel nostro caso, l’interfaccia é identificata come ens18. Procedere quindi ad assegnare un indirizzo IP statico e un gateway:
I vari parametri, dipendono dalla propria configurazione di rete.
Impostare la timezone corretta
Per assicurarsi che l’orologio di sistema sia sincronizzato, utilizzare il comando timedatectl:
Partizionamento
Quando riconosciuti dal sistema, i dischi vengono assegnati a un dispositivo a blocchi, come /dev/sda, /dev/nvme0n1 o /dev/mmcblk0. Per identificare il dispositivo corretto, utilizzare il comando lsblk -f.
Il layout finale del disco descritto in questa guida prevede due partizioni:
| Partition | Size | fdisk code | Name |
|---|---|---|---|
| Boot (/dev/sda1) | 512.0 MiB | 1 | Partizione EFI |
| Root (/dev/sda2) | Resto del disco | 19 | File system Linux |
Una volta individuato il dispositivo, per creare la tabella e le relative partizioni, si consiglia l’uso di fdisk:
La sintassi è la seguente:
|
|
All’interno di fdisk, è possibile utilizzare i seguenti comandi:
g: per creare una nuova tabella delle partizioni GPTn: per creare una nuova partizionet: per cambiare il tipo della partizionew: per scrivere le modifiche sul disco
Partizione di root crittografata
Per crittografare la partizione di root, creare un file system e montare la partizione, seguire i passaggi elencati di seguito. Assicurarsi di scegliere una passphrase sicura per la crittografia.
Partizione di boot
Formattare la partizione EFI in FAT32 utilizzando il comando mkfs.fat:
Installazione del sistema base
Eseguire un’installazione di base:
|
|
Questo comando installerà il sistema di base, il kernel Linux e il firmware necessario per supportare l’hardware più comune nella partizione montata. Sono stati aggiunti anche alcune utility, come man, vim, sudo ecc.
Configurare il sistema
Generare fstab
Per garantire che i file system necessari siano montati all’avvio, generare il file fstab. Utilizzare l’opzione -U o -L per definire i file system tramite UUID o label, rispettivamente.
|
|
chroot
|
|
Il comando precedente serve a cambiare la root directory in /mnt, consentendo di interagire direttamente con il nuovo sistema come se fosse il sistema attualmente in esecuzione.
Fuso orario
Impostare il fuso orario:
Impostazione della lingua
Per utilizzare la formattazione corretta specifica per la regione e la lingua (come date, valuta, separatori decimali), modificare il file /etc/locale.gen, decommentando le localizzazioni UTF-8 che si intende utilizzare, per esempio en_US.UTF-8 UTF-8.
Quindi eseguire:
|
|
Creare il file /etc/locale.conf e impostare la variabile LANG di conseguenza:
Network configuration
Innanzitutto, impostare l’hostname della macchina col comando hostnamectl set-hostname archlinux. Quindi aggiungere le seguenti righe nel file /etc/hosts:
Sostituire archlinux con un hostname a scelta.
initramfs
Modificare il file /etc/mkinitcpio.conf per aggiungere gli hook per la crittografia. Si tratta di script o comandi che vengono eseguiti durante il processo di creazione dell’immagine initramfs. Questi hook consentono di personalizzare e configurare il comportamento del sistema all’avvio, permettendo di includere o escludere determinati moduli, servizi o funzionalità.
Spostare la funzione keyboard prima di encrypt, in modo da poter digitare la passphrase.
Dopo questa modifica, la riga HOOKS dovrebbe apparire come segue:
|
|
Poiché sono state apportate modifiche manuali al file /etc/mkinitcpio.conf, è necessario rigenerare l’immagine initramfs con le impostazioni aggiornate:
|
|
CPU microcode
Per garantire che la CPU funzioni in modo ottimale, è importante applicare le patch appropriate:
- Per processori AMD installare il pacchetto
amd-ucode - Per processori Intel installare il pacchetto
intel-ucode
Ad esempio, per installare il microcode per processori Intel, eseguire il seguente comando:
|
|
Nel caso di installazione su VM, questo passaggio puó essere omesso.
Gestione degli utenti
Impostare la password di root
Impostare una password sicura per l’utente root:
|
|
Creazione utente standard
Per creare un utente standard, che appartenga al gruppo sudo, utilizzare il comando useradd:
Infine, per consentire agli utenti creati di eseguire comandi come root utilizzando sudo, è necessario modificare il file visudo. In particolare, la riga che si riferisce al gruppo wheel deve essere decommentata. Per aprire il file visudo, eseguire semplicemente il comando visudo.
Una volta aperto il file, cercare la riga che contiene %wheel ALL=(ALL) ALL e decommentarla.
Bootloader
Un bootloader è un componente fondamentale del sistema operativo. Dopo che il bootloader ha completato il caricamento dell’OS, trasferisce il controllo al sistema operativo, consentendogli di gestire le risorse hardware del computer.
GRUB è spesso il bootloader predefinito in molte distribuzioni Linux, grazie alla sua flessibilità e alle sue ampie capacità di configurazione: consente infatti di gestire più sistemi operativi, offre opzioni avanzate di avvio, rendendolo ideale per utenti che necessitano di personalizzazione e controllo.
systemd-boot è una scelta più semplice e leggera, progettata per chi cerca un bootloader veloce e robusto, facile da configurare, con meno opzioni rispetto a GRUB.
Di seguito, vedremo come configurare entrambi i bootloader.
systemd-boot
Installare EFI boot manager col comando:
|
|
Creare il file /boot/loader/entries/arch.conf. Sostituire intel-ucode.img con amd-ucode.img se si dispone di una CPU AMD. Sostituire l’UUID con quello del dispositivo a blocchi /dev/sda2.
Il contenuto del file dovrebbe apparire come segue:
Creare il file /boot/loader/loader.conf:
Per rivedere la configurazione, torna utile il comando bootctl list.
GRUB
Installare i pacchetti necessari:
|
|
Creare la directory in cui verrà montata la partizione EFI:
|
|
Ora, montare la partizione ESP (EFI System Partition) nella directory appena creata:
|
|
Installare GRUB con il seguente comando:
|
|
Modificare le seguenti righe nel file /etc/default/grub:
Aggiornare infine la configurazione di GRUB:
|
|
Reboot
Uscire dall’ambiente chroot, digitando exit o premendo Ctrl+d. Successivamente, smontare la directory /mnt. Infine riavviare il sistema col comando reboot. Se non ci sono stati errori, ci troveremo dinnanzi alla seguente schermata:
Adesso é possibile installare un Desktop Environment a scelta, seguendo anche le General recommendations della wiki di Arch Linux.
Video
Di seguito, alcuni video utili, che riassumono la maggior parte dei passaggi:
oppure