Vedremo in questo breve how-to come modificare il file /etc/fstab
Nei sistemi GNU/Linux fstab è un file di configurazione che si trova all'interno della cartella /etc (secondo lo standard FHS) ed il cui proprietario è l'utente root, ed indica i dispositivi che devono essere montati con le rispettive opzioni.
/etc/fstab è il file che il programma di avvio init va a leggere quando deve montare i dischi ed è pertanto di importanza fondamentale. Per questo è sicuramente utile saper configurare a mano il file /etc/fstab, dove andranno indicate tutte le risorse necessarie all'avvio e al funzionamento del pc e quelle di uso più frequente.
Si usino le informazioni di questo documento a proprio rischio. L'autore di questa guida, i suoi collaboratori, slackers.it e slacky.eu non si riterranno responsabili di eventuali danni provocati al vostro computer. L'uso dei concetti, esempi o altro contenuto di questo documento è completamente a proprio rischio.
Si raccomanda di fare un backup prima di effettuare modifiche al file /etc/fstab
Per iniziare spieghiamo brevemente come vengono assegnati i nomi alle partizioni in un sistema Linux.
L'idea di un drive in Linux è molto diversa da quella di un drive sotto Windows. Il modo in cui Linux (e in generale UNIX) "vede" i drive è il seguente: Ogni drive fisico può essere diviso in partizioni e ogni partizione può essere "montata" in una directory.
Linux si riferisce ai drive fisici (come ad esempio il drive del floppy da 3.5) come file nella directory /dev. Per esempio, il primo drive (chiamato A: in Windows) è /dev/fd0 in Linux. fd si riferisce al fatto che è un drive floppy, e lo 0 significa che è il primo. Ci sono due modi per riferirsi agli HD: facendo riferimento al drive fisico (primo, secondo drive), o ad una partizione all'interno di un drive. I file corrispondenti ai drive fisici nella directory /dev contengono un "hd" (hard drive) o "sd" (SATA drive), seguito da una "a" se si tratta del primo drive fisico, "b" se si tratta del secondo, etc. Segue un numero che specifica la partizione all'interno del drive fisico. La prima partizione è 1, la seconda partizione è 2, etc.
Per i dispositivi IDE, anche se adesso meno utilizzati, bisogna parlare brevemente della suddivisione in "canali", che a volte rende le cose meno semplici da capire. Sulla scheda madre, ci sono normalmente due canali IDE: primario e secondario.
Ognuno di loro può ospitare un dispositivo per la gestione di dati, Hard Disk (HD), Cd-Rom, e così via, i quali vanno montati come master o slave.
Le periferiche IDE hanno i seguenti nomi:
Eventuali partizioni dell'HD vengono poi numerate ed avranno nomi tipo:
Per gli hard disk e le altre periferiche SATA il discorso è diverso, infatti il concetto di master e slave è stato superato, ma ci basta sapere che questi dispositivi avranno nomi come /dev/sda, /dev/sdb, etc...
Anche in questo caso però eventuali partizioni dell'HD avranno nomi tipo:
Per una spiegazione dettagliata sull'uso dei nomi dei drive e delle partizioni in un sistema Linux, e per la descrizione di sistemi con più controller, si rimanda ad altri testi.
Tutte le informazioni riguardanti un filesystem vengono elencate in una riga, a sua volta divisa in sei colonne.
Il formato di ogni riga è:
[device] [mountpoint] [filesystem type] [options] [dump freq] [fsck order]
Con il carattere # è possibile commentare Vediamo adesso un esempio pratico di un sistema Linux che ha la root ( / ) in /dev/hda2
# Filesystem di HD interni al sistema /dev/hda5 swap swap sw /dev/hda2 / ext3 defaults 1 1 /dev/hda1 /boot ext2 defaults 1 2 /dev/hda3 /home reiserfs defaults 1 2 # Filesystem di Windows, sempre di HD interni al sistema /dev/hdc1 /mnt/ntfs ntfs-3g auto,users,locale=it_IT@euro,noexec,nosuid 0 0 /dev/hdc2 /mnt/dati vfat users,umask=0000,noexec,nosuid,noauto 0 0 # Filesystem di periferiche mobili /dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro,users 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,users 0 0 # Filesystem virtuali proc /proc proc defaults 0 0 none /sys sysfs defaults 0 0 # Filesystem remoti nfsserver:/vol/vol1 /mnt/filer nfs defaults 0 0 //samba/share /mnt/samba smbfs rw,credentials=/etc/credentials.txt 0 0
Vediamo adesso sezione per sezione
La prima colonna indica il nome del device che ospita il filesystem, ovvero la locazione fisica dove risiede il filesystem, es.
Oltre all'uso del nome del device questa sezione può contenere altri due valori.
L'uso della LABEL o dell'UUID, è utile nel caso si cambi la disposizione fisica degli Hard Disk all'interno del sistema, per aggiugnere o rimuovere Hard Disk, per evitare i casi in cui, con i nuovi controller SATA, il kernel assegni un nome diverso al drive in base a come è stato compilato o avviato, e così via. Infatti utilizzando la LABEL o l'UUID si ha il vantaggio che queste operazioni non hanno effetto su quello che viene montato.
Il formato da utilizzare al posto del device name è il seguente:
LABEL=<label> UUID=<uuid>
Dove:
Sia la LABEL sia l'UUID si possono trovare tramite il comando vol_id o il comando blkid. Per esempio:
# vol_id /dev/hda2 ID_FS_USAGE=filesystem ID_FS_TYPE=ext3 ID_FS_VERSION=1.0 ID_FS_UUID=4a8be9ff3d944-324d-547f3b25f05d64 ID_FS_UUID_ENC=4a8be9ff3d944-324d-547f3b25f05d64 ID_FS_LABEL=SLACK ID_FS_LABEL_ENC=SLACK ID_FS_LABEL_SAFE=SLACK
# blkid /dev/hda2 /dev/hda2: LABEL="SLACK" UUID="4a8be9ff3d944-324d-547f3b25f05d64" TYPE="ext3"
Si può anche usare il comando blkid senza specificare il device, in questo caso il comando mostrerà la LABEL e l'UUID di tutti i volumi trovati nel sistema.
Quindi la riga
/dev/hda2 / ext3 defaults 1 1
dell'esempio sopra diventerebbe una di queste due (naturalmente non vanno usate in contemporanea).
LABEL="SLACK" / ext3 defaults 1 1 UUID="4a8be9ff3d944-324d-547f3b25f05d64" / ext3 defaults 1 1
Il mount point, letteralmente "punto di montaggio", è la directory nella quale verrà "montato" il filesystem, cioè dove sarà disponibile nell'albero delle directory (va sempre indicata partendo dalla root) il contenuto del filesystem specificato. Per esempio
Nota bene: La directory deve esistere e deve essere indicata tramite il percorso assoluto.
Questo parametro specifica il tipo di filesystem usato dal device. Normalmente sarà iso9660 per i CD e ext2/ext3/reiserfs per gli HD. Come abbiamo visto nell'esempio sopra possono esserci anche filesystem virtuali o di rete. Se non si conosce il tipo di filesystem si può provare ad usare l'opzione auto.
Vediamo vari esempi:
Naturalmente possono essercene tanti altri, sia virtuali sia non, come xfs, sys, ext4, udf e tanti altri.
Le opzioni da inserire sono molte, e variano anche in base al tipo di filesystem, qui ne elenchiamo alcune
Diamo anche un breve accenno alle opzioni sui permessi
Come detto esistono altre opzioni, comprese le opzioni specifiche per ogni filesystem. Per una spiegazione dettagliata si rimanda al manuale di mount e di chmod
Il quinto campo è utilizzato dal comando dump per per determinare quali file system devono essere oggetto di backup. Se il quinto campo non è presente, viene considerato 0 di default e dump assumerà che il filesystem non deve essere oggetto di backup.
Al giorno d'oggi il comando dump è poco utilizzato, nella Slackware non è presente di default, anche se c'è il simile dumpe2fs
Questo parametro è usato dal programma fsck per determinare in quale ordine i filesystem saranno controllati durante il processo di avvio del sistema.
I possibili valori sono
Il filesystem di root, cioè / , deve avere sempre valore 1, gli altri invece il valore 2 se si vuole controllarli e 0 in caso non vogliamo controllarli. Nel caso di valore 2 per più partizioni, se queste sono in drive diversi saranno controllate in parallelo, altrimenti saranno controllate sequenzialmente.
Naturalmente per i filesystem fisici residenti nel sistema è meglio impostare il valore a 2, mentre per quelli virtuali, per quelli di rete e per le periferiche esterne meglio lasciare a 0
Se il parametro non è presente viene considerato 0 di default
Con l'avvento di HAL e UDEV è cambiato anche il modo di agire sul montaggio delle periferiche. Infatti non è più raro ormai nelle moderne distribuzioni Linux, e la Slackware non si sottrae a questo, di avere meccanismi di automounting per le periferiche esterne. In questo caso è consigliato non inserire le righe relative nel file /etc/fstab ma di lasciar fare ad HAL+UDEV il loro lavoro, e nel caso, configurare questi due software.
Ci sarebbe molto altro da scrivere, ma questa è una guida per aiutare a capire un pochino di più il montaggio delle unità di gestione dei dati sotto Linux, senza avere troppe pretese.
Copyright (c) 2008 by Corrado "Conraid" Franco.
Copyright (c) 2006 by NaVaJo.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available from http://www.fsf.org/licenses/fdl.html.
Tutti i copyright sono di proprietà dei rispettivi detentori, a meno che indicato diversamente. L'uso di un termine in questo documento non inficia la validità di qualunque marchio di fabbrica o marchio di servizio.
Nominare un particolare prodotto o marchio non deve essere considerato come pubblicità.
Autori: NaVaJo, Conraid