Skrivet av Mejan:
Jag vet att många kommer att säga att men inte behöver delfragmentera på Linux osv, för det inte blir några fragment.
Men samtidigt så sker det ju faktiskt fragment kanske inte lika ofta som på windows men det händer.
Anledningen är snarare att det är bättre att låta filsystemet sköta sådant automatiskt, då det vet bättre. Exempelvis Ext-familjen av filsystem ser till att lämna ledigt utrymme mellan filer så att det finns möjlighet att växa utan att direkt behöva bryta upp filer. Om det ändå brakar in i en kollision så kommer filer sömlöst flyttas så att problemet försvinner, eller åtminstone håller sig till ett minimum. När disken börjar bli full så blir det givetvis svårare att hitta plats, varpå fragmentering kan uppstå och disken får jobba hårdare för att flytta runt filer så att strukturen hålls fin. Ser man prestandaproblem med disk-I/O vid en nästan proppad disk så kan man titta på att lösgöra lite utrymme så att filsystemet kan jobba friare.
Om man med "defragmentera" menar bilden "lägg alla filer staplade på varandra från första sektorn på disken", FAT32-style, så gör man sig själv och systemet en otjänst. När en fil i den fina staplingen raderas så kommer det bildas hål i strukturen, och när en existerande fil vill växa så behöver systemet likväl behöva skriva om filer, så operationen är egentligen utan nytta, och kanske till och med skadlig för prestanda jämfört med den glesare struktur som byggs upp naturligt.
Defragmentering var en viktig fråga på FAT32 pga naiva skrivmönster. Idag är det till stor del bara ett sätt att slita lite extra på disken (dubbelt så om det handlar om SSD), åtminstone för "vanlig" användning.
Ett sätt att "defragmentera" en fil som nämndes ovan via `tar` är att helt enkelt kopiera den och ta bort ursprungsfilen. Ifall det fanns tillräckligt med utrymme på disken så kommer den nya filen garanterat skrivas i en följd. Detta gör också att filsystemets algoritm kommer placera ut filerna "smart", liksom alltså sker kontinuerligt vid helt normal användning.
Med det sagt, så om det handlar om Ext4 så finns det "officiella" defragmenteringsprogrammet `e4defrag` i paketet `e2fsprogs` i Debianbaserade distributioner, och säkert i även andra distributioners programkataloger, men se till att veta varför det finns, och vad defragmentering i praktiken ger för eventuella följder för det filsystem du använder.