Oggi, molte persone, si avvicinano al mondo GNU/Linux, un sistema operativo in continua crescita, grazie alla distribuzione Ubuntu, o una Linux Mint, poi diventano più esperte e si stufano… Optano di solito per distribuzioni come Debian o Fedora (distribuzioni ottime, niente da dire a riguardo, le ho usate entrambe), ma una distribuzione rimane (quasi) sempre all’oscuro: Arch Linux. Di solito, perchè è difficile da installare. Beh, in questo articolo vi convincerò che non è così, con un mio breve tutorial per l’installazione minimale e i successivi passaggi, per personalizzare GNOME, installare ALSA, Xorg, GDM, impostare i valori della console, il keymap, il font, la lingua, il fuso orario, i punti di forza di Arch Linux, tra le quali troviamo il forum, e il wiki, da dove è possibile prelevare una quantità abnorme di informazioni su questa distribuzione fantastica.

A chi è dedicata Arch Linux ?

Arch Linux, è una distribuzione GNU/Linux, la cui immagine pesa all’incirca 600 MB, tutto il necessario per fare un boot completo, il kernel, bootloader, una shell, il package manager, senza una shell grafica, né tantomeno un installer grafico. Arch Linux va, quindi, installata attraverso la CLI (Command Line Interface), è difficile per chi ha sempre utilizzato installer grafici molto semplici da utilizzare ( vedi l’installer di Ubuntu), oppure non se ne intende di bootloaders, fstab, partizionamento (ancora di più perché non è installato nemmeno GParted), e altro…

In questa guida/tutorial e recensione, spiegherò il significato di ogni comando nel modo più semplice che esista.

Derivate di Arch Linux

Arch, come altre distribuzioni che si rispettino (Debian, RedHat, ecc…) ha delle derivate, che integrano lo stesso core, gli stessi workaround, lo stesso sistema di init, lo stesso package manager, con dei miglioramenti, o, delle aggiunte dei vari team.

Di solito si installano le derivate di Arch per ottenere Arch Linux in modo molto semplice con un installer grafico che fa tutto automaticamente. O magari con un interfaccia semi-grafica (ncurses – libreria C [header C: ncurses.h] per lo sviluppo di interfacce GUI-Friendly(simili alle finestre scritte in GTK o Qt, o qualche altra libreria utilizzata per lo sviluppo di interfacce grafiche, segue lo sviluppo GNU))

La derivata che io consiglio maggiormente è Antergos, con Cnchi (l’installer grafico, sviluppato in linguaggio Python), tema Numix preinstallato, LigthDM (si veda Display Manager in fondo) e una scelta tra KDE, GNOME, LXDE, MATE, oppure si installa una shell testuale, senza Desktop Environment (si veda Desktop Environment e Server Grafico in fondo).

Tornando a noi, le derivate più conosciute sono (general purpose, ovvero intento generale):

  • Antergos
  • ArchBang
  • BlackArchLinux (Pentesting)
  • Chakra
  • Manjaro
  • ArchAssault (Pentesting)
  • BBQLinux (Per sviluppatori ROM, Kernels e Applicativi Android)
  • BlueStar Linux

E, molte altre.

Come installare Arch Linux? Iniziamo!

(Si presume che l’utente abbia flashato una pendrive USB, con bootloader installato e pronta all’uso, in caso contrario scarica ArchLinux dal repository italiano)

Avviamo la macchina, secondo la modalità di boot che l’utente preferisce per l’installazione, quindi, quando ci si trova davanti al bootloader (si veda Bootloader, in fondo), si effettua il boot selezionando l’architettura che la propria CPU supporta (nella maggior parte dei casi x86_64 [64 bit] va bene).
Dopo vari secondi ci si trova davanti una tty con login automatico, attendiamo 1 secondo e siamo entrati come root in zsh, la shell predefinita del processo di installazione di Arch. Cominciamo col partizionamento,

carichiamo il layout italiano della tastiera (ovvero la disposizione dei tasti)

# loadkeys it

Avvio ed utilizzo del programma di partizionamento CFDisk

eseguiamo

# cfdisk /dev/sdX #dove X è un valore a,b,c,d,e,f,g,h,i,l,m,n,o ecc...
Partizionamento con cfdisk, immagine non disponibile
crediti immagine: aptosid.com

entriamo così nel programma di partizionamento manuale CLI

