När du formaterar partitioner på en Linux-dator ser du ett stort antal olika filsystemalternativ. Dessa alternativ behöver inte vara överväldigande. Om du inte är säker på vilket Linux-filsystem du ska använda finns det ett enkelt svar.
Det snabba svaret: Använd Ext4 om du inte är säker
Vi kommer att gå in på djupet och redogöra för skillnaderna mellan de olika filsystemen om en stund, men om du inte är säker: Använd Ext4.
Ext4 är standardfilsystemet i de flesta Linuxdistributioner av en anledning. Det är en förbättrad version av det äldre filsystemet Ext3. Det är inte det mest banbrytande filsystemet, men det är bra: Det betyder att Ext4 är bergfast och stabilt.
I framtiden kommer Linuxdistributioner gradvis att övergå till BtrFS. BtrFS är fortfarande i framkant och genomgår en hel del utveckling, så du vill undvika det på produktionssystem. Risken för datakorruption eller andra problem är inte värd den potentiella förbättringen av hastigheten.
RELATERAT: Observera dock att rådet ”använd Ext4” endast gäller för Linux-systempartitioner och andra partitioner på disken som endast Linux har tillgång till. Om du formaterar en extern enhet som du vill dela med andra operativsystem bör du inte använda Ext4 eftersom Windows, macOS och andra enheter inte kan läsa Ext4-filsystem. Du bör använda exFAT eller FAT32 när du formaterar en extern enhet i Linux.
Om du konfigurerar partitioner på din huvudsakliga Linux-startdisk bör du också skapa en swap-partition som är minst några GB stor när du konfigurerar dessa partitioner. Den här partitionen används för ”växlingsutrymme”. Den liknar den s.k. paging-filen i Windows. Linux byter ut minne till swaputrymmet när RAM-minnet är fullt. Den här partitionen måste formateras som ”swap” istället för med ett visst filsystem.
Vad är journalföring?
En sak som du kommer att märka när du väljer mellan olika filsystem är att en del av dem är markerade som ett ”journalförande” filsystem och en del inte. Detta är viktigt.
Journalering är utformad för att förhindra datakorruption vid krascher och plötsliga strömavbrott. Låt oss säga att ditt system är halvvägs genom att skriva en fil till disken och att det plötsligt förlorar strömmen. Utan en journal skulle datorn inte ha någon aning om filen var helt skriven till disken. Filen skulle ligga kvar på disken, korrupt.
Med en journal skulle datorn notera att den ska skriva en viss fil till disken i journalen, skriva filen till disken och sedan ta bort jobbet från journalen. Om strömmen gick halvvägs under skrivningen av filen skulle Linux kontrollera filsystemets journal när den startar upp och återuppta alla delvis avslutade jobb. Detta förhindrar dataförlust och filkorruption.
Journalering sänker diskskrivningshastigheten en liten bit, men det är väl värt det på en stationär eller bärbar dator. Det är inte så mycket overhead som du kanske tror. Hela filen skrivs inte till journalen. Istället registreras endast filmetadata, inod eller diskplats i journalen innan den skrivs till disken.
Alla moderna filsystem har stöd för journalföring och du vill använda ett filsystem som har stöd för journalföring när du installerar en stationär eller bärbar dator.
Filsystem som inte erbjuder journalföring finns tillgängliga för användning på högpresterande servrar och andra sådana system där administratören vill pressa ut extra prestanda. De är också idealiska för flyttbara flash-enheter, där du inte vill ha den högre overhead och de extra skrivningar som journalföring innebär.
Vad är skillnaden mellan alla dessa Linux-filsystem?
Men medan Microsoft utvecklar Windows och Apple kontrollerar macOS är Linux ett projekt med öppen källkod som utvecklas av samhället. Vem som helst (eller vilket företag som helst) med kompetens och tid kan skapa ett nytt Linux-filsystem. Det är en av anledningarna till att det finns så många alternativ. Här är skillnaderna:
- Ext står för ”Extended file system” och var det första som skapades specifikt för Linux. Det har haft fyra större revideringar. ”Ext” är den första versionen av filsystemet som introducerades 1992. Det var en stor uppgradering av det Minix-filsystem som användes på den tiden, men saknar viktiga funktioner. Många Linuxdistributioner har inte längre stöd för Ext.
- Ext2 är inte ett journaliserande filsystem. När det introducerades var det det första filsystemet med stöd för utökade filattribut och 2 terabyte-enheter. Ext2:s avsaknad av en journal innebär att det skriver mindre till disken, vilket gör det användbart för flashminne som USB-enheter. Filsystem som exFAT och FAT32 använder dock inte heller journalföring och är mer kompatibla med olika operativsystem, så vi rekommenderar att du undviker Ext2 om du inte vet att du behöver det av någon anledning.
- Ext3 är i princip bara Ext2 med journalföring. Ext3 utformades för att vara bakåtkompatibel med Ext2, vilket gör att partitioner kan konverteras mellan Ext2 och Ext3 utan att någon formatering krävs. Det har funnits längre än Ext4, men Ext4 har funnits sedan 2008 och är allmänt testat. Vid det här laget är det bättre att använda Ext4.
- Ext4 utformades också för att vara bakåtkompatibelt. Du kan montera ett Ext4-filsystem som Ext3 eller montera ett Ext2- eller Ext3-filsystem som Ext4. Det innehåller nyare funktioner som minskar filfragmentering, tillåter större volymer och filer och använder fördröjd allokering för att förbättra flashminnets livslängd. Detta är den modernaste versionen av Ext-filsystemet och är standard i de flesta Linuxdistributioner.
- BtrFS, som uttalas ”Butter” eller ”Better” FS, utformades ursprungligen av Oracle. Det står för ”B-Tree File System” och möjliggör enhetspooling, ögonblicksbilder i farten, transparent komprimering och defragmentering online. Det delar ett antal av de idéer som finns i ReiserFS, ett filsystem som vissa Linuxdistributioner använde som standard. BtrFS är utformat för att vara en ren brytning från Ext-serien av filsystem. Ted Ts’o, som ansvarar för filsystemet Ext4, anser att Ext4 är en kortsiktig lösning och att BtrFS är vägen framåt. Förvänta dig att BtrFS kommer att bli standard i både företagsserver- och konsumentdatorer i Linuxdistributioner under de närmaste åren när det testas ytterligare.
- ReiserFS var ett stort steg framåt för Linux-filsystem när det introducerades 2001 och det innehöll många nya funktioner som Ext aldrig skulle ha kunnat implementera. ReiserFS ersattes 2004 av Reiser4, som förbättrade många av de funktioner som var ofullständiga eller saknades i den första versionen. Men utvecklingen av Reiser4 avstannade efter att huvudutvecklaren, Hans Reiser, sattes i fängelse 2008. Reiser4 finns fortfarande inte i den huvudsakliga Linuxkärnan och det är osannolikt att det kommer att bli så. BtrFS är det bättre valet på lång sikt.
RELATERAT: Hur man installerar och använder ZFS på Ubuntu (och varför man vill det)
- ZFS utformades av Sun Microsystems för Solaris och ägs nu av Oracle. ZFS har stöd för många avancerade funktioner, bland annat enhetspooling, ögonblicksbilder och dynamisk disk striping-BtrFS kommer att ge Linux många av dessa funktioner som standard. Varje fil har en kontrollsumma, så ZFS kan avgöra om en fil är skadad eller inte. Sun har öppnat ZFS under Sun CDDL-licensen, vilket innebär att det inte kan inkluderas i Linuxkärnan. Du kan dock installera stöd för ZFS i vilken Linuxdistribution som helst. Ubuntu erbjuder nu också officiellt ZFS-stöd från och med Ubuntu 16.04. Ubuntu använder ZFS som standard för containrar.
- XFS utvecklades av Silicon Graphics 1994 för operativsystemet SGI IRX och anpassades till Linux 2001. Det liknar Ext4 på vissa sätt, eftersom det också använder fördröjd allokering för att hjälpa till med filfragmentering och inte tillåter monterade ögonblicksbilder. Den kan förstoras, men inte krympas, i farten. XFS har god prestanda när det gäller stora filer, men har sämre prestanda än andra filsystem när det gäller många små filer. Det kan vara användbart för vissa typer av servrar som främst behöver hantera stora filer.
- JFS, eller ”Journaled File System”, utvecklades av IBM för operativsystemet IBM AIX 1990 och anpassades senare till Linux. Det har låg CPU-användning och god prestanda för både stora och små filer. JFS-partitioner kan dynamiskt ändras i storlek, men inte krympas. Det var extremt välplanerat och har stöd i de flesta större distributioner, men produktionstesterna på Linuxservrar är inte lika omfattande som Ext, eftersom det utformades för AIX. Ext4 används oftare och är mer allmänt testat.
- Swap är ett alternativ när man formaterar en enhet, men är inget egentligt filsystem. Det används som virtuellt minne och har ingen filsystemstruktur. Du kan inte montera det för att se dess innehåll. Swap används som ”scratch space” av Linuxkärnan för att tillfälligt lagra data som inte får plats i RAM-minnet. Det används också för viloläge. Medan Windows lagrar sin sidofil som en fil på sin huvudsystempartition, reserverar Linux bara en separat tom partition för swaputrymme.
RELATERAT: Vad är skillnaden mellan FAT32, exFAT och NTFS?
- FAT16, FAT32 och exFAT: Microsofts FAT-filsystem är ofta ett alternativ när man formaterar en enhet i Linux. Dessa filsystem innehåller ingen journal, så de är idealiska för externa USB-enheter. De är en de facto-standard som alla operativsystem – Windows, macOS, Linux och andra enheter – kan läsa. Detta gör dem till det idealiska filsystemet att använda när du formaterar en extern enhet som du vill använda med andra operativsystem. FAT32 är äldre. exFAT är det idealiska alternativet, eftersom det stöder filer som är större än 4 GB och partitioner som är större än 8 TB, till skillnad från FAT32.
Det finns även andra Linux-filsystem, inklusive filsystem som är utformade specifikt för flashlagring i inbyggda enheter och på SD-kort. Men dessa är de alternativ som du oftast kommer att se när du använder Linux.