Guida per principianti a GNU/Linux: fstab e i suoi segreti
Abbiamo visto come montare manualmente le partizioni. E abbiamo detto che, di norma, per i dispositivi esterni il sistema fa tutto da solo.
Per quelli interni, invece, poiché di solito si desidera che vengano montati subito all’avvio, è conveniente imparare ad usare fstab. Fstab (che sta per file system table) è un semplice file di testo che troviamo nella directory /etc. All’avvio il sistema lo legge e monta le partizioni da esso indicate.
Abbiamo 2 modi per modificarlo. Il primo è quello “manuale”, ovvero modificarlo con un semplice editor di testo e, come sempre, i diritti di amministratore.
sudo nano /etc/fstab
Il secondo modo è quello grafico, tramite una utility chiamata Disk manager che, peraltro, si auto avvia al boot e cerca i dispositivi non ancora montati ed eventualmente li monta secondo le nostre esigenze.
In questo post vedremo il metodo manuale, mentre in uno dei prossimi quello grafico.
Ehi ma quello grafico è sicuramente più facile, spiega prima quello…
Questa è una “guida per principianti” ma non una “guida per utonti”. E’ meglio imparare prima le cose “difficili” e poi quelle facili. Ma, soprattutto, se si impara il funzionamento “interno” di GNU/Linux allora si riesce davvero a capire come funziona. Altrimenti di fronte a problemi che non si erano presentati prima non si saprà mai dove mettere mano.
Apriamo quindi fstab con il nostro editor preferito:
gedit /etc/fstab
#se usate gnome
kate /etc/fstab
#se usate kde
nano /etc/fstab
#se volete rimanere nel terminale
Non ho messo sudo perché così se lo toccate per sbaglio non potrete salvarlo.
Leggiamo le prime righe, che sono solo dei commenti, ma che spiegano a che serve e come è fatto fstab.
In particolare ci interessa questa riga:
# <file system> <mount point> <type> <options> <dump> <pass>
Come ogni tabella, fstab è fatto a colonne, e ogni colonna è separata dalla successiva da almeno uno spazio.
Vediamo in dettaglio le colonne:
file system: qui dovremo scrivere il dispositivo (partizione) da montare, ad esempio /dev/sda1
mount point: qui indicheremo il punto di mount, ad esempio /media/disco
type: il formato del file system con cui è formattata la partizione, ad esempio ext3
options: opzioni, le analizziamo dopo
dump: può essere 0 o 1, e indica se la partizione deve essere usata dal comando dump. Mettetela sempre a 0
pass: come molti sanno ogni tanto il sistema controlla all’avvio se ci sono errori sul disco. Questa colonna indica l’ordine in cui fsck (il programma che fa tale controllo) deve effettuarlo. Quindi la partizione usata come root (“/”) dovrebbe sempre avere come valore 1, mentre le altre 2 o superiore. Se mettiamo 0, invece, eliminiamo il controllo.
Ecco un esempio di riga di fstab.
/dev/sda3 /home ext3 defaults,noatime,data=writeback 0 2
Qui montiamo /dev/sda3 nel punto di mount /home, con le opzioni defaults, noatime e data=writeback.
Un attimo mi sto perdendo… ho aperto fstab ma non c’è /dev/qualcosa, ma una voce con UUID=numero complicatissimo…
Già. Questo è un altro modo di scrivere il dispositivo. A volte (raramente) può capitare che il sistema riconosca i dispositivi con nomi diversi ad ogni riavvio. Questo sarebbe un gran problema, soprattutto se il dispositivo che cambia è proprio la nostra root. Quindi, invece di scrivere il /dev/qualcosa si scrive l’UUID che è un codice che identifica la partizione in modo univoco, senza possibilità di errore.
ok, e come faccio a saperlo?
Semplicissimo:
sudo vol_id /dev/sda3
vol_id è una utility che forniste alcune informazioni di identificazione delle partizioni. Tra queste:
ID_FS_UUID=numero_esadecimale_complicato
Così in fstab possiamo scrivere UUID=numero_esadecimale_complicato invece di /dev/sda3. Un altro modo ancora è assegnare un nome (etichetta, in inglese label) alla partizione.
Me lo spieghi?
Ok. A seconda del tipo di partizione dobbiamo usare utility differenti. Ecco degli esempi:
ext2/ext3: sudo e2label dispositivo etichetta
fat16 e fat32 (vfat): sudo mlabel -i dispositivo ::etichetta
NTFS: sudo ntfslabel etichetta dispositivo
Etichetta la scelgo io, mentre dispositivo sarebbe /dev/qualcosa, giusto?
Sì, giusto. Poi in fstab scriverai LABEL=etichetta_che_hai_assegnato invece di /dev/qualcosa.
Ok, riguardo le opzioni?
Esse dipendono dal tipo di filesystem in uso. Puoi averne una carrellata dalla manpage del comando mount.
man mount
Piccolo trucco: per avere molte manpage in italiani, installa il pacchetto manpages-it da synaptic. Quella di mount è tradotta ed è molto chiara. La puoi trovare anche qui: http://manpages.ubuntu.com/manpages/hardy/it/man8/mount.html
La più comune, e da usare più o meno sempre, è defaults. Essa contiene le opzioni più comuni per avere ciò che ci si aspetterebbe di solito, come la possibilità di leggere e scrivere. Di solito è sufficiente per quando il tipo di filesystem è ext3.
Nella prossima puntata vedremo alcune di queste opzioni più interessanti.
Ringrazio Aldo Latino sul cui blog ho trovato la sintassi dei comandi per cambiare le label.
Tanto di cappello, come al solito…! Ma come fai a sapere così tante cose?? 😉
Restando in topic: quindi se ho ben capito tutte le operazioni che hai illustrato servono per avere, al momento dell’avvio, una partizione montata subito di default e non doverla montare successivamente in caso dovessi aver bisogno di accedere a dati in essa contenuta, giusto?
"Mi piace""Mi piace"
Esattamente. Di solito è utile solo per i dischi interni, oppure per montare stabilmente delle condivisioni di rete, o ancora quando usiamo un hard disk esterno ma lo teniamo sempre attaccato al computer.
Insomma, ogni volta che c’è bisogno di montare qualcosa sin dall’avvio del sistema.
"Mi piace""Mi piace"
Ottima guida come sempre, guardando il fstab (bravo che scrivi cosa significano ‘sti nomi) io una partizione condivisa peri dati che è in fat32 e una con win in ntfs entrambe hanno il valore pass=1 come la partizione ext3 dove c’è ubuntu.
Se ho capito non è corretto e tanto vale mettere 0 o è meglio mettere 2?
Altro punto la partizione fat32 non ha il nr UIDD, ma dev/sda4, è meglio correggerla?
ciao e continua così
"Mi piace""Mi piace"
meglio se metti 0, meno si tocca l’ntfs meglio è…
"Mi piace""Mi piace"
ok, grazie per l’UIDD di cui avevo scritto che dici?
"Mi piace""Mi piace"
come ho scritto, l’uuid serve per maggiore sicurezza nell’identificazione. Ma se ti monta sempre tutto bene, puoi anche lasciarlo com’è.
"Mi piace""Mi piace"
Cmplimenti per il blog e per descrivere sempre tutto in modo chiaro ed accurato.
E’ il miglior blog riguardo a Gnu/Linux che c’è in circolazione!
Continua cosi!
"Mi piace""Mi piace"
Ah altra cosa, anche se ovviamente i comandi che dici sono delle debian based, cerca come fai sempre di descrivere a fondo tutto in modo che possa essere utile x tutti gli utenti Gnu/Linux.
Apprezzo quando consigli di usare tools di kde, gnome o da terminale ( gedit, kedit,nano ).
"Mi piace""Mi piace"
Ciao,
per quanto rigaurda il “piccolo trucco” delle man pages in italiano io sconsiglio sempre di installarle perché molto spesso sono traduzioni vecchie.
Una volta ho passato un paio d’ore a porconare dietro un’opzione di un comando (era grep o sed o time o comunque un comando “base”) per poi scoprire che il significato era cambiato da una versione del programma in poi. Ovviamente usavo la traduzione in italiano che era indietro di almeno un anno!
"Mi piace""Mi piace"
In Debian l’utility vol_id non l’ho trovata.
Però alle UUID ci sono arrivato con il comando:
~$ ls /dev/disk/by-uuid -alh
Una controllatina con:
~$ sudo fdisk -l
ed i dati necessari per scrivere un /etc/fstab nuovo di zecca ci sono tutti.
Io sto provando il tutto su una macchina con due hard disk da 80 GB sulla quale voglio installare le mie tre distribuzioni GNU/Linux preferite, Ubuntu, Debian e Slackware, e mi pare che finora vada tutto bene.
‘notte a tutti.
"Mi piace""Mi piace"
o su archlinux:
/bin/ls -lF /dev/disk/by-uuid/ | grep sda1 | cut -d ” ” -f9
per il solo uuid
"Mi piace""Mi piace"
Ciao guiodic!
Complimenti per il blog, purtroppo l’ho scoperto da poco, e sono un visitatore assiduo ormai…
Uso ArchLinux ormai da parecchi mesi e ti segnalo il blog di un mio amico che usa Arch: http://maintux.wordpress.com/
Volevo chiederti a cosa serve esattamente il valore 2 in e il valore data=writeback in .
Continua così!!
Alessio
"Mi piace""Mi piace"
quel paramentro indica l’ordine in cui fsck fa il controllo delle partizioni. Quindi se metti alla root 1 e alle altre 2, farà prima il controllo su / e poi sulle altre (ma puoi mettere pure 3, 4, 5 ..)
data=writeback lo spiegherò nel prossimo post.
"Mi piace""Mi piace"
Grazie per la citazione! 🙂
"Mi piace""Mi piace"
@aldo: grazie a te per la raccolta molto chiara dei comandi.
"Mi piace""Mi piace"
che pacchetto bisogna installare per avere il comando mlabel?
grazie, ciao!
"Mi piace""Mi piace"
sudo apt-get install mtools
"Mi piace""Mi piace"
Una domanda: come fa Ubuntu a caricare, all’occorrenza, le altre partizioni che pur non compaiono nel file fstab?
Esempio: se apro gparted, me le monta tutte in automatico, affinchè possa lavorarle.
La stessa cosa non avviene con altri sistemi gnu-linux. Why?
"Mi piace""Mi piace"
@aleida: non so perché gparted faccia così (anche perché avrebbe senso l’esatto opposto…) comunque il montaggio automatico, come ho spiegato nel post precedente, è il risultato di una interazione tra udev, hal e il kernel.
"Mi piace""Mi piace"
Scusa Guido, esattamente quale post?
"Mi piace""Mi piace"
@aleida: https://guiodic.wordpress.com/2008/09/01/guida-per-principianti-a-gnulinux-montare-hard-disk-e-pennette-flash/
"Mi piace""Mi piace"
Ok Guido, l’avevo anche letto, però non hai risposto alla mia domanda:
come fa Ubuntu a caricare, all’occorrenza, le altre partizioni che pur non compaiono nel file fstab?
Ce lo spieghi nella prossima lezione? 😉
"Mi piace""Mi piace"
vabe’ 🙂
"Mi piace""Mi piace"
Ho letto da qualche parte che è possibile montare automaticamente tramite /etc/fstab una partizione o anche una directory di un’altra macchina della rete.
Qualcuno ha qualche informazione, un link o lasaelsignùr còssa?
"Mi piace""Mi piace"
sì, certo, è possibile, sarà uno degli argomenti che affronterò a breve. comunque nella documentazione di Ubuntu-it.org trovi diverse cose.
"Mi piace""Mi piace"
Sì, qualcosa ce l’ho trovato, ma come per altri argomenti ho capito più cose qui che sulla documentazione ufficiale o sui miei libri,
perciò – ovviamente tra una prova e l’altra – aspetto con fiducia.
Comunque grazie della risposta 😉
"Mi piace""Mi piace"
guiodic ho un problema che solo te puoi risolvere.
mi trovo un portatile della mia ragazza Dell studio 15 fra le mani..
vado a installarli ubuntu e apro gparted.
trovo che il disco è già partizionato:
1. una fstab
2. una ntfs (recovery)
3. una ntfs (dove c’è Vista)
ora la mia idea è ridimenzionare la 3za e creare una estesa dove mettere ubuntu su partizioni logiche(certo più avanti formatto tutto quando la mia ragazza capira il potere di linux).
il mio problema ora resta la prima partizione primaria.. è una fstab piccolissima e penso sia importante per il portatile. Ho problemi che vada in conflitto con il grub di ubuntu.
grazie mille di già. se vuoi puoi rispondermi anche nel forum, qui:
http://forum.ubuntu-it.org/index.php/topic,231101.msg1584723.html#new
"Mi piace""Mi piace"
Forse intendi una “fat32” …
"Mi piace""Mi piace"
io ricordo si chiamasse fstab.. può darsi mi sia sbagliato a questo punto, purtroppo non ho il portatile a mano fino a venerdi, ad ogni modo era una partizione all’inizio del disco piccolissima e gparted la rilevava con un colore verde chiaro che chiamava l’attenzione.
comunque anche se è fat32, pensi che sia importante per il computer?..
ho fatto delle ricerche e ho provato a ragionare un po:
nel caso quella mini-partizione sia importante per ripristinare cose del portatile.. se io installo ubuntu, questo mettera il suo grub, e in teoria visto che anche quella fstab (o fat32)è una partizione primaria allora il grub dovrebbe rilevarla e metterla come scelta, quindi qualvolta la si vorrà utilizzare sarà accessibile.. il problema resta nel caso ubuntu vada a mettere il grub dentro quella partizione, magari modifica qualcosa…
scusa per sti giri mentali è che voglio trovare una soluzione senza dover modificare cose che magari servono a quel portatile. Farei presto a formattare tutto ma è una soluzione molto windows non credi? =P
grazie.
Fabricio.
"Mi piace""Mi piace"
ciao guiodic.. ti dico che per il portatile ho risolto creando delle partizioni logiche ora è tutto a posto.
ho un problema nel mio computer ora.
ho installato intrepid e non mi monta più dall’inizio sessione il mio secondo disco fisso.
seguendo la tua guida sto pensando di aggiornare la lista fstab
ora: mi dici se questa riga va bene?
UUID=069CF40F9CF3F751 /media/Disco Nuevo ntfs [non_so] 0 2
non saprei cosa mettere in opzioni. mi aiuti? grazie di già
http://forum.ubuntu-it.org/index.php/topic,237096.msg1632843.html#msg1632843
"Mi piace""Mi piace"
Ciao, approfitto di questa occasione per farti i complimenti per il blog! Anche io voglio montare una partizione NTFS in automatico all’avvio e per andare sul sicuro nella scelta delle opzioni ho pensato di aggiungere a fstab la riga corrispondente alla partizione scelta presa da mtab dopo averla montata a mano. E’ un buon metodo?
"Mi piace""Mi piace"
ciao guiodic!
ho comprato un asus eeepc 901 e gli ho messo ubntu 8.10 con modifiche varie:
alcune di queste riguardano il fstab..
pero mi son sorti dei problemi magari sai cosa sono. uno è questo:
http://forum.eeepc.it/viewtopic.php?id=5446
l’altro riguarda un errore che dice:
E: Manca la directory “/var/log/apt/”
ogni volta che installo qualcosa me lo dice ma.. è importante? o posso stare con quell’errore?
grazie di già per l’aiuto e buon natale!
"Mi piace""Mi piace"
l’aiuto lo do solo sul forum…
"Mi piace""Mi piace"
Grande Guio!!
Proprio pochi giorni fa mi stavo chiedendo come montare tutte le partizioni all’avvio…….avevo cominciato a leggere una guida sugli script bash!!
Grazie grazie grazie.
"Mi piace""Mi piace"
@scugnizzo: comunque ti consiglio disk-manager, è molto buono.
"Mi piace""Mi piace"
Guio ho seguito la guida per la modifica manuale, condivido l’idea che sia meglio capire il funzionamento seguendo la strada difficile prima di quella facile.
Ora all’avvio mi monta le partizioni che mi interessava avere sempre montate (semplicemente perchè se ho una partizione non montata e avvio Amule il programma mi dice che non trova il percorso e tutte le volte mi imposta il percorso di default che devo andare a modificare).
Ho ritenuto opportuno inserire l’opzione rw (poi ci ho copiato un “relatime” che non so bene cosa sia 😀 ), fatto sta che ora se cancello un file non me lo sposta nel cestino. Girovago nel forum…ma on trovo soluzioni. Scusa se mi sono dilungato magari ti contatto li.
Grazie.
"Mi piace""Mi piace"
Ma ci puoi scrivere sulla partizione?
"Mi piace""Mi piace"
O perbacco!
Sono sicuro di aver scritto sul blog di aver risolto il problema seguendo le indicazioni di un post sul forum (questo http://forum.ubuntu-it.org/index.php/topic,178303.0.html)
è evidente che il pargolo mi ha rincitrullito del tutto 🙂 (magari ho scritto su un altro blog? nel caso chiedo venia).
Cmq si….con le opzioni inserite riuscivo a scrivere sul disco ma non a cancellare gli elementi passando del cestino.
Ora con l’opzione uid=1000 i file finiscono nel cestino.
n.b. La desklet che ho come cestino non indica il cestino pieno quando cancello qualcosa dai dischi montati con uid=1000 ma i file nel cestino vengono correttamente visualizzati ed eventualmente gestiti.
Spero di esser stato di aiuto.
Ciao
"Mi piace""Mi piace"
Ho verificato (perchè mi serviva) che vol_id è stato sostituito da blkid
"Mi piace""Mi piace"
What a material of un-ambiguity and preserveness of precious knowledge regarding unpredicted emotions.
"Mi piace""Mi piace"
This page really has all the information and facts I needed concerning this
subject and didn’t know who to ask.
"Mi piace""Mi piace"
Was there more than a 7 days and 50 in the past. Experienced the 1 12lb. lobster – delectable and therefore was the cholocate bread pudding with vanilla ice product. Can’t hesitate toward shift back again!!
"Mi piace""Mi piace"