Auf meinem NTFS-USB-Laufwerk muss ich ISOs defragmentieren, um sie booten zu können. Aber weder die native Defragmentierung von Windows noch UltraDefrag defragmentieren meine Dateien vollständig, wie Contig unter Windows und Filefrag unter Linux bestätigen.
Ich kann die Dateien natürlich herauskopieren und wieder hinzufügen, aber das verwirrt mich wirklich ...
Auf dem Laufwerk ist ausreichend freier zusammenhängender Speicherplatz vorhanden. Ich habe das überprüft.
Antwort1
Easy2Bootenthält ein Skript im Partitionsstamm, das dies erzwingt. Das ist sinnvoll, da dies tatsächlich eine Randanforderung ist.
Ich bin immer noch verblüfft, dass kein anderes Tool dazu in der Lage war.
Antwort2
Defragmentierungsprogramme erstellen eine Kopie der Datei in einem Block zusammenhängenden freien Speicherplatzes auf demselben Laufwerk und löschen dann die Originaldatei. Einige versuchen zunächst, einen konsolidierten Bereich zusammenhängenden freien Speicherplatzes zu erstellen, indem sie die anderen Dateien verschieben (unabhängig davon, ob die Dateien bereits nicht fragmentiert waren oder nicht), sodass alle Lücken zwischen den Dateien entfernt werden.
Auf einem NTFS-Volume könnten wir beispielsweise ein frisch formatiertes 8-GB-Laufwerk mit 6 GB an Dateien haben:
FILE1_2GB FILE2_2GB FILE3_2GB (2GB KOSTENLOS)
jetzt löschen wir datei2 und kopieren sie in eine 1GB datei4 und wir erhalten
FILE1_2GB (2GB KOSTENLOS) FILE3_2GBDATEI4_1GB(1 GB KOSTENLOS)
Jetzt löschen wir Datei3 und kopieren eine 1GB große Datei5 hinein und erhalten
FILE1_2GB (2GB KOSTENLOS)DATEI5_1GB(1 GB KOSTENLOS) FILE4_1GB (1 GB KOSTENLOS)
jetzt fügen wir eine 3 GB große Datei6 hinzu, die fragmentiert wird …
DATEI1_2GBFILE6A_3GBDATEI5_1GBDATEI6B_3GBFILE4_1GB (1GB KOSTENLOS)
Jetzt ist Datei6 fragmentiert, aber es gibt nur 1 GB freien Speicherplatz, daher können wir FILE6 oder eine Datei, die größer als 1 GB ist, nicht defragmentieren. Wenn wir FILE1 löschen, erhalten wir
(2 GB KOSTENLOS)FILE6A_3GB FILE5_1GB FILE6B_3GB FILE4_1GB (1GB KOSTENLOS)
aber wir haben immer noch nicht genugzusammenhängendfreier Speicherplatz, um FILE6 zu kopieren und eine neue zusammenhängende Version zu erstellen.
Sie sehen also, dass ein Dateisystem je nach Verlauf fragmentierte Dateien und fragmentierte Bereiche mit freiem Speicherplatz enthalten kann. Ein Defragmentierer kann keine neue zusammenhängende Datei erstellen, wenn auf dem Datenträger nicht genügend freier Speicherplatz vorhanden ist.
Eine Möglichkeit, dies zu umgehen, besteht darin, die fragmentierte Datei vorübergehend auf ein anderes Laufwerk zu verschieben, allen freien Speicherplatz auf dem Ziellaufwerk zu konsolidieren und die Datei dann zurückzukopieren.
Das Windows-Programm WinContig erfordert, dass bereits ein ausreichend großer Block zusammenhängenden freien Speicherplatzes vorhanden ist. Das Windows-GUI-Programm Defraggler versucht zunächst, den freien Speicherplatz zu konsolidieren und kopiert dann die Datei in den neuen freien Speicherplatzbereich. Defraggler verfügt auch über eine Option zum Konsolidieren aller freien Speicherplatzblöcke auf einem Laufwerk.
Eine weitere Komplikation tritt beim Kopieren von Dateien auf ein Laufwerk auf – einige Programme öffnen beim Kopieren von Dateien mehrere Streams (z. B. xcopy im Standardmodus oder beim direkten Download aus dem Internet über einen Browser oder bei mehreren Kopiervorgängen auf demselben Datenträger). Dies führt fast immer zu einer fragmentierten Datei, selbst wenn auf dem Ziellaufwerk ein einziger großer Block zusammenhängenden freien Speicherplatzes vorhanden war.
Mit Defraggler können Sie sich die Dateizuordnung auf einem Datenträger ansehen und untersuchen, wie die Dateien auf dem Laufwerk verteilt sind.
Beachten Sie, dass NTFS das MFT (Master File Table Directory) normalerweise auch bei etwa 3 GB auf einem Windows-formatierten NTFS-Volume platziert. Wenn Sie also ein 8 GB großes NTFS-Volume haben, können Sie keine zusammenhängende 6 GB große Datei darauf platzieren, egal was Sie versuchen, da sich der MFT-Bereich immer in der Mitte des Laufwerks befindet!