MFT in KB-Schritten vergrößern ohne zu formatieren !

  • Ersteller Ersteller emeraldmine
  • Erstellt am Erstellt am
E

emeraldmine

Gast
Hallo, bin hier über etwas halbwegs "Nützliches" gestolpert, vllt kennt es der eine oder anderen Admin schon,
ich konnte das jetzt unter Windows XP SP3 erfolgreich testen und da funktioniert es auch, aber unter Windows 7
schreibt die Konsole bei "defrag c: -v" die MFT ist zu 100% belegt.

Es ist anscheinend nichts nütze unter Windows 7 die MFT zu vergrößern , oder bringt das nur jedem Admin was, die MFT auszulesen ?

Den privaten Nutzen halte ich für fragwürdig, allerdings wird da und dort von einem Geschwindigkeitszuwachs geschrieben,
mit was kann man denn rechnen ???

http://filesharingtalk.com/threads/283176-Script-to-increase-MFT-allocation-size

Hier der Forumseintrag mit Befehlsliste, kann das jemand brauchen ?? oder kann man das "Script" in die Mülltonne werfen ?

Bin mir nicht sicher was man davon halten, bzw. nutzen sollte ?

Grüße
 
Das Einzige was die Batch macht, ist, je nach Eingabewert, ein paar tausend Dateien anzulegen und diese anschließend wieder zu löschen...

Indirekt dürfte sich vermutlich der MFT dadurch vergrößern, es werden ja viele Dateien angelegt und falls der MFT nicht groß genug ist die neuen Metadaten aufzunehmen, wird er halt vergrößert...

Den Sinn wage ich aber zu bezweifeln, auch wenn ich kein Dateisystemexperte bin - schließlich würde der selbe Effekt doch auch erzielt wenn regulär weitere Dateien angelegt werden.

Edit: Der "normale" Weg dafür zu sorgen dass für den MFT mehr Speicher reserviert wird, wäre wohl der Registry-Key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\NtfsMftZoneReservation" (siehe http://support.microsoft.com/kb/961095 )
 
Zuletzt bearbeitet:
Der Befehl greift bei mir aber nur beim erneuten Formatieren einer Festplatte , im laufenden System unter Windows ergeben sich direkt keine Änderungen, es sei denn ich hab noch irgendeien BATCH-Befehl vergessen oder gar nicht gewusst wie das genau geht.
 
Hm, stimmt... der Registry-Key muss schon beim formatieren der Festplatte gesetzt sein.
Im Skript legt der Befehl echo. > %n% durch die Umleitung der Ausgabe mit > immer eine Datei mit dem Namen der Variable an. Wenn Du die letzte Zeile im Skript entfernst, werden die Dateien nicht wieder gelöscht. Der einzige Effekt dürfte sein, dass der MFT gegebenenfalls vergrößert wird - aber wozu soll das gut sein? Wer vor hat viele millionen Dateien anzulegen sollte den Registry-Key vorab setzen, damit ist man auf der sicheren Seite.
 
Treibwerk schrieb:
Der einzige Effekt dürfte sein, dass der MFT gegebenenfalls vergrößert wird - aber wozu soll das gut sein?

Die selbe Frage stelle ich mir auch :freaky:, unter XP keine Frage da hab ich jetzt statt 99% belegt 54% , aber bei Windows 7 hatte er die gesamte MFT einfach voll geschrieben.:freak:
 
Die NtfsMftZoneReservation der MFT stellt nur einen geschützten Bereich dar, in dem die MFT immer unfragmentiert vorliegt, sie kann auch weiter ausgedehnt werden wenn dieser Platz nicht mehr ausreicht. Dieser Bereich kann aber fragmentieren. Daher kann der Batch eigentlich nur für eines gut sein: Den Bereich, der fragmentieren kann, gezielt aufzublasen und so in einem Stück vorzuhalten. Ist die MFT noch nicht so gross, dass sie über die ReservationZone hinausragt, dann wird diese Zone erst einmal vollgepflastert und anschliessend (je nach Angabe beim Start des Batches) in den unreservierten Bereich vergrössert. So kann man die MFT dann relativ unfragmentiert halten. Macht irgendwo auch Sinn, denn kleine Dateien (Links z.B.) können auch direkt in der MFT gespeichert sein.
 