ci ritroviamo davanti una schermata simile a questa, per eliminare l’intero hard disk e riscrivere la tabella delle partizioni da 0 (consigliato MBR o GPT), è necessario applicare DELETE a tutte le partizioni dell’hard disk. Se ci dovreste ripensare sull’installazione, niente panico, le modifiche non sono ancora state scritte, è sufficiente selezionare “quit” per abbandonare le modifiche e scrivere poweroff per spegnere il PC e riavviarlo da Hard Disk, altrimenti, se siete convinti, selezionate “Write”, a questo punto, abbiamo il nostro Hard disk totalmente pulito, dobbiamo ricreare 3 partizioni

  1. Partizione senza filesystem da 1MB, per il bootloader, type: BIOS Boot
  2. Partizione con punto di mount / (radice), filesystem ext4 , type Linux Filesystem (ovvero ext4), ID: 8300
  3. Partizione per lo swap, type: Linux Swap (swap)

 

per creare le partizioni è sufficiente selezionare New, poi specificare il size, ovvero la grandezza in MegaByte o GigaByte, per specificare l’unità di misura, è sufficiente scrivere la grandezza in numeri interi o a virgola mobile desiderata, in più, se la grandezza sarà in MegaByte bisogna specificare

M

, se in GigaByte

G

Esempio:

1M #Ovvero 1 MB
390G  #Ovvero 390 GB
4.5G #Ovvero 4,5 GB

adesso avremo delle partizioni identificate con

/dev/sdX

per la partizione 1, ovvero quella dedicata al bootloader, dobbiamo specificarla tale, quindi, avendo selezionato quella voce, clicchiamo in Type e selezioniamo

BIOS Boot

, e così via per le altre partizioni, per la seconda:

Linux Filesystem

, per la terza:

Linux swap

Formattazione in ext4 della seconda partizione e messa in esecuzione della swap area

Utilizziamo il tool mkfs.ext4 e mkswap

# mkfs.ext4 /dev/sdX     #dove X è la lettera della seconda partizione
# mkswap /dev/sdX     #dove X è la lettera della terza partizione

Montaggio della seconda partizione su /mnt e “accensione” dell’area di swap

Utilizziamo il tool mount

# mount /dev/sdX /mnt

Utilizziamo swapon per accendere la swap area

# swapon /dev/sdX

Che cos’è la swap area?
è l’estensione della memoria volatile del computer (ovvero della memoria RAM), utilizzando una porzione di un supporto di memorizzazione di massa (ad esempio l’hard disk) o una memoria flash (la pendrive)

Installazione del Sistema Operativo di base su /mnt
Utilizzando pacstrap, prima però configuriamo la connessione
Per le connessioni ethernet:

# ip link set  up

Per le wireless:

# ip link set  up
# wifi-menu

, adesso, in wifi-menu, un programma con interfaccia ncurses è possibile selezionare la wifi desiderata, e se richiesta una passphrase WPA o WEP

una volta connessi con pacstrap:

# pacstrap -i /mnt base base-devel dialog wpa_supplicant

dove il gruppo base, contiene i programmi di base: il kernel, una shell, gli headers, il compilatore GCC, il sistema di init e altro… Dialog è una dipendenza di wifi-menu, wpa_supplicant potrebbe essere necessario.

dopo una quindicina di minuti, il sistema di base è stato installato in /mnt (ovvero /dev/sdX)

Generazione di FStab
Con il tool genfstab

# genfstab -p /mnt > /mnt/etc/fstab

dove /mnt è il punto di montaggio della partizione, “>” indica la redirezione dell’output in /mnt(che sta per /dev/sdX)/etc/fstab

Che cos’è FStab?
un semplice file di testo che contiene informazioni sulle partizioni,

un esempio potrebbe essere l’fstab del mio PC

     # UUID=fb0c5cb6-a286-438d-9ccd-f95fbe02224f
     /dev/sda2           	/         	ext4      	rw,relatime,data=ordered0 1

     # UUID=921aa11c-ad6b-471a-bb81-125bfc6c9a47
     #                           
     /dev/sda3           	none      	swap      	defaults  	0 0

Si entra nel chroot
eseguendo il comando

# arch-chroot /mnt

quindi si passa da zsh a sh

Che cos’è il chroot?
Ch=change root=root ovvero change root, cambiare radice, consiste nel passaggio da un ambiente padre, a un ambiente figlio, spiegato in parole più semplici passa a un’altra directory, dove vengono eseguiti i processi figlio. E’ utilizzato in ambito di sicurezza.

