Home > GNU/Linux, newbie > Guida per principianti a GNU/Linux: fstab e i suoi segreti

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.

  1. Alanparly
    11 settembre 2008 alle 11:20

    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"

  2. 11 settembre 2008 alle 13:11

    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"

  3. 11 settembre 2008 alle 13:38

    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"

  4. 11 settembre 2008 alle 16:35

    meglio se metti 0, meno si tocca l’ntfs meglio è…

    "Mi piace"

  5. 11 settembre 2008 alle 17:15

    ok, grazie per l’UIDD di cui avevo scritto che dici?

    "Mi piace"

  6. 11 settembre 2008 alle 17:54

    come ho scritto, l’uuid serve per maggiore sicurezza nell’identificazione. Ma se ti monta sempre tutto bene, puoi anche lasciarlo com’è.

    "Mi piace"

  7. filippo colombo
    11 settembre 2008 alle 19:18

    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"

  8. filippo colombo
    11 settembre 2008 alle 19:26

    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"

  9. CDF
    11 settembre 2008 alle 20:33

    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"

  10. Armin
    12 settembre 2008 alle 1:00

    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"

    • 16 dicembre 2010 alle 1:27

      o su archlinux:
      /bin/ls -lF /dev/disk/by-uuid/ | grep sda1 | cut -d ” ” -f9
      per il solo uuid

      "Mi piace"

  11. Alessio
    12 settembre 2008 alle 14:49

    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"

  12. 12 settembre 2008 alle 16:37

    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"

  13. aldolatino
    12 settembre 2008 alle 19:40

    Grazie per la citazione! 🙂

    "Mi piace"

  14. 12 settembre 2008 alle 22:28

    @aldo: grazie a te per la raccolta molto chiara dei comandi.

    "Mi piace"

  15. marco
    14 settembre 2008 alle 14:35

    che pacchetto bisogna installare per avere il comando mlabel?
    grazie, ciao!

    "Mi piace"

  16. marco
    14 settembre 2008 alle 14:36

    sudo apt-get install mtools

    "Mi piace"

  17. aleida
    16 settembre 2008 alle 15:21

    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"

  18. 16 settembre 2008 alle 19:15

    @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"

  19. aleida
    17 settembre 2008 alle 13:36

    Scusa Guido, esattamente quale post?

    "Mi piace"

  20. aleida
    17 settembre 2008 alle 14:56

    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"

  21. 17 settembre 2008 alle 17:16

    vabe’ 🙂

    "Mi piace"

  22. Armin
    19 settembre 2008 alle 2:38

    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"

  23. 19 settembre 2008 alle 2:39

    sì, certo, è possibile, sarà uno degli argomenti che affronterò a breve. comunque nella documentazione di Ubuntu-it.org trovi diverse cose.

    "Mi piace"

  24. Armin
    26 settembre 2008 alle 0:41

    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"

  25. 4 novembre 2008 alle 10:59

    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"

  26. 4 novembre 2008 alle 11:16

    Forse intendi una “fat32” …

    "Mi piace"

  27. 4 novembre 2008 alle 15:57

    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"

  28. 22 novembre 2008 alle 13:39

    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"

  29. Gianfranco
    1 dicembre 2008 alle 19:14

    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"

  30. 23 dicembre 2008 alle 16:02

    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"

  31. 23 dicembre 2008 alle 16:44

    l’aiuto lo do solo sul forum…

    "Mi piace"

  32. Scugnizzo
    28 gennaio 2009 alle 0:28

    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"

  33. 28 gennaio 2009 alle 5:32

    @scugnizzo: comunque ti consiglio disk-manager, è molto buono.

    "Mi piace"

  34. Scugnizzo
    28 gennaio 2009 alle 10:17

    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"

  35. 29 gennaio 2009 alle 5:34

    Ma ci puoi scrivere sulla partizione?

    "Mi piace"

  36. Scugnizzo
    29 gennaio 2009 alle 10:00

    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"

  37. PatrisX
    23 agosto 2011 alle 19:28

    Ho verificato (perchè mi serviva) che vol_id è stato sostituito da blkid

    "Mi piace"

  38. 21 luglio 2013 alle 14:01

    What a material of un-ambiguity and preserveness of precious knowledge regarding unpredicted emotions.

    "Mi piace"

  39. 20 settembre 2014 alle 19:13

    This page really has all the information and facts I needed concerning this
    subject and didn’t know who to ask.

    "Mi piace"

  40. href="http://www.dc24dev.com"web development|Dc24Dev|web design}
    14 febbraio 2017 alle 16:28

    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"

  1. 8 ottobre 2008 alle 1:51
  2. 6 luglio 2009 alle 10:30

Scrivi una risposta a tdinox Cancella risposta