emeraldmine schrieb:
Die selbe Frage stelle ich mir auch :freaky:, unter XP keine Frage da hab ich jetzt statt 99% belegt 54% , aber bei Windows 7 hatte er die gesamte MFT einfach voll geschrieben.:freak:

Falls Du die Anzeige MFT usage = 100% bei Verwendung von defrag c: -a -v meinst, dürfte das eher dieser Bug sein. Wirklich "voll" sollte der MFT nie werden solange noch Platz auf der Platte ist.

Man könnte in der Tat mit dem erzwungenden Vergrößern des MFTs dem fragmentieren desselbigen entgegenwirken.
Bei SSDs dürfte ein fragmentierter MFT allerdings keine Auswirkungen haben... Und auch sonst bin ich skeptisch ob das einen spürbaren Effekt hätte.

Edit: Achso, nochmal zu der MFT-Verwendungsanzeige - der MFT wird bei Bedarf vergrößert, daher schwankt auch die Anzeige unter XP ... der MFT ist nun größer, die Dateien vom Skript aber wieder gelöscht und somit ist prozentual wieder mehr Platz.
 
Zuletzt bearbeitet:
Defragmentieren? Zuletzt manuell bei Windows 98 gemacht - seitdem kümmert sich entweder Windows selbst drum oder ich lass es bleiben. Hab bis dato keine Performanceunterschiede bemerkt, ob die Platte nun sehr fragmentiert ist oder nicht. Momentan ist meine D-Platte zu 30 % fragmentiert (sehr viele kleine und große Dateien) und ich merke null Unterschied beim Zugriff von Verzeichnissen oder arbeiten oder Spielen oder ... Laut ist die Platte auch nicht durch die erhöhten Zugriffe dank Entkopplung.
 
ob das MFT nun 12.5% oder 50% des Speicherplatz reserviert hat, ändert nichts an den Zugriffszeiten. Heute laufen nahezu 90% aller I/O Operationen einer HDD über den Plattencache.

Ganz anders sah das noch zu DOS/Windows 9x Zeiten aus, die HDDs liefen damals noch im PIO-Mode und hatten <2MiB Cache. Unter FAT fragmentierten IDE-HDDs viel schneller als unter NTFS. Die wenigsten hatten damals HDD-Controller mit Cache, die billigere Methode war ein RAM-Drive.

Aus meiner Sicht ist es kaum mehr notwendig bei SATA-HDDs/AHCI mit NTFS an der Grösse des MFT nachträglich rumzuschrauben oder zu defragmentieren.
 
@frogger9

Vielen Dank für deine Einblicke, aha völlig veraltet die Geschwindkeits -"Vorteile". Also taugt die MFT nur als "Datenspeicher" für was auch immer ;)
 
Zuletzt bearbeitet von einem Moderator: (vertippt nochmal,sorry)
@emeraldine
Der Datenspeicher "für was auch immer" ist die Tabelle, anhand derer das System auf der Festplatte die Dateien und Ordner auffindet. Hier stehen die Angaben in welchen Sektoren der Festplatte die Dateien und Ordner zu suchen sind. Also nicht ganz so unnütz wie Du denkst.

@frogger9
Bei den aktuellen Grössen gibt es auch keinen Grund die MFT aufzublasen. Da jeder Eintrag maximal 1 KB gross ist, kann man sich leicht ausrechnen wieviele Einträge die MFT bei der Standardgrösse von 12,5% aufnehmen kann. Bei meinem NB sind das auf der Windows Partition 8388608 mögliche Einträge, von denen derzeit 140283 tatsächlich belegt sind. Auf der Datenpartition sieht das nochmal deutlich besser aus. Es sollte, ausser vielleicht bei File-oder Webservern, also immer genug Luft sein.
 
würdest du mal separieren, was das MFT, der reservierte Bereich und welche Daten dort geschrieben werden?
 
