Amministrazione del file /etc/fstab/

Da Wikipedia, l'enciclopedia libera.

Il fstab (/etc/fstab) (da File System Table, tabella dei file system) è, nei sistemi Unix e Unix-like (come ad esempio GNU/Linux e FreeBSD) un file di configurazione che si trova all'interno della cartella /etc (secondo lo standard FHS) ed il cui proprietario è l'utente root. Il file elenca tutti i dischi e le partizioni disponibili e come essi debbano essere montati o comunque preparati per integrarsi nel file system principale. fstab è tuttora usato per la configurazione di sistema, ma è solitamente affiancato dal montaggio automatico dei dischi da parte del sistema.

Il file fstab è solitamente usato dal comando mount che legge il file per determinare le opzioni da utilizzare per il montaggio di una determinata periferica. In alcune versioni di Unix il file si chiama diversamente: in Solaris, ad esempio, si trova come /etc/vfstab. …”

Che cos’è fstab

Il file /etc/fstab, è un file di configurazione e contiene al suo interno tutte le informazioni necessarie al montaggio dei device, partizioni e periferiche di archiviazione (comprese eventualmente le risorse remote condivise con Samba). Come tutti i file di configurazione in Linux, si può editare e modificare con un semplice editor di testi come nano.

La sua amministrazione è fondamentale ogni volta che vogliamo montare delle partizioni nuove create con fdisk , montare risorse remote condivise, e, in generale, ogni volta che vogliamo eseguire il mount di periferiche di archiviazione in automatico, in un certo punto del file system, ad ogni riavvio del sistema.

Vediamo la struttura di questo file di configurazione.

In /etc/fstab, sono contenuti i seguenti campi:

<file system> <mount point> <type> <options> <dum> <pass>

ciascun campo va definito con i valori del device che si intende montare, in una stringa di questo genere:

<file system> <mount point>   <type>               <options>  <dum>             <pass>
[device]     [punto di mount] [tipo di file-system] [opzioni]  [valore da 0 a 1] [valore da 0 a 2]

ciascun device va inserito su di una riga diversa, così, se avessimo più device in /etc/fstab, visualizeremmo un file di questo genere:

<file system> <mount point>   <type>               <options>  <dum>             <pass>
[device]     [punto di mount] [tipo di file-system] [opzioni]  [valore da 0 a 1] [valore da 0 a 2]
[device]     [punto di mount] [tipo di file-system] [opzioni]  [valore da 0 a 1] [valore da 0 a 2]
[device]     [punto di mount] [tipo di file-system] [opzioni]  [valore da 0 a 1] [valore da 0 a 2]

Inserire un device in fstab

Supponiamo di voler montare una partizione denominata /dev/sda1, in un punto di mount creato precedentemente in /home/partizione, formattata con il file system ext4, inseriremmo, per un montaggio “standard”, la seguente stringa:

/dev/sda1 /mnt/partizione ext4 defaults 0 2

Editiamo fstab con un editor di testi:

# nano /etc/fstab

otteniamo un file editato di questo tipo:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda6 during installation
UUID=8a9cf801-35e0-4d7b-9a3c-3e4b6863e4fc / ext4 errors=remount-ro 0 1
/dev/sda5 none swap sw 0 0

Inseriamo sotto i device già presenti quello nuovo, che vogliamo montare, inserendo la stringa sopra indicata:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda6 during installation
UUID=8a9cf801-35e0-4d7b-9a3c-3e4b6863e5fb / ext4 errors=remount-ro 0 1
/dev/sda5 none swap sw 0 0
/dev/sda1 /mnt/partizione ext4 defaults 0 2

Per quanto riguarda i primi tre valori, /dev/sda1 /mnt/partizione ext4, non c’è molto da dire: il primo è il device, il secondo il point mount, e il terzo il tipo difile system. Concentriamoci su <options>, <dum> e <pass>, rispettivamente impostati su defaults0 2.

Sotto <options> sono da inserire le eventuali opzioni che vogliamo attribuire al montaggio del device; l’opzione defaults, prevede una serie di opzioni predefinite per il tipo di file system impostato sotto <type>. Nel caso di ext4 le opzioni comprese in defaults sono: rw, suid, dev, exec, auto, nouser, async. Analiziamole:

rw – permette che il mount della partizione avvenga sia in lettura che in scrittura
suid – consente di attivare per la partizione le operazioni di Suid Sgid (vi rimando a Wikipedia per maggiori dettagli su questi particolari permessi).
dev
 – permette di interpretare le periferiche a blocchi
exec – consente di abilitare l’esecuzione dei programmi, se presenti nella partizione montata
auto – permette il montaggio automatico della partizione all’avvio del sistema, o, se eseguito il semplice comando mount -a.
nouser – permette  al solo utente  root  il montaggio della partizione
async – permette le operazioni di lettura/scrittura solo asincrone

l’ impostazione defaults, generalmente soddisfa le esigenze dei più comuni utilizzi dei device di archiviazione. (l’elenco completo delle opzioni di fstab lo trovatequi)

Sotto <dum> e <pass> vanno inseriti, rispettivamente, due valori numerici. <dum> si riferisce a un programma, dump, che esegue in background il backup del file system. Se impostato su 0dump non lo eseguirà; è chiaro che dump debba essere installato sulla distribuzione Linux utilizzata; in genere, si imposta il valore su 0, sopratutto se non abbiamo installato dump sul pc. Il campo <pass> consente di attivare o disattivare il controllo del disco all’avvio del sistema, nonché di impostare la priorità dei controlli; se impostato su 0 il controllo non verrà effettuato, se impostato su 1 il controllo avverrà prioritariamente rispetto agli altri device, se impostato su 2 il controllo avverrà successivamente a quello prioritario.

Dopo aver impostato tutti i valori salviamo e chiudiamo il file. A questo punto, o riavviamo il sistema, e dovremmo trovare i nuovi device montati, o eseguiamo il comando:

# mount -a

Comando che monta tutti i device presenti in fstab per i quali sia impostata l’opzione auto (l’opzione auto, se vi ricordate, è compresa nell’opzione defaults).


Il codice  UUID:

È molto probabile, come accade nel codice sopra riportato, che i device vengano identificati dal sistema, anche e sopratutto, tramite un codice universale di identificazione (UUID – Universally Unified IDentifier). Se si vuole inserire un device tramite il suo UUID, sistema ben più preciso di identificazione, è necessario sostituire /dev/sdX con il dodice stesso:

UUID=8a9cf801-35e0-4d7b-9a3c-3e4b6863e4fc /mnt/partizione ext4 defaults 0 2

Per ricordarsi meglio di quale device si tratta, possiamo scrivere il nome, /dev/sdX, nella riga superiore preceduto da #, in questo modo:

#/dev/sdX
UUID=8a9cf801-35e0-4d7b-9a3c-3e4b6863e5fb /mnt/partizione ext4 defaults 0 2

Infine, diciamo che, per conoscere l’ UUID del device è sufficiente digitare il seguente comando:

$ blkid

Otterremo come output l’elenco dei device con il loro UUID a fianco.