Difference between revisions of "Fstab (Italiano)"

From ArchWiki
Jump to: navigation, search
(Gli UUID: page updated)
(tmpfs: fixed internal link)
(35 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
{{lowercase title}}
 
[[Category:File systems (Italiano)]]
 
[[Category:File systems (Italiano)]]
[[Category:HOWTOs (Italiano)]]
 
 
[[Category:Boot process (Italiano)]]
 
[[Category:Boot process (Italiano)]]
{{i18n|Fstab}}
+
[[ar:Fstab]]
 +
[[en:Fstab]]
 +
[[es:Fstab]]
 +
[[ja:Fstab]]
 +
[[ro:Fstab]]
 +
[[ru:Fstab]]
 +
[[zh-CN:Fstab]]
 +
[[zh-TW:Fstab]]
 +
{{Article summary start|Sommario}}
 +
{{Article summary text|Quest'articolo spiega come configurare ed usare fstab.}}
 +
{{Article summary heading|Correlati}}
 +
{{Article summary wiki|Persistent block device naming (Italiano)}}
 +
{{Article summary wiki|NTFS Write Support (Italiano)}}
 +
{{Article summary wiki|Firefox Ramdisk}}
 +
{{Article summary wiki|Boot Debugging}}
 +
{{Article summary wiki|udev (Italiano)}}
 +
{{Article summary end}}
  
Il file {{Filename|/etc/fstab}} contiene le informazioni sul filesystem. In esso viene definito come le partizioni e le periferiche di archiviazione saranno utilizzate all'interno del sistema.
+
Il file [[Wikipedia:it:Fstab|/etc/fstab]] contiene le informazioni sul filesystem. In esso viene definito come le partizioni e le periferiche di archiviazione saranno montate all'interno del sistema. Questo file verrà letto dal comando {{ic|mount}} per determinare quali opzioni utilizzare per montare una specifica periferica o una partizione.
  
 
== Esempio ==
 
== Esempio ==
 +
Questo è un esempio del file {{ic|/etc/fstab}} usando i descrittori del kernel:
  
Questo è un esempio del file {{Filename|/etc/fstab}} usando i descrittori del kernel (/dev/sdx):
+
{{hc|/etc/fstab|
 
+
# <file system>        <dir>        <type>    <options>            <dump> <pass>
# <file system>        <dir>        <type>    <options>            <dump> <pass>
+
/dev/sda1             /            ext4      defaults,noatime     0      1
devpts                /dev/pts      devpts    defaults                0      0
+
/dev/sda2             none         swap      defaults             0      0
shm                    /dev/shm      tmpfs    nodev,nosuid            0      0
+
/dev/sda3             /home        ext4      defaults,noatime      0      2}}
+
/dev/sda2             /            ext4      defaults,noatime       0      1
+
/dev/sda6             /home        ext4      defaults,noatime        0      2
+
/dev/sda7              swap         swap      defaults               0      0
+
 
+
 
+
Questo è un altro esempio contenente l'uso di altre opzioni di {{Codeline|mount}} e l'uso delle etichette({{Codeline|LABEL}}=) per identificare le periferiche.
+
<pre>
+
devpts          /dev/pts      devpts      defaults          0 0
+
shm            /dev/shm      tmpfs      nodev,nosuid      0 0
+
 
+
LABEL=BOOT      /boot          ext2 defaults             0 2
+
LABEL=ROOT      /               ext4 defaults,noatime     0 1
+
LABEL=USR      /usr            ext4 defaults,noatime      0 2
+
LABEL=VAR      /var            ext4 defaults,noatime     0 2
+
LABEL=OPT      /opt            ext4 defaults,noatime      0 2
+
LABEL=HOME      /home          ext4 defaults,noatime      0 2
+
</pre>
+
  
 
==Definizione dei campi==
 
==Definizione dei campi==
  
In {{Filename|/etc/fstab}} sono contenuti i seguenti campi separati da spazzi o tabulazioni:
+
In {{ic|/etc/fstab}} sono contenuti i seguenti campi separati da spazzi o tabulazioni:
  
 
  <file system> <dir> <type> <options> <dump> <pass>
 
  <file system> <dir> <type> <options> <dump> <pass>
  
* '''<file systems>''' - definisce la periferica di archiviazione o la partizione(es. {{Filename|/dev/sda1}},{{Filename|/dev/dvd}},ecc.).
+
* '''<file systems>''' - definisce la periferica di archiviazione o la partizione.
 
* '''<dir>''' - indica al comando mount la cartella dove sarà  montata la partizione(<file system>).
 
* '''<dir>''' - indica al comando mount la cartella dove sarà  montata la partizione(<file system>).
* '''<type>''' - indica il tipo di file system della partizione o del dispositivo. Sono supportati diversi file system. Alcuni esempi sono: ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap, ed auto. L'opzione 'auto' lascia riconoscere al comando mount il tipo di file system da utilizzare, questa opzione e utile in caso di periferiche rimovibili come cdrom e dvd.
+
* '''<type>''' - indica il tipo di file system della partizione o del dispositivo. Sono supportati diversi file system. Alcuni esempi sono: {{ic|ext2}}, {{ic|ext3}}, {{ic|reiserfs}}, {{ic|xfs}}, {{ic|jfs}}, {{ic|smbfs}}, {{ic|iso9660}}, {{ic|vfat}}, {{ic|ntfs}}, {{ic|swap}}, ed {{ic|auto}}. L'opzione {{ic|auto}} lascia riconoscere al comando mount il tipo di file system da utilizzare, questa opzione e utile in caso di supporti ottici (CD/DVD).
* '''<options>''' - indica le opzioni da utilizzare sui file system. Alcune opzioni fanno riferimento a specifici file system, altre invece sono generiche:
+
* '''<options>''' - indica le opzioni utilizzate dal comando mount sul file system. Alcune [http://linux.die.net/man/8/mount opzioni di mount] fanno riferimento a specifici file system, altre invece sono generiche:
  
:* auto - Il file system sarà  montato automaticamente durante l'avvio del sistema, oppure quando viene lanciato il comando 'mount -a'.
+
:* {{ic|auto}} - Il file system sarà  montato automaticamente durante l'avvio del sistema, oppure quando viene lanciato il comando {{ic|mount -a}}.
:* noauto - Il file system non sarà montato automaticamente ma solo manualmente.
+
:* {{ic|noauto}} - Il file system non sarà montato automaticamente ma solo manualmente.
:* exec - Abilita l'esecuzione dei file eseguibili residenti sulla partizione(abilitata di default).
+
:* {{ic|exec}} - Abilita l'esecuzione dei file eseguibili residenti sulla partizione(abilitata di default).
:* noexec - Inibisce la possibilità  di eseguire programmi dal file system.
+
:* {{ic|noexec}} - Inibisce la possibilità  di eseguire programmi dal file system.
:* ro - Il mount del file system avviene in sola lettura.
+
:* {{ic|ro}} - Il mount del file system avviene in sola lettura.
:* rw - Il mount del file system avviene in lettura e scrittura.
+
:* {{ic|rw}} - Il mount del file system avviene in lettura e scrittura.
:* sync - l'I/O sul file system deve essere sincrono.
+
:* {{ic|user}} - Permette a tutti gli utenti di montare il filesystem. Questa opzione include {{ic|noexec}}, {{ic|nosuid}}, {{ic|nodev}}, se non vengono utilizzate le opzioni opposte.
:* async - tutto l'I/O sul file system deve essere asincrono.
+
:* {{ic|users}} - Permette agli utenti appartenenti al gruppo users di montare il filesystem.
:* flush - Questa è una opzione per il file system FAT, serve a scrivere più spesso i dati sul disco in modo da evitare che le finestre di trasferimento vengano chiuse mentre i dati non sono ancora stati scritti.
+
:* {{ic|nousers}} - Permette il mount solo all'utente root.
:* user - Consente a tutti gli utenti di montare il file system (implica noexec,nosuid,nodev se non specificato diversamente.).
+
:* {{ic|owner}} - Permette il mount al solo proprietario del punto di mount.
:* nouser - Limita solo a root la possibilità di effettuare il mount del file system(default).
+
:* {{ic|sync}} - l'I/O sul file system deve essere sincrono.
:* defaults - Assegna le impostazioni di default per il mount (equivale a rw,suid,dev,exec,auto,nouser,async).  
+
:* {{ic|async}} - tutto l'I/O sul file system deve essere asincrono.
:* suid - Consente l'uso di operazioni di suid e sgid. Sono comunemente usate per permettere agli utenti di un sistema di eseguire programmi elevando temporaneamente i privilegi [http://it.wikipedia.org/wiki/Suid].
+
:* {{ic|dev}} - Interpreta le periferiche a blocchi o periferiche speciali all'interno del filesystem.
:* nosuid - Impedisce le operazioni di suid e sgid.
+
:* {{ic|nodev}} - Impedisce l'interpretazione di periferiche a blocchi o periferiche speciali all'interno del filesystem.
:* noatime - Non agiorna l'inode con i tempi di accesso al file system. Può aumentare le prestazioni (vedi [[#opzione_atime|l'opzione {{Codeline|atime}}]]).
+
:* {{ic|suid}} - Consente l'uso di operazioni di suid e sgid. Sono comunemente usate per permettere agli utenti di un sistema di eseguire programmi elevando temporaneamente i privilegi [http://it.wikipedia.org/wiki/Suid].
:* nodiratime - Non agiorna l'inode delle directory sui tempi di accesso al file system. Può aumentare le prestazioni (vedi [[#opzione_atime|l'opzione {{Codeline|atime}}]]).
+
:* {{ic|nosuid}} - Impedisce le operazioni di suid e sgid.  
:* relatime - Aggiorna nell'inode solo i tempi relativi a modifiche o cambiamenti dei file. I tempi di accesso vengono aggiornati solo se l'ultimo accesso è precedente rispetto a quello dell'ultima modifica.(Simile a {{Codeline|noatime}} ma non interferisce con programmi come {{Codeline|mutt}} che devono sapere se un file è stato letto dopo la sua ultima modifica.) Può aumentare le performance (vedi [[#opzione_atime|l'opzione {{Codeline|atime}}]]).
+
:* {{ic|noatime}} - Non aggiorna l'inode con i tempi di accesso al file system. Può aumentare le prestazioni (vedi [[#opzione_atime|l'opzione {{ic|atime}}]]).
 +
