Varför Linux behöver inte defragmentera
Om du är en Linux-användare har du säkert hört att du inte behöver defragmentera dina Linux-filsystem. Du kommer också märka att Linux-distributioner inte kommer med diskdefragmenteringsverktyg. Men varför är det?
För att förstå varför Linux-filsystem inte behöver defragmentera i normal användning - och Windows gör det - måste du förstå varför fragmentering uppstår och hur Linux- och Windows-filsystem fungerar annorlunda från varandra.
Vilken fragmentering är
Många Windows-användare, även oerfarna, tror att regelbundet defragmentering av sina filsystem kommer att påskynda sin dator. Vad många människor inte vet är varför det här är.
Kort sagt, en hårddisk har ett antal sektorer på den, som alla kan innehålla en liten bit data. Filer, särskilt stora, måste lagras över ett antal olika sektorer. Låt oss säga att du sparar ett antal olika filer till ditt filsystem. Var och en av dessa filer kommer att lagras i ett sammanhängande grupp av sektorer. Senare uppdaterar du en av de filer du ursprungligen sparade, vilket ökar filens storlek. Filsystemet försöker spara de nya delarna av filen bredvid de ursprungliga delarna. Tyvärr, om det inte finns tillräckligt med oavbrutet rum, måste filen delas upp i flera bitar - allting sker öppet för dig. När hårddisken läser filen måste dess huvuden hoppa över olika fysiska platser på hårddisken för att läsa varje bit av sektorer - detta sakta ner sakerna.
Defragmentering är en intensiv process som flyttar bitar av filer runt för att minska fragmenteringen, vilket säkerställer att varje fil ligger ihop med enheten.
Naturligtvis är detta annorlunda för solid state-enheter, som inte har rörliga delar och bör inte defragmenteras - defragmentering av SSD kommer faktiskt att minska sitt liv. Och i de senaste versionerna av Windows behöver du inte oroa dig för att defragmentera dina filsystem - Windows gör det automatiskt för dig. För mer information om bästa metoder för defragmentering, läs den här artikeln:
HTG förklarar: behöver du verkligen defragera din dator?
Hur Windows-filsystem fungerar
Microsofts gamla FAT-filsystem - som senast sett som standard på Windows 98 och ME, även om det fortfarande används på USB-flashenheter idag - försöker inte ordna filer på ett intelligent sätt. När du sparar en fil till ett FAT-filsystem sparar det så nära diskens start som möjligt. När du sparar en andra fil sparar den den direkt efter den första filen - och så vidare. När originalfilerna växer i storlek blir de alltid fragmenterade. Det finns inget närliggande rum för dem att växa in i.
Microsofts nyare NTFS-filsystem, som kom till konsument-datorer med Windows XP och 2000, försöker bli lite smartare. Det allokerar mer "buffert" ledigt utrymme runt filer på enheten, men som alla Windows-användare kan berätta, blir NTFS-filsystem fortfarande fragmenterade över tiden.
På grund av det sätt som dessa filsystem fungerar, måste de defragmenteras för att hålla sig i topp prestanda. Microsoft har lindrat detta problem genom att köra defragmenteringsprocessen i bakgrunden på de senaste versionerna av Windows.
Hur Linux-filsystem fungerar
Linux ext2, ext3 och ext4 filsystem - ext4 är filsystemet som används av Ubuntu och de flesta andra nuvarande Linux-distributioner - allokerar filer på ett mer intelligent sätt. I stället för att placera flera filer i närheten av varandra på hårddisken sprider Linux-filsystem olika filer över hela disken, vilket ger en stor mängd ledigt utrymme mellan dem. När en fil redigeras och behöver växa, finns det vanligtvis gott om ledigt utrymme för att filen ska växa in. Om fragmentering uppstår, försöker filsystemet att flytta filerna runt för att minska fragmenteringen vid normal användning, utan att behöva ett defragmenteringsverktyg.
På grund av hur detta tillvägagångssätt fungerar börjar du se fragmentering om ditt filsystem fyller upp. Om det är 95% (eller till och med 80%) fullt, börjar du se en del fragmentering. Emellertid är filsystemet utformat för att undvika fragmentering vid normal användning.
Om du har problem med fragmentering på Linux behöver du nog en större hårddisk. Om du faktiskt behöver defragmentera ett filsystem är det enklaste sättet troligtvis den mest tillförlitliga: Kopiera alla filer från partitionen, radera filerna från partitionen och kopiera sedan filerna tillbaka till partitionen. Filsystemet fördelar filerna på ett intelligent sätt när du kopierar dem tillbaka till disken.
Du kan mäta fragmenteringen av ett Linux-filsystem med kommandot fsck - leta efter "icke-sammanhängande inoder" i utgången.