Quando formatti le partizioni su un PC Linux, vedrai una grande varietà di opzioni di 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
Entreremo nei dettagli e spiegheremo la differenza tra i vari file system tra un momento, ma se non sei sicuro: usa Ext4.
Ext4 è il file system predefinito sulla maggior parte delle distribuzioni Linux per una ragione. È una versione migliorata del vecchio file system Ext3. Non è il file system più all’avanguardia, ma questo è un bene: significa che Ext4 è solido come una roccia e stabile.
In futuro, le distribuzioni Linux si sposteranno gradualmente verso BtrFS. BtrFS è ancora all’avanguardia e sta vedendo un sacco di sviluppo, quindi è meglio evitarlo sui sistemi di produzione. Il rischio di corruzione dei dati o altri problemi non vale il potenziale miglioramento della velocità.
RELATO: Qual è la differenza tra FAT32, exFAT e NTFS?
Nota, però, che questo consiglio “usa Ext4” si applica solo alle partizioni di sistema di Linux e ad altre partizioni su disco a cui solo Linux può accedere. Se stai formattando un disco esterno che vuoi condividere con altri sistemi operativi, non dovresti usare Ext4 perché Windows, macOS e altri dispositivi non possono leggere i file system Ext4. Vorrai usare exFAT o FAT32 quando formatti un disco esterno su Linux.
Se stai impostando delle partizioni sul tuo disco di avvio principale di Linux, vorrai anche creare una partizione di swap di almeno qualche GB di dimensione quando imposti quelle partizioni. Questa partizione è usata per lo “spazio di swap”. È simile al file di paging su Windows. Linux scambia la memoria nello spazio di swap quando la RAM è piena. Questa partizione deve essere formattata come “swap” invece che con un particolare file system.
Che cos’è il journaling?
Una cosa che noterai quando sceglierai 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 crash e improvvise perdite di potenza. Diciamo che il vostro sistema è a metà strada nella scrittura di un file sul disco e improvvisamente perde potenza. Senza un diario, il computer non avrebbe idea se il file è stato scritto completamente sul disco. Il file rimarrebbe lì sul disco, corrotto.
Con un diario, il vostro computer noterebbe che stava per scrivere un certo file sul disco nel diario, scrivere quel file sul disco, e poi rimuovere quel lavoro dal diario. Se la corrente va via durante la scrittura del file, Linux controlla il diario del file system quando si avvia e riprende qualsiasi lavoro parzialmente completato. Questo previene la perdita di dati e la corruzione dei file.
Il journaling rallenta un po’ le prestazioni di scrittura del disco, ma ne vale la pena su un desktop o laptop. Non è così tanto overhead come si potrebbe pensare. L’intero file non viene scritto nel diario. Invece, solo i metadati del file, l’inode o la posizione sul disco vengono registrati nel journal prima di essere scritti sul disco.
Ogni moderno file system supporta il journaling, e vorrete usare un file system che supporta il journaling quando impostate un desktop o un laptop.
I file system che non offrono il journaling sono disponibili per l’uso su server ad alte prestazioni e altri sistemi simili dove l’amministratore vuole ottenere prestazioni extra. Sono anche ideali per le unità flash rimovibili, dove non si vuole il sovraccarico e le scritture aggiuntive del journaling.
Che differenza c’è tra tutti questi 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. Questo è uno dei motivi 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. Era un importante aggiornamento rispetto al file system Minix usato all’epoca, ma manca di importanti caratteristiche. Molte distribuzioni Linux non supportano più Ext.
- Ext2 non è un file system con journaling. Quando fu introdotto, fu il primo file system a supportare gli attributi estesi dei file e i dischi da 2 terabyte. La mancanza di un journal di Ext2 significa che scrive meno su disco, il che lo rende utile per la memoria flash come le unità USB. Tuttavia, anche i file system come exFAT e FAT32 non usano il journaling e sono più compatibili con diversi sistemi operativi, quindi si consiglia di evitare Ext2 a meno che non si sappia di averne bisogno per qualche motivo.
- Ext3 è fondamentalmente solo Ext2 con il journaling. Ext3 è stato progettato per essere compatibile all’indietro con Ext2, permettendo la conversione delle partizioni tra Ext2 ed Ext3 senza alcuna formattazione richiesta. È stato in giro più a lungo di Ext4, ma Ext4 è in giro dal 2008 ed è ampiamente testato. A questo punto, è meglio usare Ext4.
- Ext4 è stato anche progettato per essere compatibile all’indietro. Puoi montare un file system Ext4 come Ext3, o montare un file system Ext2 o Ext3 come Ext4. Include caratteristiche più recenti che riducono la frammentazione dei file, permettono volumi e file più grandi e utilizzano l’allocazione ritardata per migliorare la durata della memoria flash. Questa è la versione più moderna del file system Ext ed è la predefinita nella maggior parte delle distribuzioni Linux.
- BtrFS, pronunciato “Butter” o “Better” FS, è stato originariamente progettato da Oracle. Sta per “B-Tree File System” e permette il pooling delle unità, snapshot al volo, compressione trasparente e deframmentazione online. Condivide un certo numero di idee che si trovano in ReiserFS, un file system che alcune distribuzioni Linux usavano di default. BtrFS è progettato per essere una rottura netta con la serie di file system Ext. Ted Ts’o, il manutentore del file system Ext4, considera Ext4 una soluzione a breve termine e crede che BtrFS sia la strada da seguire. Aspettatevi di vedere BtrFS diventare il default sia nei server aziendali che nelle distribuzioni desktop Linux nei prossimi anni, man mano che verrà ulteriormente testato.
- ReiserFS fu un grande balzo in avanti per i file system Linux quando fu introdotto nel 2001 e includeva molte nuove caratteristiche che Ext non sarebbe mai stato in grado di implementare. ReiserFS è stato sostituito da Reiser4, che ha migliorato molte delle caratteristiche che erano incomplete o mancanti nella versione iniziale, nel 2004. Ma lo sviluppo di Reiser4 si è fermato dopo che lo sviluppatore principale, Hans Reiser, è stato mandato in prigione nel 2008. Reiser4 non è ancora nel kernel principale di Linux ed è improbabile che ci arrivi. BtrFS è la scelta migliore a lungo termine.
RELATO: Come installare e usare ZFS su Ubuntu (e perché vorresti farlo)
- ZFS è stato progettato da Sun Microsystems per Solaris ed è ora di proprietà di Oracle. ZFS supporta un sacco di caratteristiche avanzate tra cui drive pooling, snapshot e striping dinamico del disco-BtrFS porterà molte di queste caratteristiche su Linux per impostazione predefinita. Ogni file ha un checksum, così ZFS può dire se un file è corrotto o no. Sun ha aperto ZFS sotto la licenza Sun CDDL, il che significa che non può essere incluso nel kernel di Linux. Tuttavia, è possibile installare il supporto ZFS su qualsiasi distribuzione Linux. Anche Ubuntu ora offre il supporto ufficiale ZFS a partire da Ubuntu 16.04. Ubuntu usa ZFS di default per i container.
- 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 alcuni modi, in quanto utilizza anche l’allocazione ritardata per aiutare con la frammentazione dei file e non consente snapshot montati. Può essere ingrandito, ma non rimpicciolito, al volo. XFS ha buone prestazioni quando si tratta di file di grandi dimensioni, ma ha prestazioni peggiori di altri file system quando si tratta di molti file piccoli. Può essere utile per certi tipi di server che hanno principalmente bisogno di gestire file di grandi dimensioni.
- JFS, o “Journaled File System”, è stato sviluppato da IBM per il sistema operativo IBM AIX nel 1990 e successivamente portato 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 rimpicciolite. È stato estremamente ben progettato e ha il supporto nella maggior parte delle principali distribuzioni, tuttavia il suo test di produzione sui server Linux non è così esteso come Ext, poiché è stato progettato per AIX. Ext4 è più comunemente usato ed è più ampiamente testato.
- Swap è un’opzione quando si formatta un disco, ma non è un vero e proprio file system. È usato come memoria virtuale e non ha una struttura di file system. Non si può montare per vederne il contenuto. Swap è usato come “spazio di graffio” dal kernel Linux per memorizzare temporaneamente i dati che non possono stare nella RAM. È anche usato per l’ibernazione. Mentre Windows memorizza il suo file di paging come un file sulla sua partizione principale di sistema, Linux riserva solo una partizione vuota separata per lo spazio di swap.
RELATO: Qual è la differenza tra FAT32, exFAT e NTFS?
- FAT16, FAT32 e exFAT: i file system FAT di Microsoft sono spesso un’opzione quando si formatta un disco in Linux. Questi file system non includono un diario, quindi sono ideali per unità USB esterne. Sono uno standard de facto che ogni sistema operativo – Windows, macOS, Linux e altri dispositivi – può leggere. Questo li rende il file system ideale da usare quando si formatta 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.
Ci sono anche altri file system Linux, compresi i file system progettati specificamente per la memorizzazione flash in dispositivi embedded e su schede SD. Ma queste sono le opzioni che vedrete più frequentemente quando si usa Linux.
Sono le opzioni che si vedono più frequentemente quando si usa Linux.