:* {{ic|nodiratime}} - Non aggiorna l'inode delle directory sui tempi di accesso al file system. Può aumentare le prestazioni (vedi [[#opzione_atime|l'opzione {{ic|atime}}]]).
 +
:* {{ic|relatime}} - Aggiorna nell'inode solo i tempi relativi a modifiche o cambiamenti dei file. I tempi di accesso vengono aggiornati solo se l'ultimo accesso è precedente rispetto a quello dell'ultima modifica.(Simile a {{ic|noatime}} ma non interferisce con programmi come {{ic|mutt}} che devono sapere se un file è stato letto dopo la sua ultima modifica.) Può aumentare le performance (vedi [[#opzione_atime|l'opzione {{ic|atime}}]]).
 +
:* {{ic|flush}} - Questa è una opzione per il file system FAT, serve a scrivere più spesso i dati sul disco in modo da evitare che le finestre di trasferimento vengano chiuse mentre i dati non sono ancora stati scritti.
 +
:* {{ic|defaults}} - Assegna le impostazioni di default del filesystem per il comando mount. Le opzioni di default per {{ic|ext4}} sono {{ic|rw}},{{ic|suid}},{{ic|dev}},{{ic|exec}},{{ic|auto}},{{ic|nouser}},{{ic|async}}.
  
* '''<dump>''' - Viene utilizzato dal programma dump per decidere quando fare un backup. Quando si installa il sistema(ma non nel caso di una installazione standard di Arch Linux), dump controlla il valore ed usa il numero per decidere se fare un backup del file system. I valori da poter inserire sono 0 ed 1. Se il valore è impostato a 0 dump ignorerà il file system, mentre se viene impostato ad 1 dump si occuperà di effettuare il backup del file system. La maggiorparte degli utenti non avranno dump installato, è quindi consigliato lasciare il valore di <dump> a 0.
+
* '''<dump>''' - Viene utilizzato dal programma dump per decidere quando fare un backup. Quando si installa il sistema(ma non nel caso di una installazione standard di Arch Linux), dump controlla il valore ed usa il numero per decidere se fare un backup del file system. I valori da poter inserire sono 0 ed 1. Se il valore è impostato a 0 dump ignorerà il file system, mentre se viene impostato ad 1 dump si occuperà di effettuare il backup del file system. La maggior parte degli utenti non avranno dump installato, è quindi consigliato lasciare il valore di <dump> a 0.
* '''<pass>''' - fsck legge il valore di <pass> e determina l'ordine in cui i file system saranno controllati. I possibili valori sono 0, 1 e 2. Il file system root(/) deve avere la massima priorità, 1, gli altri file system che dovranno essere controllati avranno come valore 2. Nel caso in cui il valore di <pass> sia impostato a 0 il file system non sarà controllato da fsck.
+
* '''<pass>''' - [[fsck|fsck]] legge il valore di <pass> e determina l'ordine in cui i file system saranno controllati. I possibili valori sono 0, 1 e 2. Il file system root(/) deve avere la massima priorità, 1, gli altri file system che dovranno essere controllati avranno come valore 2. Nel caso in cui il valore di <pass> sia impostato a 0 il file system non sarà controllato da fsck.
  
 
== Identificare i filesystem ==
 
== Identificare i filesystem ==
 +
I filesystem nel file {{ic|/etc/fstab}} possono essere identificati in tre modi: utilizzando i descrittori del kernel, tramite gli UUID, oppure utilizzando le etichette. Il vantaggio dell'uso degli UUID o delle etichette è che questi non dipendono dall'ordine in cui i dischi sono(fisicamente) collegati alla scheda madre. Risultano utili quindi se si modifica l'ordinamento dei dischi nel BIOS, se vengono cambiati i cablaggi di connessione (esempio dalla porta SATA1 sulla scheda madre alla SATA2 ecc.), oppure nel caso in cui il BIOS non mantenga correttamente l'ordinamento dei dischi. Per maggiori informazioni leggere l'articolo: [[Persistent block device naming (Italiano)|persistent block device naming]].
  
