fstab (Italiano)

From ArchWiki

Translation Status: This article is a localized version of Fstab. Last translation date: 2024-02-15. You can help to synchronize the translation, if there were changes in the English version.

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
Suggerimento:
  • 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

This article or section needs expansion.

Reason: Sono presenti più percorsi dei dispositivi oltre ai descrittori del nome del kernel. /dev/disk/by-*/*, /dev/mapper/*, /dev/md/* possiedono vari livelli di persistenza e il loro utilizzo non dovrebbe causare problemi. (Discuss in Talk:Fstab (Italiano))

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
Attenzione: I descrittori del nome del kernel per i dispositivi a blocchi non sono persistenti e possono variare a ogni boot e, per questa ragione, non dovrebbero essere utilizzati nei file di configurazione (incluso /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
Nota: Se qualunque dei vostri campi contiene spazi, vedere #Spazi nel percorso del file.

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
Nota: Se qualunque dei vostri campi contiene spazi, vedere #Spazi nel percorso del file.

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.

Nota: Adottando questa soluzione, il tipo di file system diverrà autofs che viene ignorato da mlocate 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

This article or section is a candidate for merging with dm-crypt/System configuration#Mounting on demand.

Notes: /etc/crypttab esula dalle finalità del presente articolo. (Discuss in Talk:Fstab (Italiano))

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'opzione strictatime è 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.
    Nota: noatime implica nodiratime. Non è necessario specificare entrambe le opzioni.
  • 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'opzione defaults, l'opzione atime (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.

Vedere anche