Eine clevere Möglichkeit, ein FAT-Dateisystem zu defragmentieren?

10

Was ist der beste Weg, um ein FAT-Dateisystem zu defragmentieren, wenn Linux / Unix ausgeführt wird (z. B. auf einem USB-Stick)?

Marc MAURICE
quelle
4
Ich würde mich für Ihre erste Option entscheiden, wenn der Platz kein Problem darstellt. Ich würde ein sauberes Dateisystem in einer großen Datei erstellen, die in einer Schleife gemountet ist. Auf diese Weise haben Sie die Möglichkeit, das Ergebnis zu überprüfen, bevor Sie den Stick überschreiben.
Jippie
@ jippies Vorschlag bietet auch ein Backup. Andernfalls würde ich mich für ein Defragmentierungsprogramm entscheiden, aber zuerst sorgfältig prüfen, ob es zuverlässig ist, und vorher eine Sicherungskopie erstellen, wenn ich einen Anhang zu den Daten habe.
vonbrand
@jippie: du meinst eine Loop-Datei mit der gleichen Größe wie die ursprüngliche Fat-Partition zu erstellen, alles darauf zu kopieren, zu überprüfen und dann auf das Originalgerät zu dd? Sie benötigen zusätzlichen Speicherplatz, und ich sehe nicht, wie es besser ist, die Datei einfach nur vorübergehend in das lokale ext-Dateisystem zu kopieren. Oder mir fehlt etwas.
Marc MAURICE
1
Sie können das Ergebnis überprüfen, bevor Sie den Inhalt des Flash-Laufwerks ändern.
Jippie

Antworten:

7

Mit dem filefragDienstprogramm können Sie überprüfen, ob eine Datei fragmentiert ist oder nicht .

Auf diese Weise können Sie die nicht fragmentierten Dateien herausfiltern und das Kopieren / Zurückkopieren nur für bereits fragmentierte Dateien durchführen. Das sollte Ihnen Zeit sparen. Beachten Sie jedoch, dass es keine Garantie dafür gibt, dass das neue Dateilayout besser ist als das alte.

Der beste Weg ist, die Dateifragmentierung vollständig zu ignorieren. Besonders auf einem USB-Stick spielt es kaum eine Rolle, verschwendet nur Schreibzyklen und im Gegensatz zu Festplatten gibt es keine beweglichen Teile und daher keine große Strafe aufgrund von Fragmentierung.

Eine Defragmentierung sollte nur erforderlich sein, wenn etwas Komisches passiert ist, das dazu geführt hat, dass Dateien auf extremste Weise fragmentiert wurden. Zum Beispiel Torrent-Clients, die Dateiinhalte in zufälliger Reihenfolge herunterladen, ohne sie vorab zuzuweisen. Aber wenn FAT nicht irgendwann anfängt, spärliche Dateien zu unterstützen, ist dies dort nicht einmal ein Problem, da eine Vorbelegung für einen solchen FS obligatorisch ist.

Frostschutz
quelle
1
Danke für deine Antwort. Tatsächlich brauche ich eine Möglichkeit, das FAT-Dateisystem vollständig zu defragmentieren, da ich Easy2boot verwende und nicht jede ISO- Datei fragmentiert werden darf.
Marc MAURICE
Klingt für mich nach einer veralteten Methode. GRUB2 isoloop ist sehr beliebt, daher unterstützen viele Distributionen die Loop-Montage einer ISO bereits von überall. Diejenigen, die dies nicht tun, können möglicherweise direkt von einer Partition aus arbeiten, aber es kann genauso gut fehlschlagen. Kommt ganz auf die ISO selbst an.
Frostschutz
2
Der Nachteil von GRUB2 isoloop ist, dass ein Linux-Kernel direkt in die ISO geladen wird. Sie müssen den Pfad des zu ladenden Kernels / initrd kennen, und Sie verlieren das ISOLINUX-Menü mit benutzerdefinierten Startoptionen.
Marc MAURICE
Es ist nicht schwer, den Pfad zu finden, und der Rest hängt davon ab, wie viel Aufwand Sie unternehmen möchten, um die isolinux-Menüelemente in ein grub2-Untermenü zu konvertieren ... aber ja, alle Lösungen haben ihre Nachteile. Ich habe gerade meine ISO-Partition getestet - KEINE der Dateien ist unfragmentiert. Und sie wurden einzeln kopiert. Das zu beheben wäre ein großer Schmerz für mich, daher werde ich lieber auf ISOs verzichten, die die Isoloop-Montage nicht unterstützen.
Frostschutz
Ich habe easy2boot selbst nie verwendet, aber da diese Lösung das Erstellen einer Partition umfasst, können Sie dies nicht in erster Linie tun - eine Partition pro ISO und dd. Auf diese Weise ist keine Fragmentierung möglich. Oder alternativ, wenn das überhaupt möglich ist, ein fragmentierungsfreies Dateisystem (ISO in ISO?)
Frostschutz
0

Betrachten wir dies aus einem anderen Blickwinkel, weil Sie ein Beispiel "zum Beispiel auf einem USB-Stick" gegeben haben.

SCHLECHTES BEISPIEL

Ein USB-Stick ist ein FLASH-Speicher, und es sind zwei Dinge zu beachten: 1) Da der FLASH-Speicher keine beweglichen Teile enthält, ist beim Defragmentieren kein merklicher Leistungsgewinn zu erkennen. Defrgs dienen entweder zum Bereinigen des Dateisystems oder zum Umorganisieren der Dateiblöcke, um sie näher beieinander zu platzieren - um die physischen Bewegungen des Arms (Suchen) und die Wartezeit beim Drehen der Disc (Latenz) zu verringern. Flash hat das nicht. 2) Schreiben und Schreiben und Schreiben auf Flash-Speicher zermürben es. Für eine Schreibdauer von 100 KB würde Ihr USB-Stick möglicherweise mehrere bis 10 Jahre halten, aber die Zeit, die Sie schreiben können, ist eine "endliche" Zahl. Ständige Defragmentierungen des USB-Sticks verschlingen aufgrund der Ausdauerbeschränkung dieses Leben.

Und dies ist nicht nur Ihr USB-Stick, SD-Karten, Compact FLASH und sogar SSD-Laufwerke.

Mein Punkt, defragmentieren Sie nicht nur zum Teufel. Wissen Sie, was die zugrunde liegende Technologie unter dem Dateisystem ist und welche Auswirkungen dies hat. Selbst wenn sie magnetisch und nicht elektronisch ist, kann zu viel Defragmentierung Ihr Dateisystem beschädigen und Sie verlieren Ihre Dateien.

Robert Shullich
quelle