I filesystem nel file {{Filename|/etc/fstab}} possno essere identificati in tre modi: utilizzando i descrittori del kernel, tramite gli UUID, oppure utilizzando le etichette. Il vantaggio dell'uso degli UUID o delle etichette è che questi non dipendono dall'ordine dei dischi. Risultano utili quindi se si modifica l'ordinamento dei dischi nel BIOS, se vengono cambiati i cablaggi di connessione (esempio dalla porta SATA1 sulla scheda madre alla SATA2 ecc.), oppure nel caso in cui il BIOS non mantenga correttamente l'ordinamento dei dischi.
+
Per elencare le alcune informazioni riguardo alle partizioni, eseguire:
 +
 
 +
{{hc|$ lsblk -f|
 +
NAME  FSTYPE LABEL      UUID                                MOUNTPOINT
 +
sda                                                         
 +
├─sda1 ext4  Arch_Linux 978e3e81-8048-4ae1-8a06-aa727458e8ff /
 +
├─sda2 ntfs  Windows    6C1093E61093B594                   
 +
└─sda3 ext4  Storage    f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage
 +
sdb                                                         
 +
├─sdb1 ntfs  Games      9E68F00568EFD9D3                   
 +
└─sdb2 ext4  Backup    14d50a6c-e083-42f2-b9c4-bc8bae38d274 /media/Backup
 +
sdc                                                         
 +
└─sdc1 vfat  Camera    47FA-4071                            /media/Camera}}
  
 
=== Descrittori del Kernel ===
 
=== Descrittori del Kernel ===
 +
Eseguire {{ic|lsblk -f}} per elencare le partizioni, ed aggiungere il percorso {{ic|/dev}} ai nomi visualizzati.
  
