Quale file system Linux dovresti usare?
Durante la formattazione delle partizioni su un PC Linux, vedrai un'ampia varietà di opzioni del file system. Queste opzioni non devono essere schiaccianti. Se non sei sicuro di quale file system Linux usare, c'è una risposta semplice.
La risposta rapida: Usa Ext4 se non sei sicuro
Entriamo nelle erbacce e scarichiamo la differenza tra i vari file system in un attimo, ma se non sei sicuro: Usa Ext4.
Ext4 è il file system predefinito sulla maggior parte delle distribuzioni Linux per un motivo. È una versione migliorata del vecchio file system Ext3. Non è il file system più all'avanguardia, ma va bene: significa che Ext4 è solido e stabile.
In futuro, le distribuzioni di Linux si sposteranno gradualmente verso BtrFS. BtrFS è ancora all'avanguardia e vede un sacco di sviluppo, quindi vorrai evitarlo nei sistemi di produzione. Il rischio di corruzione dei dati o di altri problemi non vale il potenziale miglioramento della velocità.
Si noti, tuttavia, che questo consiglio "usa Ext4" si applica solo alle partizioni di sistema Linux e ad altre partizioni su disco a cui solo Linux accederà. Se si sta formattando un'unità esterna che si desidera condividere con altri sistemi operativi, non utilizzare Ext4 perché Windows, macOS e altri dispositivi non possono leggere i file system Ext4. Ti consigliamo di utilizzare exFAT o FAT32 durante la formattazione di un'unità esterna su Linux.
Se stai impostando le partizioni sull'unità di avvio principale di Linux, ti consigliamo anche di creare una partizione di swap con almeno qualche GB di dimensioni quando imposti tali partizioni. Questa partizione è utilizzata per "spazio di swap". È simile al file di paging su Windows. Linux scambia la memoria nello spazio di swap quando la sua RAM è piena. Questa partizione deve essere formattata come "swap" anziché con un particolare file system.
Che cos'è il journaling?
Una cosa che noterete quando si sceglie tra i file system è che alcuni di essi sono contrassegnati come file system "journaling" e altri no. Questo è importante.
Il journaling è progettato per prevenire la corruzione dei dati da arresti anomali e improvvise perdite di alimentazione. Diciamo che il tuo sistema è in parte attraverso la scrittura di un file sul disco e improvvisamente perde potenza. Senza un diario, il tuo computer non avrebbe idea se il file fosse stato completamente scritto su disco. Il file rimarrebbe lì sul disco, corrotto.
Con un diario, il computer noterebbe che stava per scrivere un determinato file sul disco nel giornale, scrivere quel file su disco e quindi rimuovere quel lavoro dal giornale. Se la potenza si è spenta a metà della scrittura del file, Linux controlla il diario del file system quando si avvia e riprende i lavori parzialmente completati. Ciò impedisce la perdita di dati e la corruzione dei file.
L'inserimento nel journal rallenta le prestazioni di scrittura del disco un po ', ma ne vale la pena su un desktop o un laptop. Non è tanto sovraccarico come si potrebbe pensare. Il file completo non viene scritto sul giornale. Al contrario, solo i metadati del file, l'inode o la posizione del disco vengono registrati nel journal prima di essere scritti sul disco.
Ogni file system moderno supporta l'inserimento nel journal e ti consigliamo di utilizzare un file system che supporti l'inserimento nel journal durante la configurazione di un desktop o laptop.
I file system che non offrono l'inserimento nel journal sono disponibili per l'utilizzo su server ad alte prestazioni e altri sistemi di questo tipo in cui l'amministratore desidera ottenere prestazioni extra. Sono anche ideali per unità flash rimovibili, in cui non si desidera il sovraccarico più elevato e le scritture aggiuntive di inserimento nel diario.
Qual è la differenza tra tutti quei file system Linux?
Mentre Microsoft sviluppa Windows e Apple controlla macOS, Linux è un progetto open-source sviluppato dalla comunità. Chiunque (o qualsiasi azienda) con l'abilità e il tempo può creare un nuovo file system Linux. Questa è una delle ragioni per cui ci sono così tante opzioni. Ecco le differenze:
- Ext sta per "Extended file system", ed è stato il primo creato appositamente per Linux. Ha avuto quattro revisioni principali. "Ext" è la prima versione del file system, introdotta nel 1992. Si trattava di un importante aggiornamento del file system Minix utilizzato in quel momento, ma manca di funzionalità importanti. Molte distribuzioni Linux non supportano più Ext.
- ext2 non è un file system di journaling. Una volta introdotto, è stato il primo file system a supportare gli attributi di file estesi e le unità da 2 terabyte. La mancanza di un diario di Ext2 significa che scrive su disco meno, il che lo rende utile per la memoria flash come le unità USB. Tuttavia, i file system come exFAT e FAT32 non utilizzano il journaling e sono più compatibili con i diversi sistemi operativi, quindi ti consigliamo di evitare Ext2 se non sai che ne hai bisogno per qualche motivo.
- ext3 è fondamentalmente solo Ext2 con journaling. Ext3 è stato progettato per essere retrocompatibile con Ext2, consentendo la conversione delle partizioni tra Ext2 e Ext3 senza alcuna formattazione richiesta. È stato più lungo di Ext4, ma Ext4 è in circolazione dal 2008 ed è ampiamente testato. A questo punto, è meglio usare Ext4.
- ext4 è stato anche progettato per essere retrocompatibile. È possibile montare un file system Ext4 come Ext3 o montare un file system Ext2 o Ext3 come Ext4. Include nuove funzionalità che riducono la frammentazione dei file, consente volumi e file più grandi e utilizza l'allocazione ritardata per migliorare la durata della memoria flash. Questa è la versione più moderna del file system Ext ed è l'impostazione predefinita per la maggior parte delle distribuzioni Linux.
- btrfs, pronunciato "Butter" o "Better" FS, è stato originariamente progettato da Oracle. È l'acronimo di "B-Tree File System" e consente il pooling di unità, istantanee istantanee, compressione trasparente e deframmentazione in linea. Condivide un numero delle stesse idee trovate in ReiserFS, un file system di alcune distribuzioni Linux utilizzate per impostazione predefinita. BtrFS è progettato per essere un'interruzione pulita dalla serie Ext di file system. Ted Ts'o, il manutentore del file system Ext4, considera Ext4 una soluzione a breve termine e ritiene che BtrFS sia la soluzione da seguire. Aspettiamo di vedere BtrFS diventare il valore predefinito nelle distribuzioni Linux desktop dei server aziendali e consumer nei prossimi anni poiché è ulteriormente testato.
- ReiserFS è stato un grande balzo in avanti per i file system Linux quando è stato introdotto nel 2001 e includeva molte nuove funzionalità che Ext non sarebbe mai stata in grado di implementare. ReiserFS è stato sostituito da Reiser4, che ha migliorato molte delle funzionalità incomplete o mancanti nella versione iniziale, nel 2004. Ma lo sviluppo di Reiser4 si è interrotto dopo che lo sviluppatore principale, Hans Reiser, è stato mandato in prigione nel 2008. Reiser4 non è ancora nel kernel Linux principale ed è improbabile che arrivi lì. BtrFS è la scelta migliore a lungo termine.
- ZFS è stato progettato da Sun Microsystems per Solaris ed è ora di proprietà di Oracle. ZFS supporta molte funzionalità avanzate tra cui pool di unità, snapshot e striping dinamico del disco: BtrFS porterà molte di queste funzionalità su Linux per impostazione predefinita. Ogni file ha un checksum, quindi ZFS può dire se un file è corrotto o meno. Sun open source source ZFS sotto la licenza CDDL Sun, il che significa che non può essere incluso nel kernel di Linux. Tuttavia, è possibile installare il supporto ZFS su qualsiasi distribuzione Linux. Ubuntu ora offre il supporto ZFS ufficiale a partire anche da Ubuntu 16.04. Ubuntu usa ZFS di default per i contenitori.
- XFS è stato sviluppato da Silicon Graphics nel 1994 per il sistema operativo SGI IRX ed è stato portato su Linux nel 2001. È simile a Ext4 in qualche modo, poiché utilizza anche un'allocazione ritardata per aiutare la frammentazione dei file e non consente di eseguire istantanee montate. Può essere ingrandito, ma non ridotto, al volo. XFS ha buone prestazioni quando si tratta di file di grandi dimensioni, ma ha prestazioni peggiori di altri file system quando si ha a che fare con molti piccoli file. Può essere utile per determinati tipi di server che devono principalmente gestire file di grandi dimensioni.
- JFS, o "Journaled File System", è stato sviluppato da IBM per il sistema operativo IBM AIX nel 1990 e successivamente trasferito su Linux. Vanta un basso utilizzo della CPU e buone prestazioni sia per file grandi che piccoli. Le partizioni JFS possono essere ridimensionate dinamicamente, ma non ridotte. È stato estremamente ben pianificato e ha supporto nella maggior parte delle principali distribuzioni, tuttavia i test di produzione sui server Linux non sono così estesi come Ext, poiché è stato progettato per AIX. Ext4 è più comunemente usato ed è più ampiamente testato.
- Scambiare è un'opzione durante la formattazione di un'unità, ma non è un vero file system. È usato come memoria virtuale e non ha una struttura di file system. Non puoi montarlo per vederne il contenuto. Lo swap è usato come "scratch space" dal kernel di Linux per memorizzare temporaneamente i dati che non possono essere contenuti nella RAM. Viene anche usato per ibernare. Mentre Windows memorizza il suo file di paging come un file nella sua partizione di sistema principale, Linux si riserva solo una partizione vuota separata per lo spazio di swap.
- FAT16, FAT32, e exFAT: I file system FAT di Microsoft sono spesso un'opzione durante la formattazione di un'unità in Linux. Questi file system non includono un giornale, quindi sono ideali per unità USB esterne. Sono uno standard di fatto che ogni sistema operativo, Windows, macOS, Linux e altri dispositivi, può leggere. Questo li rende il file system ideale da utilizzare durante la formattazione di un'unità esterna che si desidera utilizzare con altri sistemi operativi. FAT32 è più vecchio. exFAT è l'opzione ideale, in quanto supporta file di dimensioni superiori a 4 GB e partizioni di dimensioni superiori a 8 TB, a differenza di FAT32.
Esistono anche altri file system Linux, inclusi i file system progettati specificamente per l'archiviazione flash nei dispositivi embedded e sulle schede SD. Ma queste sono le opzioni che vedrai più spesso quando usi Linux.