Salta il menu
*Linux Guide

Capire fstab

Il file /etc/fstab vi permette di controllare quali filesystem sono montati in fase di avvio sul vostro sistema Linux, comprese le partizioni di Windows e le condivisioni di rete.
E' anche possibile utilizzarlo per controllare i punti di montaggio di dispositivi di archiviazione rimovibili come chiavi USB e dischi rigidi esterni.
Ecco come.

/etc/fstab - è su tutti i computer Linux e controlla quali filesystem sono montati e dove. La sua pagina del manuale, man fstab, inizia con questo frammento di codice:
fstab viene letto solo dai programmi, e non può essere scritto, è compito dell'amministratore di sistema, creare e mantenere questo file.
Fstab, oggi, è di solito creato dall'installer o da altri programmi. Quindi, non siate troppo preoccupati sul vostro "dovere". Tuttavia, se si vuole approfondire, fstab è facile da capire e modificare.

1. Un tipico fstab

Il file fstab installato dalla maggior parte delle distribuzioni Linux moderne, ha un aspetto leggermente intimidatorio. Eccone uno da un sistema Ubuntu:

# /etc/fstab: static filesystem information.
#
# Use 'blkid -o value -s UUID' 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).
#
#<filesystem><mount point><type><options><dump><pass>
proc /proc proc defaults 0 0
# / was on /dev/sda6 during installation
UUID=2ad9188b-9d1c-4102-bf24-4b5ad456a701 / ext3 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=3943c247-16e9-405b-9fda-87684b02cc4e /boot ext2 defaults 0 2
# swap was on /dev/sda7 during installation
UUID=15825096-aef7-41d6-b53a-c86aec2ebde8 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0

La Figura 1 mostra il significato delle colonne.

fstab
Figura 1

2. Dispositivi e UUID

Cominciamo con il dispositivo: UUID = 2ad9188b-9d1c-4102-bf24-4b5ad456a701 Che cosa vuol dire?
Ai vecchi tempi, il campo dispositivo di fstab era molto più semplice, di solito era qualcosa come /dev/hda3 per la terza partizione sul primo disco IDE. Tuttavia i sistemi erano più complicati.
I dischi USB e SATA utilizzano il driver discosd, originariamente scritto per SCSI. Ma non si può sempre prevedere il loro ordine. Se avete più dischi SATA e USB, o se aggiungete e rimuovete spesso i dischi, potreste scoprire che il vostro principale filesystem appaia un giorno su sda2 e in sdc2 un altro giorno.

Per ovviare a questa confusione, fstab può utilizzare un "Universally Unique IDentifier" che identifica ogni filesystem.
Come fate a sapere quale mappa della partizione del disco corrisponde all'UUID? Potreste aver notato alcuni commenti in fstab:

# / was on /dev/sda6 during installation
UUID=2ad9188b-9d1c-4102-bf24-4b5ad456a701 / ext3 errors=remount-ro 0 1

Non fidatevi di tali osservazioni. Il vostro / potrebbe essere stato in sda6 una volta, ma questo non vuol dire che ci sia anche adesso. E' più sicuro controllare il valore attuale con il comando blkid:

$ blkid
/dev/sda1: UUID="702be669-1Aee-4128-8c57-60b58bc91f59" TYPE="ext2"
/dev/sda3: UUID="615aaed5-0dba-4204-9717-c9a00ff411ea" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda5: UUID="0c5121ff-331a-4ae2-b8be-e0b10bcae62f" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda6: UUID="d2a1e4aa-6589-4846-ba58-107d32a25375" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda7: UUID="1533cdc3-635f-4552-818b-1fadce9ea7f8" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda8: UUID="b24fd645-7c28-431b-883d-0a6cf03340ed" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda9: TYPE="swap"
$ blkid -o value -s UUID /dev/sda8
b24fd645-7c28-431b-883d-0a6cf03340ed

Potete usare anche /dev/disk/by-uuid :

$ ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 2010-04-18 09:06 0c5121ff-331a-4ae2-b8be-e0b10bcae62f -> ../../sda5
lrwxrwxrwx 1 root root 10 2010-04-18 09:06 615aaed5-0dba-4204-9717-c9a00ff411ea -> ../../sda3
lrwxrwxrwx 1 root root 10 2010-04-18 09:06 1533cdc3-635f-4552-818b-1fadce9ea7f8 -> ../../sda7
lrwxrwxrwx 1 root root 10 2010-04-18 09:06 b24fd645-7c28-431b-883d-0a6cf03340ed -> ../../sda8
lrwxrwxrwx 1 root root 10 2010-04-18 09:06 ca8ec122-33c7-4765-bd65-78a15c58def3 -> ../../sda2
lrwxrwxrwx 1 root root 10 2010-04-18 09:06 d2a1e4aa-6589-4846-ba58-107d32a25375 -> ../../sda6
lrwxrwxrwx 1 root root 10 2010-04-18 09:06 702be669-1Aee-4128-8c57-60b58bc91f59 -> ../../sda1

Alcune distribuzioni, invece di usare gli UUID, attaccano una etichetta ad ogni filesystem:

LABEL=/ / ext3 defaults 1 1

Questo è molto più facile da leggere, ma può diventare confuso. Se si installa Linux in versioni diverse su partizioni diverse, si potrebbe finire con più partizioni che hanno la stessa etichetta. E allora come si fa a dire quale è montata? Confuso da tutte queste UUID ed etichette? Non dovete usarle. Se si dispone di una configurazione semplice con un solo disco, la semplice sintassi funziona ancora:

/dev/sda6 / ext3 errors=remount-ro 0 1

3. Punto di mount e tipo di filesystem

I prossimi due paragrafi sono semplici.
Il punto di montaggio è ovunque si desidera montare un dato filesystem: /, /home, /boot o dovunque. Dovrebbe essere una directory vuota che esiste già. Se non è vuota, tutto ciò che è dentro verrà nascosto quando si monta qualcosa su di esso.
Il type è il tipo di filesystem, come ext2, ext3, il filesystem di di Windows vfat ed ntfs, o iso9660 per i CD.
E' inoltre possibile usare auto e Linux cercherà di indovinare il tipo di filesystem. man Filesystem ha una lista di filesystem supportati.

4. Opzioni

Il campo opzioni è il più complesso. Qui è dove si specifica "tutto il resto" - tutto ciò che non rientra negli altri campi. Se non si dispone di opzioni specifiche, basta usare defaults.
Si possono elencare quante opzioni volete, separate da virgole. Per esempio, un CD-ROM potrebbe utilizzare ro, user, noauto, exec, a partire da ro per la sola lettura.
user significa che non si ha bisogno dei privilegi di root per il montaggio: ogni utente può digitare mount /media/cdrom0, se non si dispone di un servizio che lo abbia già montato per voi.
noauto significa che il sistema non cerca di montarlo all'avvio del sistema stesso - una buona idea per i dispositivi removibili. Non vuol dire nulla il fatto che un processo, come HAL, cerca di effettuare un automount in un secondo momento, se si inserisce un CD - che è controllato altrove.
exec indica al sistema di consentire l'esecuzione di programmi da quel file system. Ciò è invece disabilitato su CDROM e file system di Windows.
Sui filesystems FAT di Windows, se si utilizza exec, si potrebbe volere anche fmask = 111: i filesystem di Windows non dispongono di permessi, quindi è necessario assicurarsi che sia configurata l'esecuzione di bit se si desidera eseguire i programmi.
Mettete questi tutti insieme e potete produrre una voce utile su sistemi che non montano automaticamente i dispositivi USB:

/dev/sdb1 /stuff vfat user,noauto,exec,fmask=111 0 0

Se il dispositivo si presenta da qualche parte oltre a /dev/sdb1, aggiustate se necessario. Quindi digitate nel terminale:

sudo mkdir /stuff

e ogni volta che si collega la fotocamera, il lettore mp3 o la chiavetta USB, sarete in grado di montarli digitando

mount /stuff.

Per un elenco completo delle opzioni, vedere man mount e scorrete verso il basso fino a FILESYSTEM INDEPENDENT MOUNT OPTIONS e FILESYSTEM SPECIFIC MOUNT OPTIONS.

5. dump e pass

Dump specifica quanto spesso si desidera effettuare il backup del file system. La maggior parte delle persone non utilizza questo campo, ma se si sta eseguendo software di backup automatico è possibile che lo vogliate.

Pass indica quando e se il dispositivo deve essere controllato con fsck, prima di essere montato. In genere si dovrebbe usare 1 per il filesystem di root, 2 per tutti gli altri filesystem montati normalmente e 0 per i filesystem che non sono montati di default.

***

Indice | Torna in alto