I descrittori del kernel si possono ottenere usando {{Codeline|fdisk}}:
+
Vedere il [[Fstab (Italiano)#Esempio|file d'esempio]].
  
<pre>
+
=== Etichette ===
# fdisk -l
+
{{Nota|Ogni etichetta dovrebbe essere unica, per prevenire ogni possibile conflitto.}}
...
+
 
+
Device Boot      Start        End      Blocks  Id  System
+
/dev/sda1  *          1        2550    20482843+  b  W95 FAT32
+
/dev/sda2            2551        5100    20482875  83  Linux
+
/dev/sda3            5101        7650    20482875  83  Linux
+
/dev/sda4            7651      121601  915311407+  5  Extended
+
/dev/sda5            7651      10200    20482843+  83  Linux
+
/dev/sda6          10201      17849    61440561  83  Linux
+
/dev/sda7          17850      18104    2048256  82  Linux swap / Solaris
+
/dev/sda8          18105      18113      72261  83  Linux
+
/dev/sda9          18114      121601  831267328+  7  HPFS/NTFS
+
</pre>
+
  
=== Gli UUID ===
+
Per informazioni dettagliate riguardo l'assegnazione di una etichetta ad una periferica o partizione consultare [[Persistent block device naming (Italiano)#By-label|questo]] articolo. Per assegnare una etichetta alla partizione di root sarà necessario agire da una distribuzione Linux "live" in quanto la partizione dovrebbe essere smontata prima.
  
Gli UUID vengono generati dal programma di generazione del filesystem ({{Codeline|mkfs.*}}) quando questo viene generato. Il comando {{Codeline|blckid}} mostra gli UUID delle partizioni e delle periferiche montate:
+
Per elencare le partizioni, utilizzare il comando {{ic|lsblk -f}} quindi inserire prima del nome dell'etichetta {{ic|1=LABEL=}}:
  
<pre>
+
{{hc|/etc/fstab|2=
# blkid
+
# <file system>        <dir>        <type>    <options>            <dump> <pass>
/dev/sda1: UUID="76E4F702E4F6C401" LABEL="vista" TYPE="ntfs"
+
LABEL=Arch_Linux      /             ext4     defaults,noatime      0      1
/dev/sda2: LABEL="Root" UUID="24f28fc6-717e-4bcd-a5f7-32b959024e26" TYPE="ext4"
+
LABEL=Arch_Swap        none          swap     defaults              0      0}}
/dev/sda6: LABEL="Home" UUID="03ec5dd3-45c0-4f95-a363-61ff321a09ff" TYPE="ext4"
+
/dev/sda7: LABEL="swap" UUID="4209c845-f495-4c43-8a03-5363dd433153" TYPE="swap"
+
/dev/sda10: UUID="0ea7a93f-537c-4868-9201-0dc090c050e4" TYPE="crypto_LUKS"
+
/dev/mapper/sda10: UUID="d3560bbb-b5d5-46c5-a7a8-434c885217c7" UUID_SUB="425ab275-d520-4636-8d16-55fb2b957971" TYPE="btrfs"
+
</pre>
+
  
Un esempio del file {{Filename|/etc/fstab}} usando gli UUID:
+
=== UUID ===
 +
Tutte le partizioni e periferiche hanno un UUID unico. Gli UUID vengono generati dal programma di generazione del filesystem (ad esempio {{ic|mkfs.*}}) quando la partizione viene creata o formattata.
  
<pre>
+
Per elencare le partizioni, utilizzare il comando {{ic|lsblk -f}} quindi inserire prima {{ic|1=UUID=}}:
# <file system>        <dir>        <type>    <options>            <dump> <pass>
+
devpts                /dev/pts      devpts    defaults                0      0
+
shm                    /dev/shm      tmpfs    nodev,nosuid            0      0
+
+
UUID=24f28fc6-717e-4bcd-a5f7-32b959024e26 /    ext4 defaults,noatime  0      1
+
UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff /home ext4 defaults,noatime  0      2
+
UUID=4209c845-f495-4c43-8a03-5363dd433153 swap  swap defaults          0      0
+
</pre>
+
  
Nel caso chel la partizione di swap non abbia un UUID, sarà possibile aggiungerlo manulamente. Questo accade quando l'UUID della partizione di swap non appare con il comando {{Codeline|blkid}}.
+
{{Tip|Se si desidera ottenere il valore UUID di una specifica partizione:
 +
$ lsblk -no UUID /dev/sda2
 +
}}
  
Per prima cosa, se non si conosce quale sia la partizione di swap, sarà necessario individuarla usando il comando:
+
{{hc|/etc/fstab|2=
 +
# <file system>                            <dir>    <type>    <options>            <dump> <pass>
 +
UUID=24f28fc6-717e-4bcd-a5f7-32b959024e26  /        ext4      defaults,noatime      0      1
 +
UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff  /home    ext4      defaults,noatime      0      2
 +
UUID=4209c845-f495-4c43-8a03-5363dd433153  none      swap      defaults              0      0}}
  
{{Cli|$ swapon -s
+
== Trucchi e consigli ==
Filename Type Size Used Priority
+
===UUID per la swap===
/dev/sda7                              partition 4000148 0 -1}}
+
Nel caso chel la partizione di swap non abbia un UUID, sarà possibile aggiungerlo manualmente. Questo accade quando l'UUID della partizione di swap non appare con il comando {{ic|lsblk -f}}. Di seguito verranno mostrati i passaggi per assegnare un UUID alla partizione di swap:
  
Poi sarà necessario disabilitare la swap:
+
Individuare la swap usando il comando:
 +
 
 +
# swapon -s
 +
 
 +
Disabilitare la swap:
  
 
  # swapoff /dev/sda7
 
  # swapoff /dev/sda7
  
Ora ricreare la partizione di swap con un nouvo UUID assegnato ad essa:
+
Ricreare la partizione di swap con un nuovo UUID assegnato ad essa:
  
 
  # mkswap -U random /dev/sda7
 
  # mkswap -U random /dev/sda7
  
Ed infine, riativare la swap:
+
Attivare nuovamente la swap:
  
 
  # swapon /dev/sda7
 
  # swapon /dev/sda7
  
=== Etichette ===
+
=== Utilizzare percorsi contenenti spazi ===
Le periferiche o le partizioni dovranno avere un etichetta. Per assegnare una etichetta, si possono utilizzare programmi come {{Package Official|gparted}} oppure per le partizioni aventi come filesystem ext2, ext3 ed ext4 può essere utilizzato {{Codeline|e2label}}. Tenere conto che non tutti i filesystem supportano l'uso delle etichette (ad esempio il filesystem FAT).
+
Se un punto di mount contiene degli spazi nel nome, può essere usato il carattere di escape {{ic|\}} seguito dal codice ottale di tre cifre corrispondente allo spazio {{ic|\040}} per emularlo:
  
Per assegnare le etichette le partizioni o le periferiche non dovranno essere montate. Sarà quindi necessario avviare il sistema da Live(CD/DVD/USB) prima di poter utilizzare programmi come {{Package Official|gparted}}(o simili) o {{Codeline|e2label}}.
+
{{hc|/etc/fstab|2=
 +
UUID=47FA-4071    /home/username/Camera<font color="grey">\040</font>Pictures  vfat  defaults,noatime      0  0
 +
/dev/sda7          /media/100<font color="grey">\040</font>GB<font color="grey">\040</font>(Storage)       ext4  defaults,noatime,user  0  2}}
  
e2label /dev/<disk-or-partition> Arch_Linux
+
=== Dischi esterni ===
 +
I dischi esterni che dovranno essere montati quando presenti, ma ignorati se assenti, avranno bisogno dell'uso dell'opzione {{ic|nofail}}. Questa opzione inibisce la visualizzazione del messaggio di errore durante l'avvio.
  
Le etichette possono essere lunghe fino a 16 caratteri. Tecnicamente nelle etichette è possibile utilizzare gli spazi, non esiste però modo di poterle utilizzare ne in {{Filename|/etc/fstab}} ne in [[GRUB (Italiano)|GRUB]].
+
{{hc|/etc/fstab|
 +
/dev/sdg1        /media/backup    jfs    defaults,nofail    0  2}}
  
Le etichette non dovrebberero essere ambigue, nel senso che ogni etichetta dovrà essere unica onde evitare possibili conflitti. Ecco un esempio di uso delle etichette in {{Filename|fstab}}:
+
=== opzione atime ===
 +
L'uso di {{ic|noatime}}, {{ic|nodiratime}} o {{ic|relatime}} può aumentare le prestazioni del disco, per i file system ext2, ext3 o ext4. Linux di default tiene traccia(scrivendolo sul disco) di ogni lettura effettuata {{ic|atime}}. Questa funzione è più indicata su di un pc server piuttosto che su un pc desktop. L'aspetto peggiore dell'opzione {{ic|atime}} sta nel fatto che, anche leggendo un file dalla memoria cache(quindi non dal disco direttamente) verrà effettuata una scrittura sul disco! Usando l'opzione {{ic|noatime}} viene disabilitato l'aggiornamento de tempi di accesso ai file ogni volta che viene letto un file. Questo  non interferisce con la maggioranza delle applicazioni, ma [[Mutt (Italiano)|Mutt]] necessita di queste informazioni.Se si usa mutt sarà quindi necessario utilizzare l'opzione {{ic|relatime}}. L'uso dell'opzione {{ic|relatime}} abilita l'aggiornamento dei tempi di accesso ai file solo se il file viene modificato (al contrario dell'opzione {{ic|noatime}} dove i tempi di accesso in lettura al file non verranno aggiornati, e saranno precedenti rispetto ai tempi di modifica del file). L'opzione {{ic|nodiratime}} disabilitata la scrittura dei tempi di accesso ai file, solo per le cartelle, mentre per i normali file in tempi di accesso verranno aggiornati. Il miglior compromesso potrebbe essere l'uso dell'opzione {{ic|relatime}} che non influenzerebbe il funzionamento di programmi come [[Mutt (Italiano)|Mutt]], ma si otterrebbe anche un aumento delle performance, dato che i tempi di accesso ai file verranno aggiornati solo se i file vengono modificati.
  
<pre>
+
{{Nota|l'opzione {{ic|noatime}} include anche l'opzione {{ic|nodiratime}}. Non sarà quindi necessario dichiarare entrambe le opzioni. [http://lwn.net/Articles/244941/]}}
# <file system>        <dir>        <type>    <options>            <dump> <pass>
+
devpts                /dev/pts      devpts    defaults                0      0
+
shm                    /dev/shm      tmpfs    nodev,nosuid            0      0
+
  
LABEL=Arch_Linux      /            ext4      defaults,noatime        0      1
+
=== tmpfs ===
LABEL=Arch_Swap        swap          swap      defaults                0      0
+
[[Wikipedia:Tmpfs|tmpfs]] è un filesystem temporaneo che risiede nella memoria, e/o nella/e area/e di swap, a seconda di quanto esso viene riempito. Montare cartelle in tmpfs può essere un buon modo per velocizzare gli accessi in lettura nei file che vi risiedono, o per assicurarsi che il contenuto venga cancellato automaticamente ad ogni riavvio.
</pre>
+
  
== Tips ==
+
Alcune directory dove è comunemente usato tmpfs senza problemi sono [http://www.pathname.com/fhs/2.2/fhs-3.15.html /tmp], [http://www.pathname.com/fhs/2.2/fhs-5.9.html /var/lock] ed [http://www.pathname.com/fhs/2.2/fhs-5.13.html /var/run]. NON usare tmpfs per [http://www.pathname.com/fhs/2.2/fhs-5.15.html /var/tmp], perché questa cartella contiene dei file che devono essere conservati dopo il riavvio. Arch utilizza la cartella {{ic|/run}} come tmpfs, essa comprende anche {{ic|/var/run}} e {{ic|/var/lock}} creati come link simbolici per compatibilità. tmpfs è utilizzata anche per {{ic|/tmp}} nella configurazione di default del file {{ic|/etc/fstab}}.
=== opzione atime ===
+
  
L'uso di {{Codeline|noatime}}, {{Codeline|nodiratime}} o {{Codeline|relatime}} può aumentare le prestazioni del disco, per i file system ext2, ext3 o ext4. Linux di default tiene traccia(scrivendolo sul disco) di ogni lettura effettuata {{Codeline|atime}}. Questa funzione è più indicata su di un pc server piuttosto che su un pc desktop. L'aspetto peggiore dell'opzione {{Codeline|atime}} sta nel fatto che, anche leggendo un file dalla memoria cache(quindi non dal disco direttamente) verrà effettuata una scrittura sul disco! Usando l'opzione {{Codeline|noatime}} viene disabilitato l'aggiornamento de tempi di accesso ai file ogni volta che viene letto un file. Questo  non interferisce con la maggioranza delle applicazioni, ma [[Mutt (Italiano)|Mutt]] necessita di queste informazioni.Se si usa mutt sarà quindi necessario utilizzare l'opzione {{Codeline|relatime}}. L'uso dell'opzione {{Codeline|relatime}} abilita l'aggiornamento dei tempi di accesso ai file solo se il file viene modificato (al contrario dell'opzione {{Codeline|noatime}} dove i tempi di accesso in lettura al file non verranno aggiornati, e saranno precedenti rispetto ai tempi di modifica del file). L'opzione {{Codeline|nodiratime}} disabilitata la scrittura dei tempi di accesso ai file, solo per le cartelle, mentre per i normali file in tempi di accesso verranno aggiornati. Il miglior compromesso potrebbe essere l'uso dell'opzione {{Codeline|relatime}} che non influenzerebbe il funzionamento di programmi come [[Mutt (Italiano)|Mutt]], ma si otterrebbe anche un aumento delle performance, dato che i tempi di accesso ai file verranno aggiornati solo se i file vengono modificati.
+
{{Nota|Utilizzando [[systemd (Italiano)|systemd]], i file e le cartelle temporanee in tmpfs possono essere ricreati all'avvio utilizzando [[Systemd (Italiano)#I files temporanei|tmpfiles.d]].}}
  
{{Nota|l'opzione {{Codeline|noatime}} include anche l'opzione {{Codeline|nodiratime}}. Non sarà quindi necessario dichiarare entrambe le opzioni.}}
+
Per default, la partizione tmpfs è impostata della dimensione di metà della RAM totale, ma può essere modificata. Notare che l'effettivo uso di memoria/swap dipende da quanto vengono riempite, la partizione tmpfs non richiede memoria fino a che non viene usata.
  
=== tmpfs ===
+
Per usare tmpfs per {{ic|/tmp}}, semplicemente aggiungere questa linea ad {{ic|/etc/fstab}} (e riavviate il sistema):
[[Wikipedia:Tmpfs|tmpfs]] è un filesystem temporaneo che risiede nella memoria, e/o nella/e area/e di swap, a seconda di quanto esso viene riempito. Montare cartelle in tmpfs puo' essere un buon modo per velocizzare gli accessi in lettura nei file che vi risiedono, o per assicurarsi che il contenuto venga cancelato automaticamente ad ogni riavvio.
+
  
Alcune directory dove è comunemente usato tmpfs senza problemi sono [http://www.pathname.com/fhs/2.2/fhs-3.15.html /tmp], [http://www.pathname.com/fhs/2.2/fhs-5.9.html /var/lock] ed [http://www.pathname.com/fhs/2.2/fhs-5.13.html /var/run]. NON usare tmpfs per [http://www.pathname.com/fhs/2.2/fhs-5.15.html /var/tmp], perchè questa cartella contiene dei file che devono essere conservati dopo il riavvio.
+
{{hc|/etc/fstab|
 +
tmpfs  /tmp         tmpfs   nodev,nosuid                  0  0}}
  
Per default, la partizione tmpfs è impostata della dimensione di metà della ram totale, ma può essere modificata. Notare che l'effettivo uso di memoria/swap dipende da quanto vengono riempite, la partizione tmpfs non richiede memoria fino a che non viene usata.
+
Sarà possibile o meno impostare la dimensione, ma sarà necessario lasciare l'opzione {{ic|mode}} inalterata in questi casi, per essere certi che le cartelle abbiano i giusti permessi(1777). Nell'esempio sopra, {{ic|/tmp}} sarà impostata per metà della RAM totale. Per impostare esplicitamente la dimensione massima, usare l'opzione {{ic|size}} del comando {{ic|mount}}:
  
Per usare tmpfs per {{Filename|/tmp}}, semplicemente aggiungere questa linea ad {{Filename|/etc/fstab}} (e riavviate il sistema):
+
{{hc|/etc/fstab|2=
tmpfs /tmp     tmpfs defaults,nodev,nosuid,mode=1777                0 0
+
tmpfs   /tmp         tmpfs   nodev,nosuid,size=2G          0 0}}
  
Sarà possibile o meno impostare la dimensione, ma sarà necessario lasciare l'opzione {{Codeline|mode}} inalterata in questi casi, per essere certi che le cartelle abbiano i giusti permessi. Nell'esempio sopra, {{Filename|/tmp}} sarà impostata per metà della RAM totale. Per impostare esplicitamente la dimensione massima, usare l'opzione {{Codeline|size}} del comando {{Codeline|mount}}:
+
Qui viene mostrato un esempio più avanzato per aggiungere punti di mount tmpfs per gli utenti. Questo è utile per siti web, file tmp di mysql, {{ic|~/.vim/}}, ed altro. È importante provare a configurare le opzioni ideali per ciò che si vuole fare. L'obiettivo è avere un settaggio il più sicuro possibile per prevenire abusi. Limitare le dimensioni e specificare i modi uid e gid + è una pratica molto sicura. Per maggiori informazioni su questo argomento seguire i link elencati nella sezione [[#Risorse|Risorse]].
tmpfs /tmp      tmpfs defaults,nodev,nosuid,mode=1777,size=2G        0 0
+
  
Consultare la pagina di man relatiava al comando {{Codeline|mount}} per maggiori informazioni.
+
{{hc|/etc/fstab|2=
 +
tmpfs  /www/cache    tmpfs  rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=648,gid=648,mode=1700  0  0}}
  
Riavviare per fare in modo che i cambiamenti abbiano effetto. Notare che anche se si è tentati e possa sembrare utile, '''NON''' usare il comando {{Codeline|mount -a}}, perchè così facendo ogni file contenuto in precedenza nelle suddette cartelle diventerebbe quindi inaccessibile(ad esempio i file di lock delle applicazioni). Comunuque, se queste cartelle sono vuote, sarà possibile eseguire il comando {{Codeline|mount -a}} invece di riavviare. Sarà possibile anche eseguire il comando {{Codeline|mount /tmp}} eccetera per attivare alcune di queste modifiche immediatamente, e lasciare le altre al riavvio.
+
Consultare la pagina di manuale relativa al comando {{ic|mount}} per maggiori informazioni. Cercare di comprendere come minimo l'opzione {{ic|default}}, molto utile ed utilizzata.
  
Dopo aver effettuato le modifiche, si potrà verficare il funzionamento con il comando {{Codeline|df}}({{Codeline|df -h}} in questo caso):
+
Riavviare per fare in modo che i cambiamenti abbiano effetto. Notare che anche se si è tentati e possa sembrare utile, '''NON''' usare il comando {{ic|mount -a}}, perché così facendo ogni file contenuto in precedenza nelle suddette cartelle diventerebbe quindi inaccessibile(ad esempio i file di lock delle applicazioni). Comunque, se queste cartelle sono vuote, sarà possibile eseguire il comando {{ic|mount -a}} invece di riavviare(oppure effettuare il mount manuale delle cartelle).
tmpfs                2.0G  20K  2.0G  1% /tmp
+
  
Per utilizzare tmpfs per le cartelle {{Filename|/var/run}} e {{Filename|/var/lock}}, è possibile creare un link simbolico ad esse indirizzato alla cartella {{Filename|/run}}. Assicurarsi di chiudere ogni lavoro importante prima di effettuare questa modifica, perchè sarà necessario riavviare il sistema ed alcuni demodi potrebbero non fermarsi regolarmente.
+
Dopo aver effettuato le modifiche, si potrà verificare il funzionamento controllando {{ic|/proc/mounts}} con il comando {{ic|findmnt}}:
  
{{Nota|Arch addottera questo metodo di default nel futuro. Vedi https://bugs.archlinux.org/task/18157}}
+
{{hc|$ findmnt --target /tmp|
 +
TARGET SOURCE FSTYPE OPTIONS
 +
/tmp  tmpfs  tmpfs  rw,nosuid,nodev,relatime}}
  
{{Attenzione|Alcuni demoni conservano dei file nelle cartelle {{Filename|/var/lock}} e {{Filename|/var/run}}, e gli scirpt di {{Filename|/etc/rc.d/}} potrebbero avere bisogno di modifiche per garantire un corretto funzionamento(esempio: {{Codeline|lighttpd}}).}}
+
==== Utilizzo ====
 +
Generalmente, i processi ed i programmi con intensive richieste di I/O eseguono frequentemente operazioni di lettura/scrittura possono ottenere benefici utilizzando una cartella come tmpfs. Alcune applicazioni posso ricevere un sostanziale guadagno caricando alcuni (o tutti) i propri dati sulla memoria condivisa. Ad esempio, [[Firefox_Ramdisk|spostando il profilo di Firefox sulla RAM]] mostra un significativo guadagno nelle performance.
  
{{Cli|<nowiki># ln -sf /run/lock /var/lock
+
===== Migliorare i tempi di compilazione =====
# ln -sf /run /var/run
+
{{Nota|La cartella tmpfs ({{ic|/tmp}}, in questo caso) defe essere montata senza l'opzione {{ic|noexec}}, altrimenti impedirà agli script di compilazione o ad altri strumenti di essere eseguiti. Come detto [[#tmpfs|in precedenza]], la dimensione di default equivale alla metà della RAM disponibile è quindi possibile rimanere senza spazio.}}
# reboot</nowiki>}}
+
  
=== Utilizzare percorsi contenenti spazi ===
+
E' possibile eseguire [[makepkg (Italiano)|makepkg]] con una cartella tmpfs come cartella per la compilazione (che può essere configurata in {{ic|/etc/makepkg.conf}}):
  
Può essere usato il carattere di escape seguito dal codice ottale di tre cifre corrispondente allo spazio "\040".
+
$ BUILDDIR=/tmp/makepkg makepkg
  
<pre>
+
=== Scrivere su FAT32 da utente normale ===
/dev/sda7                /home/username/Camera\040Picures  ext4  defaults,noatime      0  2
+
Per poter scrivere su una partizione FAT32 è necessario fare alcuni cambiamenti al proprio file {{ic|/etc/fstab}}:
UUID=7D4500B3071E18B2    /media/100\040GB\040(Storage)      ntfs  defaults,noatime,user  0  0
+
</pre>
+
  
=== Dischi esterni ===
+
{{hc|/etc/fstab|2=
+
/dev/sdxY    /mnt/some_folder  vfat  user,rw,umask=000              0  0}}
I dischi esterni che dovranno essere montati quando presenti, ma ignorati se assenti, avranno bisogno dell'uso dell'opzione {{Codeline|nofail}}. Questa opzione inibisce la visualizzazione del messaggio di errore durante l'avvio.
+
 
 +
Il flag {{ic|user}} significa che ogni utente (oltre a root) può montare e smontare la partizione {{ic|/dev/sdX}}. {{ic|rw}} dà l'accesso in lettura/scrittura.
 +
 
 +
L'opzione {{ic|umask}} rimuove i permessi selezionati - ad esempio {{ic|1=umask=111}} rimuove i permessi di esecuzione. Il problema è che questa linea rimuove i permessi di esecuzione anche alle cartelle, per cui è necessario correggerla in {{ic|1=dmask=000}}. Vedere anche [[Umask]].
 +
 
 +
Senza queste opzioni tutti i file sarebbero eseguibili. Anziché utilizzare umask e dmask è possibile utilizzare l'opzione {{ic|showexec}}, la quale mostra tutti gli eseguibili di Windows (com, exe, bat) con i colori degli eseguibili.
 +
 
 +
Ad esempio se la propria partizione FAT32 è {{ic|/dev/sda9}} e si desidera montarla su {{ic|/mnt/fat32}} bisogna utilizzare:
 +
 
 +
{{hc|/etc/fstab|2=
 +
/dev/sda9    /mnt/fat32        vfat  user,rw,umask=111,dmask=000    0  0}}
  
/dev/sdg1    /media/backup    jfs    defaults,nofail    0  2
+
=== Effettuare il remount della partizione di root ===
  
== Articoli correlati ==
+
Se per qualche motivo la partizione di root venisse impropriamente montata in sola lettura, effettuare il remount della partizione di root con accesso di lettura-scrittura con il seguente comando:
  
* [[Persistent block device naming (Italiano)|Nomi statici per le partizioni]]
+
# mount -o remount,rw /
* [[Writing on a FAT32 partition as a normal user|Scrivere su una partizione FAT32 da normale utente(in inglese)]]
+
* [[NTFS Write Support (Italiano)|Supporto per la scrittura su NTFS]]
+
* [[ Firefox Ramdisk]]
+
* [[Using tmpfs for /var/*]]
+
  
 
== Risorse ==
 
== Risorse ==
* [http://www.kernel.org/pub/linux/docs/device-list/devices.txt Full device listing including block device]
+
* [http://www.kernel.org/pub/linux/docs/lanana/device-list/devices-2.6.txt Full device listing including block device]
 
* [http://www.pathname.com/fhs/2.2/index.html Filesystem Hierarchy Standard]
 
* [http://www.pathname.com/fhs/2.2/index.html Filesystem Hierarchy Standard]
 
* [http://www.askapache.com/web-hosting/super-speed-secrets.html 30x Faster Web-Site Speed] (Detailed tmpfs)
 
* [http://www.askapache.com/web-hosting/super-speed-secrets.html 30x Faster Web-Site Speed] (Detailed tmpfs)

Revision as of 12:55, 29 June 2013

Sommario help replacing me
Quest'articolo spiega come configurare ed usare fstab.
Correlati
Persistent block device naming (Italiano)
NTFS Write Support (Italiano)
Firefox Ramdisk
Boot Debugging
udev (Italiano)

Il file /etc/fstab contiene le informazioni sul filesystem. In esso viene definito come le partizioni e le periferiche di archiviazione saranno montate all'interno del sistema. Questo file verrà letto dal comando mount per determinare quali opzioni utilizzare per montare una specifica periferica o una partizione.

Esempio

Questo è un esempio del file /etc/fstab usando i descrittori del kernel:

/etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>
/dev/sda1              /             ext4      defaults,noatime      0      1
/dev/sda2              none          swap      defaults              0      0
/dev/sda3              /home         ext4      defaults,noatime      0      2

Definizione dei campi

In /etc/fstab sono contenuti i seguenti campi separati da spazzi o tabulazioni:

<file system>	<dir>	<type>	<options>	<dump>	<pass>
  • <file systems> - definisce la periferica di archiviazione o la partizione.
  • <dir> - indica al comando mount la cartella dove sarà montata la partizione(<file system>).
  • <type> - indica il tipo di file system della partizione o del dispositivo. Sono supportati diversi file system. Alcuni esempi sono: ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap, ed auto. L'opzione auto lascia riconoscere al comando mount il tipo di file system da utilizzare, questa opzione e utile in caso di supporti ottici (CD/DVD).
  • <options> - indica le opzioni utilizzate dal comando mount sul file system. Alcune opzioni di mount fanno riferimento a specifici file system, altre invece sono generiche:
  • auto - Il file system sarà montato automaticamente durante l'avvio del sistema, oppure quando viene lanciato il comando mount -a.
  • noauto - Il file system non sarà montato automaticamente ma solo manualmente.
  • exec - Abilita l'esecuzione dei file eseguibili residenti sulla partizione(abilitata di default).
  • noexec - Inibisce la possibilità di eseguire programmi dal file system.
  • ro - Il mount del file system avviene in sola lettura.
  • rw - Il mount del file system avviene in lettura e scrittura.
  • user - Permette a tutti gli utenti di montare il filesystem. Questa opzione include noexec, nosuid, nodev, se non vengono utilizzate le opzioni opposte.
  • users - Permette agli utenti appartenenti al gruppo users di montare il filesystem.
  • nousers - Permette il mount solo all'utente root.
  • owner - Permette il mount al solo proprietario del punto di mount.
  • sync - l'I/O sul file system deve essere sincrono.
  • async - tutto l'I/O sul file system deve essere asincrono.
  • dev - Interpreta le periferiche a blocchi o periferiche speciali all'interno del filesystem.
  • nodev - Impedisce l'interpretazione di periferiche a blocchi o periferiche speciali all'interno del filesystem.
  • suid - Consente l'uso di operazioni di suid e sgid. Sono comunemente usate per permettere agli utenti di un sistema di eseguire programmi elevando temporaneamente i privilegi [1].
  • nosuid - Impedisce le operazioni di suid e sgid.
  • noatime - Non aggiorna l'inode con i tempi di accesso al file system. Può aumentare le prestazioni (vedi l'opzione atime).
  • nodiratime - Non aggiorna l'inode delle directory sui tempi di accesso al file system. Può aumentare le prestazioni (vedi l'opzione atime).
  • relatime - Aggiorna nell'inode solo i tempi relativi a modifiche o cambiamenti dei file. I tempi di accesso vengono aggiornati solo se l'ultimo accesso è precedente rispetto a quello dell'ultima modifica.(Simile a noatime ma non interferisce con programmi come mutt che devono sapere se un file è stato letto dopo la sua ultima modifica.) Può aumentare le performance (vedi l'opzione atime).
  • flush - Questa è una opzione per il file system FAT, serve a scrivere più spesso i dati sul disco in modo da evitare che le finestre di trasferimento vengano chiuse mentre i dati non sono ancora stati scritti.
  • defaults - Assegna le impostazioni di default del filesystem per il comando mount. Le opzioni di default per ext4 sono rw,suid,dev,exec,auto,nouser,async.
  • <dump> - Viene utilizzato dal programma dump per decidere quando fare un backup. Quando si installa il sistema(ma non nel caso di una installazione standard di Arch Linux), dump controlla il valore ed usa il numero per decidere se fare un backup del file system. I valori da poter inserire sono 0 ed 1. Se il valore è impostato a 0 dump ignorerà il file system, mentre se viene impostato ad 1 dump si occuperà di effettuare il backup del file system. La maggior parte degli utenti non avranno dump installato, è quindi consigliato lasciare il valore di <dump> a 0.
  • <pass> - fsck legge il valore di <pass> e determina l'ordine in cui i file system saranno controllati. I possibili valori sono 0, 1 e 2. Il file system root(/) deve avere la massima priorità, 1, gli altri file system che dovranno essere controllati avranno come valore 2. Nel caso in cui il valore di <pass> sia impostato a 0 il file system non sarà controllato da fsck.

Identificare i filesystem

I filesystem nel file /etc/fstab possono essere identificati in tre modi: utilizzando i descrittori del kernel, tramite gli UUID, oppure utilizzando le etichette. Il vantaggio dell'uso degli UUID o delle etichette è che questi non dipendono dall'ordine in cui i dischi sono(fisicamente) collegati alla scheda madre. Risultano utili quindi se si modifica l'ordinamento dei dischi nel BIOS, se vengono cambiati i cablaggi di connessione (esempio dalla porta SATA1 sulla scheda madre alla SATA2 ecc.), oppure nel caso in cui il BIOS non mantenga correttamente l'ordinamento dei dischi. Per maggiori informazioni leggere l'articolo: persistent block device naming.

Per elencare le alcune informazioni riguardo alle partizioni, eseguire:

$ lsblk -f
NAME   FSTYPE LABEL      UUID                                 MOUNTPOINT
sda                                                           
├─sda1 ext4   Arch_Linux 978e3e81-8048-4ae1-8a06-aa727458e8ff /
├─sda2 ntfs   Windows    6C1093E61093B594                     
└─sda3 ext4   Storage    f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage
sdb                                                           
├─sdb1 ntfs   Games      9E68F00568EFD9D3                     
└─sdb2 ext4   Backup     14d50a6c-e083-42f2-b9c4-bc8bae38d274 /media/Backup
sdc                                                           
└─sdc1 vfat   Camera     47FA-4071                            /media/Camera

Descrittori del Kernel

Eseguire lsblk -f per elencare le partizioni, ed aggiungere il percorso /dev ai nomi visualizzati.

Vedere il file d'esempio.

Etichette

Nota: Ogni etichetta dovrebbe essere unica, per prevenire ogni possibile conflitto.

Per informazioni dettagliate riguardo l'assegnazione di una etichetta ad una periferica o partizione consultare questo articolo. Per assegnare una etichetta alla partizione di root sarà necessario agire da una distribuzione Linux "live" in quanto la partizione dovrebbe essere smontata prima.

Per elencare le partizioni, utilizzare il comando lsblk -f quindi inserire prima del nome dell'etichetta LABEL=:

/etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>
LABEL=Arch_Linux       /             ext4      defaults,noatime      0      1
LABEL=Arch_Swap        none          swap      defaults              0      0

UUID

Tutte le partizioni e periferiche hanno un UUID unico. Gli UUID vengono generati dal programma di generazione del filesystem (ad esempio mkfs.*) quando la partizione viene creata o formattata.

Per elencare le partizioni, utilizzare il comando lsblk -f quindi inserire prima UUID=:

Tip: Se si desidera ottenere il valore UUID di una specifica partizione:
$ lsblk -no UUID /dev/sda2
/etc/fstab
# <file system>                            <dir>     <type>    <options>             <dump> <pass>
UUID=24f28fc6-717e-4bcd-a5f7-32b959024e26  /         ext4      defaults,noatime      0      1
UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff  /home     ext4      defaults,noatime      0      2
UUID=4209c845-f495-4c43-8a03-5363dd433153  none      swap      defaults              0      0

Trucchi e consigli

UUID per la swap

Nel caso chel la partizione di swap non abbia un UUID, sarà possibile aggiungerlo manualmente. Questo accade quando l'UUID della partizione di swap non appare con il comando lsblk -f. Di seguito verranno mostrati i passaggi per assegnare un UUID alla partizione di swap:

Individuare la swap usando il comando:

# swapon -s

Disabilitare la swap:

# swapoff /dev/sda7

Ricreare la partizione di swap con un nuovo UUID assegnato ad essa:

# mkswap -U random /dev/sda7

Attivare nuovamente la swap:

# swapon /dev/sda7

Utilizzare percorsi contenenti spazi

Se un punto di mount contiene degli spazi nel nome, può essere usato il carattere di escape \ seguito dal codice ottale di tre cifre corrispondente allo spazio \040 per emularlo:

/etc/fstab
UUID=47FA-4071     /home/username/Camera\040Pictures   vfat  defaults,noatime       0  0
/dev/sda7          /media/100\040GB\040(Storage)       ext4  defaults,noatime,user  0  2

Dischi esterni

I dischi esterni che dovranno essere montati quando presenti, ma ignorati se assenti, avranno bisogno dell'uso dell'opzione nofail. Questa opzione inibisce la visualizzazione del messaggio di errore durante l'avvio.

/etc/fstab
/dev/sdg1        /media/backup    jfs    defaults,nofail    0  2

opzione atime

L'uso di noatime, nodiratime o relatime può aumentare le prestazioni del disco, per i file system ext2, ext3 o ext4. Linux di default tiene traccia(scrivendolo sul disco) di ogni lettura effettuata atime. Questa funzione è più indicata su di un pc server piuttosto che su un pc desktop. L'aspetto peggiore dell'opzione atime sta nel fatto che, anche leggendo un file dalla memoria cache(quindi non dal disco direttamente) verrà effettuata una scrittura sul disco! Usando l'opzione noatime viene disabilitato l'aggiornamento de tempi di accesso ai file ogni volta che viene letto un file. Questo non interferisce con la maggioranza delle applicazioni, ma Mutt necessita di queste informazioni.Se si usa mutt sarà quindi necessario utilizzare l'opzione relatime. L'uso dell'opzione relatime abilita l'aggiornamento dei tempi di accesso ai file solo se il file viene modificato (al contrario dell'opzione noatime dove i tempi di accesso in lettura al file non verranno aggiornati, e saranno precedenti rispetto ai tempi di modifica del file). L'opzione nodiratime disabilitata la scrittura dei tempi di accesso ai file, solo per le cartelle, mentre per i normali file in tempi di accesso verranno aggiornati. Il miglior compromesso potrebbe essere l'uso dell'opzione relatime che non influenzerebbe il funzionamento di programmi come Mutt, ma si otterrebbe anche un aumento delle performance, dato che i tempi di accesso ai file verranno aggiornati solo se i file vengono modificati.

Nota: l'opzione noatime include anche l'opzione nodiratime. Non sarà quindi necessario dichiarare entrambe le opzioni. [2]

tmpfs

tmpfs è un filesystem temporaneo che risiede nella memoria, e/o nella/e area/e di swap, a seconda di quanto esso viene riempito. Montare cartelle in tmpfs può essere un buon modo per velocizzare gli accessi in lettura nei file che vi risiedono, o per assicurarsi che il contenuto venga cancellato automaticamente ad ogni riavvio.

Alcune directory dove è comunemente usato tmpfs senza problemi sono /tmp, /var/lock ed /var/run. NON usare tmpfs per /var/tmp, perché questa cartella contiene dei file che devono essere conservati dopo il riavvio. Arch utilizza la cartella /run come tmpfs, essa comprende anche /var/run e /var/lock creati come link simbolici per compatibilità. tmpfs è utilizzata anche per /tmp nella configurazione di default del file /etc/fstab.

Nota: Utilizzando systemd, i file e le cartelle temporanee in tmpfs possono essere ricreati all'avvio utilizzando tmpfiles.d.

Per default, la partizione tmpfs è impostata della dimensione di metà della RAM totale, ma può essere modificata. Notare che l'effettivo uso di memoria/swap dipende da quanto vengono riempite, la partizione tmpfs non richiede memoria fino a che non viene usata.

Per usare tmpfs per /tmp, semplicemente aggiungere questa linea ad /etc/fstab (e riavviate il sistema):

/etc/fstab
tmpfs   /tmp         tmpfs   nodev,nosuid                  0  0

Sarà possibile o meno impostare la dimensione, ma sarà necessario lasciare l'opzione mode inalterata in questi casi, per essere certi che le cartelle abbiano i giusti permessi(1777). Nell'esempio sopra, /tmp sarà impostata per metà della RAM totale. Per impostare esplicitamente la dimensione massima, usare l'opzione size del comando mount:

/etc/fstab
tmpfs   /tmp         tmpfs   nodev,nosuid,size=2G          0  0

Qui viene mostrato un esempio più avanzato per aggiungere punti di mount tmpfs per gli utenti. Questo è utile per siti web, file tmp di mysql, ~/.vim/, ed altro. È importante provare a configurare le opzioni ideali per ciò che si vuole fare. L'obiettivo è avere un settaggio il più sicuro possibile per prevenire abusi. Limitare le dimensioni e specificare i modi uid e gid + è una pratica molto sicura. Per maggiori informazioni su questo argomento seguire i link elencati nella sezione Risorse.

/etc/fstab
tmpfs   /www/cache    tmpfs  rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=648,gid=648,mode=1700   0  0

Consultare la pagina di manuale relativa al comando mount per maggiori informazioni. Cercare di comprendere come minimo l'opzione default, molto utile ed utilizzata.

Riavviare per fare in modo che i cambiamenti abbiano effetto. Notare che anche se si è tentati e possa sembrare utile, NON usare il comando mount -a, perché così facendo ogni file contenuto in precedenza nelle suddette cartelle diventerebbe quindi inaccessibile(ad esempio i file di lock delle applicazioni). Comunque, se queste cartelle sono vuote, sarà possibile eseguire il comando mount -a invece di riavviare(oppure effettuare il mount manuale delle cartelle).

Dopo aver effettuato le modifiche, si potrà verificare il funzionamento controllando /proc/mounts con il comando findmnt:

$ findmnt --target /tmp
TARGET SOURCE FSTYPE OPTIONS
/tmp   tmpfs  tmpfs  rw,nosuid,nodev,relatime

Utilizzo

Generalmente, i processi ed i programmi con intensive richieste di I/O eseguono frequentemente operazioni di lettura/scrittura possono ottenere benefici utilizzando una cartella come tmpfs. Alcune applicazioni posso ricevere un sostanziale guadagno caricando alcuni (o tutti) i propri dati sulla memoria condivisa. Ad esempio, spostando il profilo di Firefox sulla RAM mostra un significativo guadagno nelle performance.

Migliorare i tempi di compilazione
Nota: La cartella tmpfs (/tmp, in questo caso) defe essere montata senza l'opzione noexec, altrimenti impedirà agli script di compilazione o ad altri strumenti di essere eseguiti. Come detto in precedenza, la dimensione di default equivale alla metà della RAM disponibile è quindi possibile rimanere senza spazio.

E' possibile eseguire makepkg con una cartella tmpfs come cartella per la compilazione (che può essere configurata in /etc/makepkg.conf):

$ BUILDDIR=/tmp/makepkg makepkg

Scrivere su FAT32 da utente normale

Per poter scrivere su una partizione FAT32 è necessario fare alcuni cambiamenti al proprio file /etc/fstab:

/etc/fstab
/dev/sdxY    /mnt/some_folder  vfat   user,rw,umask=000              0  0

Il flag user significa che ogni utente (oltre a root) può montare e smontare la partizione /dev/sdX. rw dà l'accesso in lettura/scrittura.

L'opzione umask rimuove i permessi selezionati - ad esempio umask=111 rimuove i permessi di esecuzione. Il problema è che questa linea rimuove i permessi di esecuzione anche alle cartelle, per cui è necessario correggerla in dmask=000. Vedere anche Umask.

Senza queste opzioni tutti i file sarebbero eseguibili. Anziché utilizzare umask e dmask è possibile utilizzare l'opzione showexec, la quale mostra tutti gli eseguibili di Windows (com, exe, bat) con i colori degli eseguibili.

Ad esempio se la propria partizione FAT32 è /dev/sda9 e si desidera montarla su /mnt/fat32 bisogna utilizzare:

/etc/fstab
/dev/sda9    /mnt/fat32        vfat   user,rw,umask=111,dmask=000    0  0

Effettuare il remount della partizione di root

Se per qualche motivo la partizione di root venisse impropriamente montata in sola lettura, effettuare il remount della partizione di root con accesso di lettura-scrittura con il seguente comando:

# mount -o remount,rw /

Risorse