Guida a FSTAB
Da Luckylinux.org - Il wiki di informatica, tecnologia e programmazione.
Per iniziare, tengo a precisare che FSTAB altro non è che un file di sistema. In realtà FSTAB è molto importante per il funzionamento del sistema, in quanto provvede a comunicare al kernel e alle altre componenti cosa è quella partizione e come deve essere gestita.
Tornando al capitolo "filesystems e partizioni" avevano definito il concetto di punto di mount (o piu semplicemente mountpoint). Ecco, FSTAB provvede anche a questo: infatti definisce un punto di mount statico per ogni determinata partizione. Statico nel senso che la partizione A viene sempre montata in un punto di mount A, la partizione B in un punto di mount B, ...
Ma di base fstab non definisce i punti di mount di partizioni esterne, ma gia di quelle utilizzate dove si ha installato Linux: infatti Linux deve pur sapere dove copiare dei files di sistema, installare programmi o che so io. Inoltre definisce la partizione di swap, il/i lettore/i cd-rom, floppy e altre partizioni che ora non tratteremo.
Indice |
Come funziona FSTAB ?
FSTAB funziona in modo chiaro e lineare, bisogna solo fare attenzione a cio che si mette come opzioni di montaggio della partizione: infatti questo potrebbe generare errori banalissimi che tuttavia a coloro che sono alle prime armi creano no pochi problemi.
Il file di configurazione (chiamato "fstab" per l'appunto) si trova in "/etc". Il percorso assoluto del file è dunque: "/etc/fstab"
Vediamo ora un esempio di fstab il piu semplice possibile:
Esempio minimale di /etc/fstab
# Partizione Mountpoint Filesystem Opzioni dump / pass /dev/sda1 none swap sw 0 0 /dev/sda2 / reiserfs defaults,noatime,auto 0 1 /dev/sda3 /usr ext3 defaults 0 2 /dev/sda4 /home xfs defaults,user,exec 0 2
Io non utilizzo la partizione di boot, dunque ho deciso di mettere "1" come "pass" per la partizione "/"
Ecco, questo è l'esempio di fstab il piu banale possibile: rappresenta lo schema di partizionamento post-installazione. Nel qual caso abbiate fatto fare il partizionamento automatico, basta che leggiate unicamente il testo in grassetto. Altrimenti sono disponibili anche le partizioni "/usr" e "/home". Ho fatto in modo di mostrarvi un fstab contenente piu filesystems, in modo da capirne il funzionamento.
Le descrizioni delle colonne si trovano in alto sopra lo schema di partizionamento, e la riga di descrizione inizia con un "#".
Come prima osservazione analizziamo la partizione sda1: essa infatti la prima partizione del primo disco S-ATA. Spunta all'occhio da subito che la swap non possiede ne un punto di mount, ne delle opzioni di mount vere e proprie: come detto prima infatti, questa partizione adotta un suo fileystem proprio, ovvero "swap" per l'appunto. E poi la swap non deve essere montata, ma solamente attivata. Altra nota è che le opzioni di mount per la partizione di swap è "sw", un'opzione dedicata alle partizioni di swap.
Non fate troppo caso alle colonne dump e pass, in quanto sono funzioni relativamente avanzate e che in se non sono fondamentali.
Tengo a precisare che se durante l'installazione avete deciso di creare una /home e/o una /usr, è logico che queste vengano montate nelle rispettive sottocartelle della cartella radice ("/"). Detto cio, giusto per non spaventarvi per una partizione un po particolare rispetto alla regola, non dovete preoccuparvi troppo, siccome dopo l'installazione fstab verra creato automaticamente.
Tutte le informazioni riguradanti un filesystem vengono elencate in una riga, a sua volta divisa in sei colonne.
Qui di seguito viene riportata la descrizione completa di un fstab, semplice o complesso che sia:
- La prima colonna indica il device che ospita il filesystem.
- La seconda indica dove verrà collegato nell' albero delle directory.
- La terza, ne indica il tipo.
- Nella quarta vengono elencate le opzioni desiderate, da passare al comando mount separate da una virgola.
- La quinta indica se il filesystem deve venire preso in esame dal comando dump.
- Nell' ultima troviamo la sequenza con cui il comando fsck deve seguire i controlli sull' integrità degli stessi. Il numero 1 deve essere assegnato al filesystem di boot, mentre i restanti avranno il numero 2. Il valore 0 permette di evitare ogni qualsiasi controllo automatico all' avvio.
Queste semplici regole valgono per qualsiasi partizione che tratteremo, in quanto cambieranno i dati da inserire, ma il funzionamento sara sempre lo stesso.
Esempio piu complesso di /etc/fstab
# Partizione Mountpoint Filesystem Opzioni dump / pass /dev/sda1 none swap sw 0 0 /dev/sda2 / reiserfs defaults,noatime,auto 0 1 /dev/sda3 /usr ext3 defaults 0 2 /dev/sda4 /home xfs defaults,user,exec 0 2 /dev/hdd /mnt/cdrom0 auto defaults,user,ro,exec 0 0 /dev/hdc /mnt/cdrom1 auto defaults,user,ro,exec 0 0 /dev/fd0 /mnt/floppy auto defaults,user,exec 0 0 proc /proc proc defaults 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
Adesso date un'occhiata a questo fstab postato qua sopra: noterete infatti che ho aggiunto molte righe. Per ora però evitate di guardare "proc" e "shm" in quanto sono due concetti difficili da spiegare al momento attuale.
Ho aggiunto tre righe (le vedete in grassetto) sotto quelle che c'erano già in precedenza. Difatti ho aggiunto 2 dispositivi CD-ROM (potrebbe trattarsi anche di lettori/masterizzatori dvd in realtà) e un lettore floppy. Come detto nel capitolo "filesystem e partizioni", solitamente i lettori cd-rom e quelli floppy vengono montati di default in "/mnt". Ribadisco che volendo si puo anche mettere tutto in "/media", ma comunque non dovrebbe dare alcun fastidio "estetico" lasciando cosi.
Detto questo è bene notare che il filesystem delle periferiche aggiunte è impostato su "auto": ciò significa che sta a "mount" verificare quale filesystem si trova sulla partizione, al fine di evitare di montare tutto manualmente. Vi immaginate a inserire un CD con filesystem UDF e poi uno con filesystem ISO ? Beh ... meglio evitare queste rogne inutili.
In seguito si noterà che ai 2 dispositivi CD-ROM è stata applicata l'opzione "ro" (read-only), ovvero di sola lettura. Infatti è logico che un lettore CD-ROM non debba scrivere dati. Non temete amici della masterizzazione CD/DVD, utilizzando il vostro programma preferito non incontrerete nessun tipo di problema.
Adesso illusterò un esempio ancora più completo di fstab, dove verranno aggiunte righe concernenti partizioni esterne al disco in uso dal sistema, quali ad esempio altri hard disk (sia interni che esterni), o pendrive usb, ...
Esempio completo di /etc/fstab
# Partizione Mountpoint Filesystem Opzioni dump / pass /dev/sda1 none swap sw 0 0 /dev/sda2 / reiserfs defaults,noatime,auto 0 1 /dev/sda3 /usr ext3 defaults 0 2 /dev/sda4 /home xfs defaults,user,exec 0 2 /dev/hdd /mnt/cdrom0 auto defaults,user,ro,exec 0 0 /dev/hdc /mnt/cdrom1 auto defaults,user,ro,exec 0 0 /dev/fd0 /mnt/floppy auto defaults,user,exec 0 0 proc /proc proc defaults 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 /dev/sdb1 /media/sdb1 ntfs defaults,ro,umask=000 0 0 /dev/sdb2 /media/sdb2 vfat defaults,user,rw,exec 0 0
Le partizioni supplementari montate sono scritte nelle ultime due righe: si tratta di una partizione ntfs e di una fat32 (vfat = fat / fat32). L'opzione umask permette all'utente di accedere alla partizione via interfaccia grafica. Al momento attuale è sconsigliato utilizzare partizioni ntfs in scrittura, dunque si richiede l'utilizzo dell'opzione "ro" (Read Only).
Opzioni di mount (4° colonna):
async - Tutte le operazioni di input/output vengono eseguite in modo asincrono
atime - Aggiorna la data di accesso all' inode ad ogni accesso
auto - Il filesystem può essere montato passando "-a" a mount. Solo i
filesystem che contengono questa opzione vengono resi disponibili ad ogni
avvio del pc
defaults - Usa le opzioni di defaults: rw,suid,dev,exec,auto,nouser,async
dev - Interpreta i device speciali presenti nel filesystem
exec - Permette di eseguire i programmi
netdev - Il filesystem risiede su un device disponibile via rete. Evita che
il sistema cerchi di montarlo prima che sia disponibile
l'accesso alla rete
noatime - Non aggiorna la data di accesso all' inode ad ogni accesso. Aumenta la
velocità di accesso ai dati
noauto - Il filesystem non viene montato in modo automatico l' opzione "-a" di
mount non influisce
nodev - Non interpreta i device speciali presenti nel filesystem
noexec - Non permette l' esecuzione dei programmi presenti nel filesystem
nosuid - I bit di setuid e setgid non venono presi in considerazione
nouser - Impedisce ai normali user di montare il filesystem
remount - Cerca di rieseguire il mount del filesystem già montato. Si usa per
modificare le opzioni dello stesso
ro - Il filesystem viene montato in sola lettura (ReadOnly)
rw - Il filesystem viene montato in lettura-scrittura (ReadWrite)
suid - I bit di setuid e setgid venono presi in considerazione
sync - Tutte le operazioni di input e output vengono eseguite in modo sincrono
dirsync - Tutti gli aggiornamenti delle directory presenti nel filesystem vengono
in modo sincrono
user - Permette a un utente comune di montare il filesystem. Il nome dell'utente
è scritto in mtab in modo che egli possa smontare il filesystem nuovamente.
Questa opzione implica le opzioni: noexec, nosuid e nodev (a meno che sia
scavalcata da altre opzioni come exec, dev, suid )
users - Questa opzione permette ad ogni utente comune di montare e smontare il
filesystem. Questa opzione implica le opzioni: noexec,nosuid,nodev a meno di
opzioni diverse (si veda sopra)
Errori frequenti
1) Se avete installatato 2 distribuzioni e ne sostituite una di esse con un'altra (o che so io, con FreeBSD, Mac, Windows, ...) mantenendo lo stesso schema di partizionamento, ma cambiate filesystem, assicuratevi di aggiornare il file "/etc/fstab" dell'altra distribuzione, perchè qualora avesse le opzioni "defaults" oppure "auto" produrrebbe un errore al mounting / check delle partizioni in questione.
2) Non inserite nelle opzioni di mount l'opzione "user" se volete eseguire files da quella partizione: infatti di per se l'opzione "user" comporta "noexec", quindi da terminale riceverete un errore se non fate attenzione a questo. In alternativa è possibile utilizzare l'opzione "user" senza alcun problema, a patto però di aggiungere anche l'opzione "exec".
Spero che questa guida sia stata utile a qualcuno.
Qualsiasi ulteriore miglioria è ben accolta. Grazie di aver letto questo How-To.
Siti utili
[1] questo è il sito da cui ho preso spunto per alcuni punti.
[2] pagina in inglese di wikipedia dove sono riportate alcune configurazioni di fstab