Impostazione dei locale, hostname, password di root, fuso orario(timezone)

1) prima di tutto, con nano, editiamo il file

/etc/locale.gen

, togliendo il commento (rimuovendo il #) a it_IT.UTF-8 UTF-8 e it_IT.ISO-XXXX …

quindi:

# nano /etc/locale.gen
 *si toglie il cancelletto(#) a it_IT.UTF-8 UTF-8 per decommentare*
 *si salva con CTRL+O*
 *si esce con CTRL+X*

si genera il file locale con il comando locale-gen

# locale-gen

2) impostiamo un hostname, ovvero il nome del PC nella rete locale

# echo "il-nome-del-tuo-PC" > /etc/hostname

quindi invece che produrre l’output il-nome-del-tuo-PC nel canale output standart (stdout), viene rediretto verso il file /etc/hostname

è anche possibile creare il file /etc/hostname e inserire il nome dell’hostname direttamente da nano nella prima riga

# nano /etc/hostname

3)Impostiamo una password di root

con il comando passwd

# passwd

quindi ci verrà chiesto di immettere la nuova password UNIX
e poi di re-immetterla una seconda volta

4)Impostiamo la timezone

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

quindi si crea un collegamento simbolico di ../Rome in /etc/localtime

ReBuilding della ramdisk iniziale con mkinitcpio

# mkinitcpio -p linux

dove -p sta per preset (–preset) e linux è il preset ovvero un insieme di hooks e moduli predefinito di Arch,
mkinitcpio è uno script Bash sviluppato dalla comunità di Arch Linux
gli hooks sono degli script che vengono caricati dalla ramdisk, prima di caricare e poi passare il controllo al kernel.
La ramdisk, si occupa proprio di questo: caricare i moduli del kernel, gli script (hooks) e il vero e proprio kernel, poi si occupa di passare il controllo a lui,  che a sua volta lancia il cosidetto init system (nel nostro caso systemd) , che lancia i demoni richiesti, display manager, servizi di rete (demone WICD per esempio) e altro…
E’ il primo “programma” (Non è un vero e proprio programma) che viene caricato dopo il bootloader.

Installazione di GRUB

Come suggerito da un nostro lettore (Simone Padovan, che ringraziamo), installiamo os-prober per permettere a GRUB di rilevare altri sistemi operativi, installiamolo con pacman, dal pacchetto

os-prober
# pacman -S os-prober

scaricandolo e installandolo con pacman

# pacman -S grub

installare il bootloader in /dev/sdX, che vi ricordo è la SECONDA partizione

# grub-install /dev/sdX

aggiornamento della configurazione del bootloader

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

Che cos’è un bootloader ?
Un bootloader è il primo programma che viene eseguito all’avvio del computer, (che il sistema operativo venga eseguito da Hard Disk, pendrive ecc…), si occupa di fornire una visione dei sistemi operativi installati sul proprio computer e di lanciarli, ed è di fondamentale importanza, perchè senza di esso, non è possibile utilizzare un computer. GNU GRUB è al giorno d’oggi uno dei bootloader più utilizzati e più evoluti, infatti non è un semplice bootloader, è possibile infatti, assegnargli un tema ad esempio, cambiarne il colore, gestirlo più facilmente grazie ad appositi applicativi (Grub-customizer ad esempio). Ovviamente, ci sono altri bootloader: LILO, Syslinux ecc… Anche chi utilizza Winz(ehm…dows) passa prima per il bootloader, dopo passa al kernel. e così via, solo che non è così evidente come nei kernel Linux.

Uscita dal chroot, smontaggio partizioni, spegnimento swap e riavvio del Computer
si esce dal chroot con

# exit

smontaggio della seconda partizione

# umount /mnt

spegnimento dello swap

# swapoff /dev/sdX

riavvio

# reboot

Primo avvio, impostazione valori di /etc/vconsole.conf
per prima cosa impostiamo i valori di vconsole.conf
adesso avrete la keymap us se non sbaglio,
per impostare quella italiana:

loadkeys it

quindi eseguite

# nano /etc/vconsole.conf

e scrivete i seguenti valori:

 KEYMAP=it
 LANG=it

salvate con

CTRL+O

e uscite con

CTRL+X

Impostazione dell’utente
supponiamo di voler creare un utente senza privilegi di root chiamato user1

# useradd -m -s /bin/bash user1

