Dateiattribut `sparse` wird entfernt

5

Was ist das sparseDateiattribut auf NTFS-Partitionen und wie kann man es entfernen?

Unter Windows 7, Windows 8 und Windows 8.1.

m0nhawk
quelle
Warum solltest du es entfernen wollen?
MJZ
1
@MJZ: Ich möchte nur wissen, wie ich das erreichen kann.
m0nhawk

Antworten:

10

Nicole Hamilton lieferte die Beschreibung der Dateien mit geringer Dichte .
Lass es uns mit einem Experiment lernen.

Erstellen einer Sparse-Datei

Starten Sie cmd.exeals Administrator eine Eingabeaufforderung ( ).

  1. Große Datei erstellen:

    fsutil file createnew test.nul 1048576
    
  2. Überprüfen Sie die Größe im Explorer:
    • Größe: 1,00 MB (1.048.576 Byte)
    • Größe auf der Festplatte: 1,00 MB (1.048.576 Byte)
  3. Kennzeichnen wir es als spärlich:

    fsutil sparse setflag test.nul
    
  4. Bisher hat sich nichts geändert, die beiden Größen betragen noch 1,00 MB.
  5. Markieren wir den gesamten Bytebereich als dünn:

    fsutil sparse setrange test.nul 0 1048576
    
  6. Jetzt haben sich die Größen dramatisch geändert:
    • Größe: 1,00 MB (1.048.576 Byte)
    • Größe auf der Festplatte: 1,00 KB (1 024 Byte)
  7. Sie können abfragen, ob die Datei dünn ist oder nicht mit fsutil:

    fsutil sparse queryflag test.nul
    This file is set as sparse
    

    Oder

    This file is NOT set as sparse
    

Der Wert für Größe auf Festplatte hängt von der Clustergröße des Dateisystems ab. Die Standardclustergröße unter NTFS beträgt 4 KB. Das zum Testen verwendete Laufwerk wurde mit einem 1-KB-Cluster formatiert.

Ich habe diesen Artikel als Quelle verwendet .


Sparse-Attribut entfernen

Das in diesem Beispiel verwendete Dienstprogramm bietet kein Flag zum Entfernen von Attributen mit geringer Dichte .

Am einfachsten ist es, die Datei zu kopieren . Die Datei verliert dieses spezielle Attribut, wenn die Anwendung, die sie kopiert, das Sparse-Attribut und den Sparse-Bereich nicht speziell beibehält.

Sie können Far Manager verwenden , um das Sparse-Attribut zu löschen. Navigieren Sie zu der Datei und drücken Sie Ctrl+ A, um das Dialogfeld "Attribute" zu öffnen. Klar Sparse Kontrollkästchen. Und klicken Sie auf die Schaltfläche Setzen . Attribute der Datei test.nul im Fra Manager

Alexey Ivanov
quelle
FUNKTIONIERT NICHT ! ... meine Datei ist 30G, ich HABE KEINEN Platz, um sie zu kopieren, und Far-Manager tun nichts, wenn sie versuchen, dieses Flag zu setzen, drücke ich erneut Strg + a und das Attribut ist NOCH DA :(
THESorcerer
@THESorcerer Ich habe nicht versucht, Far Manager zum Festlegen des Sparse-Attributs zu verwenden, nur um es zu löschen. Besteht Ihre Datei nur aus Nullen? Wenn Sie sich die fsutilBefehlszeile genau ansehen , werden Sie feststellen, dass für das Sparse-Attribut setrangeder Bereich der Bytes angegeben werden muss , die durch das Sparse-Attribut "komprimiert" werden. Wenn Sie das Sparse-Attribut festlegen, wird die Dateistruktur nicht automatisch analysiert, um Speicherplatz zu sparen. Sie müssen damit umgehen.
Alexey Ivanov
2

Bei einer Sparse-Datei handelt es sich um eine Datei mit Löchern. Große Abschnitte mit binären Nullen werden nicht auf die Festplatte geschrieben. Hier ist die Erklärung von Microsoft zu Sparse Files (Windows) :

Wenn die Funktion für Sparse-Dateien aktiviert ist, weist das System einer Datei keinen Festplattenspeicher zu, außer in Regionen, in denen es Daten ungleich Null enthält. Wenn ein Schreibvorgang versucht wird, bei dem ein großer Teil der Daten im Puffer Nullen enthält, werden die Nullen nicht in die Datei geschrieben. Stattdessen erstellt das Dateisystem eine interne Liste mit den Positionen der Nullen in der Datei, und diese Liste wird bei allen Lesevorgängen herangezogen. Wenn eine Leseoperation in Bereichen der Datei ausgeführt wird, in denen sich Nullen befanden, gibt das Dateisystem die entsprechende Anzahl von Nullen in dem für die Leseoperation zugewiesenen Puffer zurück. Auf diese Weise ist die Verwaltung der Sparse-Datei für alle Prozesse, die darauf zugreifen, transparent und in diesem speziellen Szenario effizienter als die Komprimierung.

Nicole Hamilton
quelle
2

Dieses spärliche Attributproblem tritt bei heruntergeladenen ISOs für mich ständig auf.

Legen Sie dies in einer Batch-Datei ab und ziehen Sie die Zieldatei (mit Windows Explorer) darauf. Et voilà.

fsutil sparse queryflag %1
pause
fsutil sparse setflag %1 0
fsutil sparse queryflag %1
pause

Dies funktioniert unter Windows 7 und 8.x jedoch nicht (möglicherweise auch unter Vista), da setflagnur <filename>gültige Parameter akzeptiert werden und kein entsprechender clearflagBefehl vorhanden ist. Es funktioniert jedoch in Windows 10.

Zoltán Csányi
quelle