Che cos'è il file fstab di Linux e come funziona?
Pubblicato: 2022-01-29Se stai utilizzando Linux, è probabile che tu abbia bisogno di modificare alcune opzioni per i tuoi file system. Conoscere fstab può rendere l'intero processo molto più semplice ed è molto più facile di quanto pensi.
Cos'è Fstab?
Fstab è la tabella del file system del tuo sistema operativo. Se desideri una revisione dei file system, assicurati di consultare il nostro altro articolo, HTG spiega: quale file system Linux dovresti scegliere? Ai vecchi tempi, era il modo principale in cui il sistema montava i file automaticamente. Al giorno d'oggi, puoi collegare un'unità USB di qualsiasi tipo e verrà visualizzata in Nautilus come in Windows e Mac OS, ma una volta dovevi montare manualmente quei dischi in una cartella specifica usando il " comando monta”. Questo valeva per DVD, CD e persino floppy (ricordate quelli?).
Allora, la tua unica alternativa era dire al computer che ogni volta che un dispositivo specifico veniva collegato, doveva essere montato automaticamente in un posto specifico. È qui che è entrato in gioco fstab ed è stato fantastico. Supponiamo di aver scambiato i dischi rigidi sul controller IDE o SCSI. Il computer potrebbe caricare i file system in un ordine diverso, potenzialmente incasinando le cose. Fstab è configurato per cercare file system specifici e montarli automaticamente nel modo desiderato ogni volta, prevenendo il verificarsi di una miriade di disastri.
Il tuo file Fstab
Il file fstab si trova in:
/ecc/fstab
Diamo un'occhiata al mio file fstab, vero?
Vedrai sicuramente le differenze, ma se vuoi seguire il tuo fstab basta inserire questo comando in un terminale:
Puoi anche usare gedit se non ti senti a tuo agio con nano.
Le opzioni ovvie
Noterai che tutte le voci iniziano con UUID. Potresti ricordare di averlo visto in uno dei nostri articoli precedenti, Come scegliere uno schema di partizione per il tuo PC Linux, ma lo spiegheremo comunque di nuovo. A ogni file system, durante la formattazione, viene assegnato un identificatore univoco universale, che porta alla tomba. Poiché non può essere modificato, questo è il modo ideale per selezionare i file system per il montaggio, specialmente per quelli importanti. Diciamo che la tua partizione /home si trova su un secondo disco rigido e finisci per spostarla su un disco rigido esterno; fstab troverà comunque quella partizione e la monterà correttamente, evitando un avvio fallito. Se si passa (o si è bloccati utilizzando) il vecchio metodo di utilizzare gli identificatori di dispositivo per selezionare le partizioni (ad esempio /dev/sda1), questo vantaggio scompare perché i dischi rigidi e le partizioni vengono conteggiati dai loro controller e possono quindi cambiare.
Modifica: l'uso degli UUID nel file fstab, sebbene conveniente per la maggior parte degli utenti domestici, ha alcuni grossi avvertimenti. Questo non funziona quando si utilizzano dispositivi come "assemblati" o "basati sulla rete". Se sei un utente più avanzato o prevedi di utilizzare cose come il software RAID in futuro, è meglio non utilizzare gli UUID.
La sezione successiva di fstab, come tutte le successive, è separata da uno spazio o da una scheda o da una loro combinazione. Qui troverai il punto di montaggio. Come puoi vedere, ho un punto di montaggio root (/), uno scambio e due che ho aggiunto manualmente per le mie unità di archiviazione di rete condivise. Se stai aggiungendo una voce a fstab, dovrai creare manualmente il punto di montaggio prima di riavviare il computer (e le modifiche avranno effetto).
La prossima è la sezione che identifica il tipo di file system sulla partizione. Molti, come ext2/3/4, ReiserFS, jFS, ecc. vengono letti in modo nativo da Linux. Il tuo particolare sistema potrebbe comunque aver bisogno di avere pacchetti particolari installati per poter leggere e scrivere su di essi. Gli esempi perfetti sono le mie partizioni NTFS; puoi vedere che sto usando il driver ntfs-3g per accedervi.
La roba più spaventosa
Le prossime sezioni sono ciò che di solito spaventa i nuovi arrivati, ma in realtà non sono così complicate. C'è una vasta gamma di opzioni disponibili, ma ce ne sono una manciata o giù di lì di quelle molto comuni. Diamo un'occhiata a loro. (L'opzione predefinita è la prima, seguita dalle alternative, ma poiché le distribuzioni Linux possono essere molto diverse, il tuo chilometraggio può variare.)
- auto/noauto: specifica se la partizione deve essere montata automaticamente all'avvio. È possibile impedire il montaggio di partizioni specifiche all'avvio utilizzando "noauto".
- exec/noexec: specifica se la partizione può eseguire file binari. Se hai una partizione scratch su cui compilare, questo sarebbe utile, o forse se hai /home su un file system separato. Se sei preoccupato per la sicurezza, cambialo in "noexec".
- ro/rw: “ro” è di sola lettura e “rw” è di lettura-scrittura. Se vuoi essere in grado di scrivere su un file system come utente e non come root, devi avere specificato "rw".
- sync/async: questo è interessante. "sync" forza la scrittura a verificarsi immediatamente all'esecuzione del comando, che è l'ideale per i floppy (quanto sei un secchione?) e le unità USB, ma non è del tutto necessario per i dischi rigidi interni. Ciò che fa "async" è consentire l'esecuzione del comando in un periodo di tempo trascorso, forse quando l'attività dell'utente si interrompe e simili. Hai mai ricevuto un messaggio che ti chiedeva di "attendere mentre le modifiche vengono scritte sull'unità?" Questo è solitamente il motivo.
- nouser/user: consente all'utente di disporre dei privilegi di montaggio e smontaggio. Una nota importante è che "utente" implica automaticamente "noexec", quindi se è necessario eseguire binari e continuare a montare come utente, assicurarsi di utilizzare esplicitamente "exec" come opzione.
Queste opzioni sono separate da una virgola e senza spazi e possono essere messe in qualsiasi ordine. Se non sei sicuro delle impostazioni predefinite, va bene indicare esplicitamente le tue opzioni. Le cose che vengono montate da posizioni temporanee (come USB) non seguiranno questo schema di base a meno che tu non abbia creato voci per loro (tramite UUID) in fstab. È conveniente quando si desidera che un disco rigido esterno si monti sempre in un modo particolare, perché le normali chiavette USB e simili non saranno interessate.

Puoi vedere che le mie due unità di archiviazione hanno i privilegi di montaggio utente abilitati, l'accesso in lettura-scrittura abilitato e il montaggio automatico è attivato. Non compilo molto software, ma quando lo faccio, aggiungo l'opzione "exec" alla fine dell'elenco.
Dumping e Fscking
L'opzione successiva è un valore binario ("0" per falso e "1" per vero) per "dumping". Questo è un metodo di backup praticamente obsoleto per i casi in cui il sistema è andato in crash. Dovresti lasciare questo come "0".
L'ultima opzione è un valore numerico per "passato". Questo dice al sistema l'ordine in cui fsck (pronuncialo come preferisci) o eseguire un controllo del file system. Se un disco ha un'opzione di "0", verrà saltato, come le mie unità di archiviazione formattate NTFS. Il file system di root dovrebbe sempre essere "1" e altri file system possono andare avanti. Funziona meglio per i file system di journaling come ext3/4 e ReiserFS. I file system più vecchi come FAT16/32 ed ext2 possono richiedere del tempo, quindi è meglio disattivare il loro fscking e farlo periodicamente da soli.
Ora che sai cosa stai facendo, puoi impazzire con il montaggio automatico e simili. È molto comodo quando hai un sacco di partizioni che devono essere gestite. Ricorda sempre di fare un backup nel caso qualcosa vada storto, ma divertiti e assicurati di lasciare le tue esperienze nei commenti!
Comandi Linux | ||
File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · converti · rclone · shred · srm | |
Processi | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Rete | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
CORRELATI: I migliori laptop Linux per sviluppatori e appassionati