dove le opzioni significano:

  • -m : crea la directory /home/user1
  • -s, argomento /bin/bash : l’utente user1 utilizza bash come shell di login
  • user1 : indica il nome dell’utente da creare

assegnamo una password all’utente:

# passwd user1

e come abbiamo fatto per root, assegniamo la password 2 volte

se vogliamo assegnare all’utente la possibilità di ottenere i privilegi di root:
dobbiamo includerlo nel file /etc/sudoers

quindi, diciamo, che possiamo scriverlo dove vogliamo, ma per ordine lo scriviamo sotto a root:

con nano:

# nano /etc/sudoers

aggiungiamo questa stringa:

 user1 ALL=(ALL) ALL

quindi, adesso, al prossimo login, possiamo loggarci con user1, la password che abbiamo scelto, e la possibilità di avere una shell root
con il comando:

 sudo -s

(Sconsiglio l’uso di visudo)

Riavviamo

#reboot

Configurazione rete wireless (WiFi) o ethernet
1)Per la rete ethernet dovrebbe essere sufficiente:

# ip link set  up

per indirizzi IP Dinamici:

# systemctl enable dhcpcd.service

per indirizzi IP Statici:
utilizzare netctl

# cd /etc/netctl
# cp examples/ethernet-static configurazione_rete

navigare in /etc/netctl
copiare ethernet-static da examples in configurazione_rete
modificare quindi i valori del file configurazione_rete (INTERFACE,DNS, e altri…) con nano:

# nano configurazione_rete

una volta salvato il file:

# netctl enable configurazione_rete

2)Per la rete wireless, se avete installato e dialog da pacstrap:

# ip link set  up
wifi-test

seguite le istruzioni riportate sopra, anche se è molto semplice da interpretare, in quanto integra una interfaccia semi-grafica (ncurses).

Aggiornamento completo del sistema: sincronizzazione pacchetti e database
verifichiamo, prima di continuare che il sistema sia aggiornato:

# pacman -Syu

successivamente ci soffermeremo su pacman, e sulla gestione dei repository.

Riavvio

# reboot

Installazione e configurazione di ALSA
ALSA, ovvero Advanced Linux Sound Architecture, è un insieme di driver audio del kernel Linux, al momento è il più evoluto,
per installare ALSA e attivare il suono:

# pacman -S alsa-utils

pochi secondi e lanciate il programma

# alsamixer

che fornisce un interfaccia ncurses (semi-grafica) di un mixer audio, aumentate il volume di master e degli speaker, sarà possibile verificare che tutto funzioni una volta installato il DE

Installazione dei drivers !!Importante!!
1)Driver video open source

# pacman -S xf86-video-intel

per GPU integrate Intel

# pacman -S xf86-video-ati

per GPU dedicate ATI
(per una lista completa:

pacman -Ss xf86-video | less

)

2)Driver vesa:
non fornisce accellerazione, è generale e funziona con quasi tutte le GPU, se Xorg non trova un driver migliore, farà riferimento a vesa

# pacman -S xf86-video-vesa

3)Driver di input
per utenti che come me sono su laptop o con schermi touch-screen devono installare questo driver:

# pacman -S xf86-input-synaptics

4)Driver mesa per l’accellerazione 3D:

#pacman -S mesa

Installazione di Xorg
Xorg è il server grafico che gestisce le finestre, è la base di ogni desktop environment (GNOME, KDE, Unity, Mate, Cinnamon, ecc…), che permette di eseguire una GUI

Pacchetti da installare:

#pacman -S xorg-server xorg-xinit xorg-server-utils

IMPORTANTE: Continua in ArchWiki#TestareX
Installazione di GDM

per installare e abilitare GDM è sufficiente eseguire:

# pacman -S gdm
# systemctl enable gdm

Installazione di GNOME
per installare gnome:

# pacman -S gnome

, pacchetto base

# pacman -S gnome-extra

, pacchetto aggiuntivo, dopo il pacchetto base
Per ulteriori informazioni: ArchWiki:GNOME

In teoria, l’installazione è finita, ci auguriamo che tutto sia andato per il meglio e ci vediamo nella seconda parte, con tips & tricks sulla personalizzazione e recensione su Arch Linux, più mie opinioni.

Vi ricordo di consultare la Wiki di Arch, linkata sopra, e il forum, linkato sopra. Non ci assumiamo alcuna responsabilità di danni causati alle vostre macchine! Consigliamo di eseguire l’installazione prima su VirtualBox, dopo su una macchina fisica.