Wie man Linux-Systeme defragmentiert
Es gibt einen allgemeinen Mythos, dass Linux-Festplatten überhaupt keine Defragmentierung benötigen. In den meisten Fällen ist dies der Fall, hauptsächlich aufgrund der ausgezeichneten Journaling-Dateisysteme, die Linux verwendet (ext2, 3, 4, btrfs usw.), um das Dateisystem zu handhaben. In bestimmten Fällen kann jedoch eine Fragmentierung auftreten. Wenn Ihnen das passiert, ist die Lösung glücklicherweise sehr einfach.
Was ist Fragmentierung?
Die Fragmentierung tritt auf, wenn ein Dateisystem Dateien in kleinen Abschnitten aktualisiert, diese jedoch keine zusammenhängende Ganzzahl bilden und stattdessen auf der Festplatte verteilt sind. Dies gilt insbesondere für FAT- und FAT32-Dateisysteme. Es wurde etwas in NTFS gemildert und passiert fast nie in Linux (extX). Hier ist warum.
In Dateisystemen wie FAT und FAT32 werden Dateien direkt nebeneinander auf der Festplatte geschrieben. Es gibt keinen Platz mehr für Dateiwachstum oder Updates:
Das NTFS lässt etwas mehr Platz zwischen den Dateien, so dass Raum zum Wachsen ist. Da der Abstand zwischen den Blöcken begrenzt ist, wird die Fragmentierung immer noch im Laufe der Zeit auftreten.
Die Journaling-Dateisysteme von Linux verfolgen einen anderen Ansatz. Anstatt Dateien nebeneinander zu platzieren, wird jede Datei über die gesamte Festplatte verteilt, so dass zwischen jeder Datei großzügiger Freiraum bleibt. Es gibt genügend Platz für Dateiupdates / -wachstum und es kommt selten zu Fragmentierung.
Wenn eine Fragmentierung auftritt, versuchen die meisten Linux-Dateisysteme außerdem, Dateien und Chunks neu zu gruppieren, um sie wieder zusammenhängend zu machen.
Festplattenfragmentierung unter Linux
Festplattenfragmentierung tritt selten in Linux auf, es sei denn, Sie haben eine kleine Festplatte oder der Speicherplatz ist knapp. Einige mögliche Fragmentierungsfälle umfassen:
- Wenn Sie große Videodateien oder Rohbilddateien bearbeiten, ist der Speicherplatz begrenzt
- Wenn Sie ältere Hardware wie einen alten Laptop verwenden, und Sie haben eine kleine Festplatte
- wenn Ihre Festplatten zu füllen beginnen (über 85% verwendet)
- Wenn Sie viele kleine Partitionen haben, die Ihren Home-Ordner überfluten
Die beste Lösung ist, eine größere Festplatte zu kaufen. Wenn dies nicht möglich ist, wird hier die Defragmentierung nützlich.
So überprüfen Sie die Fragmentierung
Der fsck
Befehl fsck
das für Sie - das heißt, wenn Sie Gelegenheit haben, ihn von einer Live-CD auszuführen, wobei alle betroffenen Partitionen unmounted sind.
Das ist sehr wichtig: RUNNING FSCK AUF EINER MONTIERTEN PARTITION KANN UND WIRD IHRE DATEN UND DEINE DISKETTE SEHR SCHÄDIG SCHADEN.
Du wurdest gewarnt. Bevor Sie fortfahren, machen Sie eine vollständige System-Sicherung.
Haftungsausschluss : Der Autor dieses Artikels und Make Tech Easier übernehmen keine Verantwortung für Schäden an Ihren Dateien, Daten, Systemen oder anderen Schäden, die durch Ihre Handlungen nach der Befolgung dieses Hinweises verursacht wurden. Sie können auf eigenes Risiko vorgehen. Wenn Sie fortfahren, akzeptieren Sie dies und bestätigen Sie dies.
Sie sollten einfach in eine Live-Sitzung booten (wie eine Installationsdiskette, eine Systemrettungs-CD usw.) und fsck
auf Ihren UNMUNTED- Partitionen ausführen . Führen Sie den folgenden Befehl mit root-Berechtigung aus, um nach Problemen zu suchen:
fsck -fn [/ Pfad / zu / Ihrer / Partition]
Sie können überprüfen, was der [/path/to/your/partition]
ist, indem Sie laufen
sudo fdisk -l
Es gibt eine Möglichkeit, fsck
(relativ) sicher auf einer gemounteten Partition auszuführen - also mit der -n
. Dies führt zu einer Nur-Lese-Überprüfung des Dateisystems, ohne etwas zu berühren. Natürlich gibt es hier keine Sicherheitsgarantie und Sie sollten erst nach dem Erstellen eines Backups fortfahren. Auf einem ext2-Dateisystem läuft
sudo fsck.ext2 -fn / pfad / zu / deiner / partition
würde zu viel Ausgabe führen - die meisten von ihnen Fehlermeldungen aufgrund der Tatsache, dass die Partition bereitgestellt ist. Am Ende erhalten Sie Informationen zur Fragmentierung.
Wenn Ihre Fragmentierung über 20% liegt, sollten Sie mit der Defragmentierung Ihres Systems fortfahren.
Wie man Linux-Dateisysteme leicht defragmentiert
Sie müssen lediglich ALLE Ihre Dateien und Daten auf einem anderen Laufwerk sichern (indem Sie sie manuell kopieren ), die Partition formatieren und Ihre Dateien zurückkopieren (verwenden Sie hierfür kein Sicherungsprogramm). Das Journaling-Dateisystem behandelt sie als neue Dateien und fügt sie ohne Fragmentierung ordentlich auf die Festplatte ein.
Um Ihre Dateien zu sichern, führen Sie sie aus
cp -afv [/ Pfad / zu / Quelle / Partition] / * [/ Pfad / zu / Ziel / Ordner]
Achte auf das Sternchen (*); es ist wichtig.
Hinweis : Es ist allgemein anerkannt, dass zum Kopieren großer Dateien oder großer Datenmengen der Befehl dd
am besten dd
ist. Dies ist eine Operation auf sehr niedriger Ebene und kopiert alles "wie es ist", einschließlich des leeren Raums und sogar des übriggebliebenen Mülls. Dies ist nicht das, was wir wollen, also ist es wahrscheinlich besser, cp
zu verwenden.
Jetzt müssen Sie nur alle Originaldateien entfernen.
sudo rm -rf [/ Pfad / zu / Quelle / Partition] / *
Optional: Sie können den leeren Platz mit Nullen füllen. Sie könnten dies auch mit Formatierung erreichen, aber wenn Sie zum Beispiel nicht die gesamte Partition kopiert haben, nur große Dateien (die am ehesten Fragmentierung verursachen), ist dies möglicherweise keine Option.
sudo dd if = / dev / zero of = [/ Pfad / zu / source / Partition] /temp-zero.txt
Warte bis es fertig ist. Sie könnten auch den Fortschritt mit pv.
überwachen pv.
sudo apt-get installieren pv sudo pv -tpreb | of = [/ Pfad / zu / Quelle / Partition] /temp-zero.txt
Wenn Sie fertig sind, löschen Sie einfach die temporäre Datei.
sudo rm [/pfad/zu/source/partition]/temp-zero.txt
Nachdem Sie den leeren Bereich auf Null gesetzt haben (oder diesen Schritt vollständig übersprungen haben), kopieren Sie Ihre Dateien zurück und kehren den ersten cp
Befehl um:
cp -afv [/ Pfad / zu / Original / Ziel / Ordner] / * [/ Pfad / zu / Original / Quelle / Partition]
Verwenden von e4defrag
Wenn Sie einen einfacheren Ansatz bevorzugen, installieren Sie e2fsprogs,
sudo apt-get installieren e2fsprogs
und führen Sie e4defrag
als root auf der betroffenen Partition aus. Wenn Sie die Partition nicht trennen oder nicht trennen können, können Sie ihren Bereitstellungspunkt anstelle seines Pfads verwenden. Um dein gesamtes System zu defragmentieren, renne
sudo e4defrag /
Es kann nicht garantiert werden, dass es während der Bereitstellung erfolgreich ist (Sie sollten auch aufhören, Ihr System zu verwenden, während es ausgeführt wird), aber es ist viel einfacher als das Kopieren aller Dateien weg und zurück.
Fazit
Fragmentierung sollte auf dem Linux-System aufgrund der effizienten Datenverarbeitung durch das Journaling-Dateisystem selten ein Problem darstellen. Wenn Sie aus irgendwelchen e4defrag
in eine Fragmentierung geraten, können Sie Ihren Speicherplatz auf einfache Weise neu e4defrag
indem e4defrag
alle Dateien weg- und zurückkopieren oder e4defrag
. Es ist jedoch wichtig, dass Ihre Daten sicher sind. Bevor Sie also einen Vorgang ausführen, der alle oder die meisten Ihrer Dateien betrifft, stellen Sie sicher, dass Sie nur ein Backup erstellen, um auf der sicheren Seite zu sein.