Die MFT ist die Master File Table von NTFS, in der die ganzen Einträge enthalten sind mit deren Hilfe das System die Position der Dateien und Ordner auf der Festplatte festhält um auf sie zugreifen zu können. Für die MFT sind standardmässig 12.5% der Festplatte reserviert (festgelegt im Wert NtfsMftZoneReservation mit den Daten "1" (oder 0) in der Registry), ein Bereich in dem ausschliesslich die MFT enthalten sein kann. Dadurch kann die MFT in diesem Bereich nicht fragmentieren und ist vor irrtümlichen Schreibversuchen geschützt.

In der MFT sind nicht nur die Dateisystemeinträge der Dateien und Ordner enthalten, es können auch ganze Dateien gespeichert sein - wenn sie nicht grösser als 1KB sind. Ein Teil der Verknüpfungen kann so ganz in der MFT abgelegt sein, weil die zwischen 1-3KB gross sind. Ausserdem sind die Desktop.ini`s meist in der MFT abgelegt, weil die ebenfalls nur ~1Kb gross sind.

Müssen in der MFT mehr Einträge angelegt werden, als in der reservierten Zone untergebracht werden können (in meinem obigen Beispiel wären das auf einer 64 GB Partition mehr als 8388608 Einträge), dann wird die MFT über den reservierten Bereich hinaus vergrössert. Dieser erweiterte Bereich ist aber nicht mehr vor Fragmentierung geschützt, weil er ja in den schon belegten und meist auch fragmentierten Datenbereich hineinragt. Um diese Fragmentierung der MFT nun im Zaum zu halten wird der oben verlinkte Batch benutzt. Der bläst die MFT auf einen Schlag um einen als Parameter (KB Angabe) übergebenen Wert auf und verhindert so eine nach und nach einsetzende Fragmentierung dieses MFT Bereichs wenn diese nach und nach erweitert werden muss. Denn dann passiert das nämlich, weil dies dann um andere Dateifragmente herum geschieht. Durch das Aufblasen wird die erweiterte MFT von vorn herein in einem Bereich angelegt, in dem genug Platz für die Anlage in einem Stück ist.
 
areiland schrieb:
wenn sie nicht grösser als 1KB sind
Was rein von der Größe der "Zuordnungseinheiten" abhängt. Wählt man sie größer, passen auch 32 KB (abzüglich Overhead; war das das Maximum?) große Daten rein - kleiner, passen eben nur ein paar Byte hinein.

Auch hier gut erklärt:
Nero Atreides schrieb:
Die Größe der Zuordnungseinheiten beschreibt die kleinstmögliche Dateneinheit auf der Platte, wie damals bei FAT32.

Wenn du eine 10 Byte große Textdatei anlegst und deine Zuordnungseinheiten sind 4 KB (4096 Bytes) groß, dann ist die Datei natürlich nur 10 Byte groß, belegt aber 4 KB - die Größe der kleinsten Zuordnungseinheit.

Bedeutet für die Praxis: Wenn du viele kleine Dateien (z.B. Word-Dokumente, Excel etc.pp.) auf der Platte hast, dann sind kleine Zuordnungseinheiten besser, weil der Überhang (der verschwendete Platz in obigem Beispiel) geringer wird. Dafür dauert es z.B. minimal länger, diese Platte zu durchsuchen. Wenn es wenige große Dateien sind (z.B. Filme o.ä.) dann sind große Zuordnungseinheiten besser.

So long,

Nero.
 
Yuuri schrieb:
Was rein von der Größe der "Zuordnungseinheiten" abhängt. Wählt man sie größer, passen auch 32 KB (abzüglich Overhead; war das das Maximum?) große Daten rein - kleiner, passen eben nur ein paar Byte hinein.

Was in diesem Fall leider nicht korrekt ist, denn die MFT ist eine Datei und deswegen ist sie bei der Aufnahme von Daten nicht auf die Grösse der Zuordnungseinheiten angewiesen, hier gibt es maximal eine nicht ganz genutzte Zurodnungseinheit. Ein Eintrag - 1 KB, so lautet die Regel. Die Zuordnungseinheiten spielen nur bei der Ablage der Daten selbst auf der Platte eine Rolle, wo natürlich die Grösse für "Verschnitt" sorgen kann, wenn man grosse Zuordnungseinheiten hat - aber nur kleine Dateien speichert.
 

Ähnliche Themen

Zurück
Oben