fstab (Italiano)
Il file fstab(5) può essere utilizzato per definire come le partizioni dei dischi, vari altri dispositivi a blocchi o file system remoti debbano essere montati all'interno del file system.
Ogni file system è descritto in una linea separata. Queste definizioni verranno convertite dinamicamente in unità di montaggio systemd al momento del boot e quando la configurazione del gestore di sistema viene ricaricata. Per impostazione predefinita verrà eseguito automaticamente il controllo del file system e il montaggio dei file system prima di avviare i servizi che potrebbero necessitare di detti file system. Ad esempio, systemd assicura in modo automatico che il montaggio dei file system remoti quali NFS o Samba venga avviato solo una volta completata l’impostazione della rete. Pertanto il montaggio dei file system specificati in /etc/fstab
, sia locali che remoti, dovrebbe funzionare senza bisogno di ulteriori impostazioni. Vedere systemd.mount(5) per maggiori dettagli.
Qualora venga passato come argomento solo uno tra la directory di montaggio o il dispositivo, il comando mount
utilizzerà fstab per completare il valore relativo all’altro parametro. In questo caso vengono applicate anche le opzioni di montaggio elencate in fstab.
Utilizzo
Un semplice file /etc/fstab
, con utilizzo degli UUID dei file system:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 defaults 0 1 UUID=f9fe0b69-a280-415d-a03a-a32752370dee none swap defaults 0 0 UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults 0 2
<device>
descrive il dispositivo a blocchi speciale o il file system remoto da montare; vedere #Identificazione dei file system.<dir>
descrive la directory di montaggio.<type>
il tipo di file system.<options>
lo opzioni di montaggio associate; vedere mount(8) § FILESYSTEM-INDEPENDENT MOUNT OPTIONS e ext4(5) § Mount options for ext4.<dump>
viene verificato dallo strumento dump(8). Il valore di questo campo è di norma impostato su0
, con conseguente disabilitazione della verifica.<fsck>
definisce l’ordine dei controlli del file system al momento del boot; vedere fsck(8). Il valore per il dispositivo root dovrebbe essere1
. Per le altre partizioni dovrebbe essere2
, o0
per disabilitare il controllo.
- L’opzione
auto
per il tipo lascia che sia il comando mount a identificare il tipo di file system utilizzato. Questa soluzione risulta utile per i dispositivi ottici (CD/DVD/Blu-ray). - Se il file system root è btrfs o XFS, l’ordine di controllo del file system dovrebbe essere impostato su
0
anziché1
. Vedere fsck.btrfs(8) e fsck.xfs(8).
Tutti i dispositivi specificati all’interno di /etc/fstab
verranno montati automaticamente all’avvio e quando viene utilizzata la flag -a
con il comando mount(8), a meno che non sia specificata l’opzione noauto
. I dispositivi elencati ma non presenti daranno origine a un errore, a meno che non sia utilizzata l’opzione nofail
.
Vedere fstab(5) § DESCRIPTION per i dettagli.
Identificazione dei file system
Ci sono diversi modi di identificare i file system che verranno montati in /etc/fstab
: descrittore del nome del kernel, etichetta del file system e UUID, e etichetta della partizione GPT e UUID per i dischi GPT. Si consiglia evitare l’utilizzo dei descrittori del nome del kernel, e di preferire l’uso degli UUID o degli PARTUUID a quello delle etichette. Vedere Persistent block device naming per spiegazioni più dettagliate. Si raccomanda di leggere questo articolo prima proseguire nella lettura di questa pagina.
In questa sezione procederemo a descrivere, con l’ausilio di esempi, come montare i file system utilizzando tutti i metodi di montaggio disponibili. L’output dei comandi lsblk -f
e blkid
utilizzato nei seguenti esempi è disponibile nell’articolo Persistent block device naming.
Descrittori del nome del kernel
Eseguire lsblk -f
per elencare le partizioni e aggiungere /dev/
come prefisso ai valori nella colonna "NAME".
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> /dev/sda1 /boot vfat defaults 0 2 /dev/sda2 / ext4 defaults 0 1 /dev/sda3 /home ext4 defaults 0 2 /dev/sda4 none swap defaults 0 0
/etc/fstab
).Etichette dei file system
Eseguire lsblk -f
per elencare le partizioni, e aggiungere LABEL=
come prefisso ai valori nella colonna LABEL o, in alternativa, eseguire blkid
e utilizzare i valori LABEL senza le virgolette:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> LABEL=ESP /boot vfat defaults 0 2 LABEL=System / ext4 defaults 0 1 LABEL=Data /home ext4 defaults 0 2 LABEL=Swap none swap defaults 0 0
UUID dei file system
Eseguire lsblk -f
per elencare le partizioni, e aggiungere UUID=
come prefisso ai valori nella colonna UUID o, in alternativa, eseguire blkid
e utilizzare i valori UUID senza le virgolette:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> UUID=CBB6-24F2 /boot vfat defaults 0 2 UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 defaults 0 1 UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults 0 2 UUID=f9fe0b69-a280-415d-a03a-a32752370dee none swap defaults 0 0
Etichette delle partizioni GPT
Eseguire blkid
per elencare le partizioni, e utilizzare i valori PARTLABEL senza le virgolette:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> PARTLABEL=EFI\040system\040partition /boot vfat defaults 0 2 PARTLABEL=GNU/Linux / ext4 defaults 0 1 PARTLABEL=Home /home ext4 defaults 0 2 PARTLABEL=Swap none swap defaults 0 0
UUID delle partizioni GPT
Eseguire blkid
per elencare le partizioni, e utilizzare i valori PARTUUID senza le virgolette:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> PARTUUID=d0d0d110-0a71-4ed6-936a-304969ea36af /boot vfat defaults 0 2 PARTUUID=98a81274-10f7-40db-872a-03df048df366 / ext4 defaults 0 1 PARTUUID=7280201c-fc5d-40f2-a9b2-466611d3d49e /home ext4 defaults 0 2 PARTUUID=039b6c1c-7553-4455-9537-1befbc9fbc5b none swap defaults 0 0
Trucchi e suggerimenti
Montaggio automatico con systemd
Vedere systemd.mount(5) per tutte le opzioni di montaggio di systemd.
Partizione locale
Nel caso di una partizione di grandi dimensioni, potrebbe risultare più efficiente consentire l'avvio dei servizi che non dipendono da essa mentre viene eseguito il controllo fsck. È possibile farlo aggiungendo le seguenti opzioni alla voce in /etc/fstab
per la partizione interessata:
x-systemd.automount
Quest'opzione fa sì che la partizione venga controllata da fsck e montata solo quando viene effettuato il primo accesso alla partizione stessa, e il kernel conserverà un buffer di tutti gli accessi ai file fino a quando non sarà pronta.
Questo metodo può essere utile nel caso, ad esempio, di una partizione /home
di dimensioni significative.
autofs
che viene ignorato da locate per impostazione predefinita.File system remoti
Lo stesso principio si applica al montaggio dei file system remoti. Se si desidera montarli solo all'accesso, sarà necessario utilizzare i parametri x-systemd.automount
. In aggiunta, è possibile utilizzare l'opzione x-systemd.mount-timeout=
per specificare il tempo per cui systemd deve attendere che l'operazione di montaggio si completi. Inoltre, l'opzione _netdev
assicura che systemd capisca che l'operazione di montaggio dipende dalla rete e che ne ordini pertanto l'esecuzione solo dopo che la rete stessa risulti online.
x-systemd.automount,x-systemd.mount-timeout=30,_netdev
File system cifrati
In presenza di file system cifrati con keyfile, è inoltre possibile aggiungere il parametro noauto
alle voci corrispondenti in /etc/crypttab
. In questo caso, systemd non aprirà il dispositivo cifrato al boot, attendendo invece il momento in cui vi viene effettivamente fatto l'accesso per aprirlo quindi in modo automatico utilizzando il keyfile specificato prima di montarlo. Questo accorgimento potrebbe permettere di risparmiare alcuni secondi in fase di boot se, ad esempio, si utilizza un dispositivo RAID cifrato, poiché systemd non deve attendere che il dispositivo divenga disponibile. Ad esempio:
/etc/crypttab
data /dev/md/MyRAIDArray /etc/cryptsetup-keys.d/data.key noauto
Smontaggio automatico
È inoltre possibile specificare un timeout di idle per un dispositivo montato utilizzando la flag x-systemd.idle-timeout
. Ad esempio:
x-systemd.automount,x-systemd.idle-timeout=1min
Ciò darà istruzione a systemd di smontare il dispositivo montato dopo che questo si sia trovato per 1 minuto in stato di idle.
Dispositivi esterni
I dispositivi esterni che devono essere montati quando presenti ma ignorati se assenti potrebbero richiedere l'utilizzo dell'opzione nofail
. Questo accorgimento impedisce che vengano riportati errori durante il boot. Ad esempio:
/etc/fstab
LABEL=MyExternalDrive /media/backup jfs nofail,x-systemd.device-timeout=5 0 2
L'opzione nofail
andrebbe idealmente abbinata all'opzione x-systemd.device-timeout
. Ciò in ragione del fatto che il tempo di timeout del dispositivo è, per impostazione predefinita, 90 secondi, pertanto un dispositivo esterno disconnesso e con la sola opzione nofail
comporterà un aumento di 90 secondi del tempo di boot, a meno di riconfigurare il timeout come illustrato. Assicurarsi di non impostare il timeout su 0, in quanto questo valore di traduce in un tempo di timeout infinito.
Spazi nel percorso del file
Dal momento che in fstab
gli spazi sono utilizzati per delimitare i campi, se un qualunque campo (PARTLABEL, LABEL o il punto di montaggio) contiene spazi, questi devono essere sostituiti con caratteri di escape \
seguiti dal codice a tre cifre in base otto 040
:
/etc/fstab
UUID=47FA-4071 /home/username/Camera\040Pictures vfat defaults 0 0 LABEL=Storage\040drive /media/100\040GB\040(Storage) ext4 defaults,user 0 2
Opzioni atime
Le opzioni atime indicate di seguito possono condizionare le prestazioni dei drive.
- L'opzione
strictatime
aggiorna l'ora di accesso dei file a ogni accesso ai file stessi. Quest'opzione risulta maggiormente significativa nei casi in cui Linux è utilizzato per i server, mentre risulta poco sensata negli utilizzi desktop. Lo svantaggio dell'opzionestrictatime
è rappresentato dal fatto che anche la lettura di un file dalla cache della pagina (lettura effettuata dalla memoria anziché dal drive) risulterà in un'operazione di scrittura. - L'opzione
noatime
disabilita completamente la scrittura dell'ora di accesso ai file sul drive a ogni lettura dei file stessi. Questa configurazione funziona in modo ottimale per pressoché tutte le applicazioni, fatta eccezione per quelle in cui è necessario sapere se il file è stato letto dall'ultima volta in cui è stato modificato. Con questa opzione abilitata, l'informazione sull'ora di scrittura su un file continuerà a essere aggiornata ogniqualvolta che viene effettuata una scrittura sul file stesso. - L'opzione
nodiratime
disabilita la scrittura dell'ora di accesso ai file solo per le directory mentre l'ora di accesso continua a essere scritta per gli altri file. relatime
aggiorna l'ora di accesso solo se l'ora di accesso precedente era precedente all'ora attuale di modifica. Inoltre, a partire dalla versione 2.6.30 di Linux, l'ora di accesso viene sempre aggiornata se l'ora di accesso precedente risulta oltre 24 nel passato. Quest'opzione viene utilizzata quando è impostata l'opzionedefaults
, l'opzioneatime
(il che significa utilizzare l'impostazione di default del kernel, che èrelatime
; vedere mount(8) e Wikipedia) o quando non è impostata alcuna opzione.
Quando si utilizza Mutt o altre applicazioni che necessitano di sapere se il file è stato letto dall'ultima volta in cui è stato modificato, è opportuno non utilizzare l'opzione noatime
; l'utilizzo dell'opzione relatime
è accettabile pur garantendo allo stesso tempo un miglioramento delle prestazioni.
A partire dalla versione 4.0 del kernel è disponibile un'ulteriore opzione:
lazytime
riduce le scritture sul disco conservando le modifiche nei timestamp inode (ore di accesso, modifica creazione) solo in memoria. I timestamp sul disco vengono aggiornati solo allorché (1) l'inode del file debba essere aggiornato per una modifica non correlata ai timestamp del file, (2) si verifichi un errore di sincronizzazione con un disco, (3) un inode non cancellato sia espulso dalla memoria o (4) siano trascorse oltre 24 ore dall'ultima volta in cui una copia in memoria è stata scritta su disco.
- Attenzione: In caso di un crash di sistema, le ore di accesso e modifica su disco potrebbero non risultare aggiornate per un tempo fino a 24 ore.
È importante notare che l'opzione lazytime
funziona in combinazione con le opzioni *atime
precedentemente descritte, e non come alternativa ad esse. L'opzione abbinata per impostazione predefinita è relatime
, ma potrebbe anche essere strictatime
con un costo uguale o inferiore in termini di scritture su disco rispetto all'opzione di base relatime
.
Rimontaggio della partizione root
Se per qualche motivo la partizione di root è stata impropriamente montata in sola lettura, rimontare la partizione di root con accesso in lettura-scrittura con il seguente comando:
# mount -o remount,rw /
Montaggio automatico di una partizione GPT
Se si utilizza un sistema UEFI/GPT, è possibile omettere determinate partizioni da /etc/fstab
effettuando il partizionamento come da specifiche sulle partizioni individuabili e lasciando che sia systemd-gpt-auto-generator(8) a effettuare il montaggio delle partizioni. Vedere systemd#GPT partition automounting.
Montaggio bind
È possibile montare le directory come link con l'opzione bind
:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> UUID=94649E22649E06E0 /media/user/OS/ ntfs defaults,rw,errors=remount-ro 0 0 /media/user/OS/Users/user/Music/ /home/user/Music/ none defaults,bind 0 0 /media/user/OS/Users/user/Pictures/ /home/user/Pictures/ none defaults,bind 0 0 /media/user/OS/Users/user/Videos/ /home/user/Videos/ none defaults,bind 0 0 /media/user/OS/Users/user/Downloads/ /home/user/Downloads/ none defaults,bind 0 0 /media/user/OS/Users/user/Documents/ /home/user/Documents/ none defaults,bind 0 0 /media/user/OS/Users/user/projects/ /home/user/projects/windows/ none defaults,bind 0 0
Vedere mount(8) § Bind mount operation per maggiori dettagli.
Generazione automatica di un file fstab utilizzando genfstab
È possibile utilizzare lo strumento genfstab per creare un file fstab. Vedere genfstab per maggiori dettagli.