samson71
Goto Top

Übergroße MFT wieder verkleinern?

Ich habe eine 160 GByte HDD, und diese ist mit NTFS-Formatiert und hat eine MFT (Master-File-Table) Größe von 995 MByte und laut Defrag über 1.000.000 Daten-Einträge, das Problem ist das sie nicht mehr kleiner wird.

Hallo zusammen und ein frohes neues Jahr wünsche ich allen.

Bin auf ein sehr merkwürdiges Problem gestoßen, wie bereits im Vorwort ist die MFT meiner besagten Festplatte sehr groß geworden im laufe der Zeit, laut Defrag sollen sich über 1.000.000 Daten-Einträge sich in dieser befinden, das kann aber nicht sein weil auf der Festplatte gerade mal 339.164 Dateien und 25.020 Ordner befinden, das macht zusammen 364.184 Daten-Einträge, also denke der Rest sind alte nicht mehr gültige Einträge von gelöschten Dateien

Das Problem aber ist, das die MFT dabei eine Größe von 995 MByte auf der Festplatte einnimmt, und sich dieser bei besten willen nicht mehr verkleinert, berücksichtigt man eine MFT-Reservierung von Standardmäßigen 12,5% auf einer Partition / Festplatte, wären das bei 160 GByte, wovon in Wirklichkeit nur ca. 149 GByte zu Verfügung stehen, 20 GByte die für die MFT Reserviert werden.

Angeblich, hab das mal gelesen, soll Windows selber bei Platzmangel auch Speicherplatz von der MFT benutzen sofern dieser Frei ist, dazu habe ich per FSUTIL 1 GByte große Dateien auf meiner Festplatte erstellen lassen, und dies wiederholt bis die Festplatte voll war, wirklich bis zum letzten Byte, so das in Eigenschaften des Laufwerks wirklich 0 Byte Freier Speicher stand.

Laut Defrag war und ist die MFT immer noch 995 MByte groß und enthält über 1.000.000 Daten-Einträge.

Ich dachte hier vielleicht an einen Fehler der Festplatten-Daten Strukturen, also hab ich mal CheckDisk drüber laufen gelassen, aber hier wurden keine Fehler gemeldet.

Nun wollte ich aber das die MFT wieder kleiner werden sollte, egal wie, also im Internet nach Lösungen gesucht, leider alle ohne Erfolg, bin auf diverse Programme gestoßen, wie Ultradefrag, es soll die MFT verkleinern, aber leider wird die MFT nur Defragmentiert aber nicht wirklich dabei verkleinert, genauso die anderen Programme, O&O Defrag, MyDefrag, alle Defragmentieren die MFT nur aber erstellen sie nicht neu.

Nun meine Frage, gibt es kein Programm was einfach nur die MFT komplett neu erstellt und alle überflüssigen Einträge ignoriert?

Ich habe natürlich es schon geschafft die MFT kleiner zu bekommen, aber das mit einen echt sehr großen Zeit Aufwand, habe mit hilfe eines Dateien-Backup alle Dateien von meiner besagten Festplatte auf eine andere Kopiert und dann meine Festplatte Formatiert, komplett Formatierung und dann mein Dateien-Backup wieder zurück gespielt.

Resultat, MFT Größe 358 MByte und ca 360.000 Daten-Einträge in der MFT.

Aber es muss doch einen eleganteren Weg geben das zu machen.

Was die Programmierung angeht, bin ich leider noch nicht in die Materie der Festplatten Direktzugriffe eingestiegen, ich weiß nur soviel, das am Anfang der Festplatte steht wo das Betriebssystem die MFT findet, also müsste man doch nur hingehen, die MFT einlesen und dann wieder eine neue MFT schreiben, in dieser werden aber nur die gültigen Einträge aus der noch aktuellen MFT übernommen, wenn das dann geschehen ist, wird der Verweis auf die MFT am Anfang der Festplatte neu gesetzt und die nun alte MFT gelöscht.

Aber das ist wie gesagt nur einfache Theorie.

Content-Key: 158205

Url: https://administrator.de/contentid/158205

Printed on: April 19, 2024 at 09:04 o'clock

Member: Hubert.N
Hubert.N Jan 08, 2011 at 12:26:08 (UTC)
Goto Top
Moin

Hattest du irgendwelche Probleme oder weshalb machst du dir zu diesem Thema so viele Gedanken ?

Angeblich, hab das mal gelesen, soll Windows selber bei Platzmangel auch Speicherplatz von der MFT benutzen sofern dieser Frei
ist, dazu habe ich per FSUTIL 1 GByte große Dateien auf meiner Festplatte erstellen lassen

Windows speichert nicht nur "angeblich bei Platzmangel" Daten in der MFT - das ist sogar vollkommen normal. Gerade kleinere Dateien werden ausschließlich in der MFT gespeichert.
Woraus dann aber wieder resultiert, dass das Kopieren von großen Dateien nicht zu einer Belegung der MFT führt. Bis auf natürlich einen "Inhaltsverzeichniseintrag"

Vielleicht solltest du dich erst einmal ein wenig genauer mit dem Dateisystem NTFS beschäftigen, bevor du dir Gedanken machst, weshalb deine MFT diese oder jene Größe hat.

Gruß

Hubert
Member: Florian.Sauber
Florian.Sauber Jan 08, 2011 at 12:26:21 (UTC)
Goto Top
Hallo Samson!

Aus der Erfahrung rate ich Dir an, dich damit abzufinden, oder ein anderes Dateisysystem zu verwenden ( was unter Win zugegebenermassen kein hilfreicher Rat ist).
Wie Du selbst schreibst, ist die Größe der MasterFileTable noch weit unter dem vom BS vorgesehenen Maximum. Der Overhead der dabei entsteht liegt nunmal im Konzept von NTFS -und dem was Redmond darunter versteht- begründet (Du findest hier im Forum einige Beiträge dazu, die teilweise nicht geizig mit Kritik umgehen).

Die von Dir angesprochenen Lösung, es über Sicherung/Formatierung anzugehen, ist die einzige alternative, die sich im Alltagsgebrauch "bewährt", wobei Du ja selbst schon ansprichst, dass das Aufwand/Nutzen-Verhältnis eigentlich nicht gerechtfertigt erscheint.

Zu dem letzten Vorschlag von Dir bezüglich der Direktzugriffintervention kannst Du dir die Frage ja selbst beantworten, warum (wenn es denn einfach möglich wäre) es keine Tools dafür gibt face-wink

LG Florian
Member: Samson71
Samson71 Jan 08, 2011 at 12:43:36 (UTC)
Goto Top
Also das einzige Programm was ich nun doch mit Hilfe von Google gefunden habe und super Funktioniert, ist Paragon Total Defrag, das ist in der Lage nicht nur die MFT zu Defragmentieren, nein es Komprimiert diese auch wunderbar.

Was ich aber schön finden würde, wäre wenn es ein Tool gibt, was nur diese MFT-Komprimierung von Total Defrag hat.

Eine überladene MFT bremst bei bestimmten Programmen das System aus, so war es auf jeden Fall bei mir, gerade in den Bilder-Ordnern war das Extrem.

Das kleine Dateien in der MFT bis zu einer größe von 1024 Bytes direkt abgelegt werden ist mir bekannt, aber finde es doch totaler Unsinn das in der MFT Einträge enthalten bleiben die das System überhaupt nicht mehr braucht weil sie gelöscht worden sind.
Member: pieh-ejdsch
pieh-ejdsch Jan 08, 2011 at 16:21:02 (UTC)
Goto Top
moin Samson,

eine viel zu kleine MFT neigt ja eher zu Defraggmentieren wenn neue Einträge hinzukommen und die MFT-Größe ständig Erweitert werden muss. Somit hast Du überall auf der HDD verstreute MFT-Framente "rumliegen" das erschwert es dem Dateisystem noch mehr Irgendwelche Daten zu Finden.

die MFT zu Defragmentieren geht auf zwei wegen.
  1. Die MFT wird aus den einzelnen MFT-Fragmenten wieder zusammengesetzt
  2. Die Einträge in der MFT werden hintereinander geschrieben (wozu auch die vielen kleinen Dateien unterhalb der Clustergröße zählen) und danach der Reservierte Leere Platz in der MFT. Dabei werden auch alle als Leer markierte Einträge gelöscht
das geht natürlich nur Offline

wenn Du nun Deine Platte vollknallst bis nichts mehr draufgeht und wieder Platz machst - erreichst Du genau das Gegenteil von dem was Du wolltest.
  1. Die MFT hat keinen Reservierten Speicherplatz mehr
  2. Die MFT verteilt sich bei neuen Einträgen wieder in viele kleine Fragmente auf der HDD.
  3. Das System wird langsamer

bei einem Eintrag in die MFT wird der nächste LEERE Platz (wozu auch die als LEER markierten Einträge Zählen) dafür genutzt
bei einem Austrag in der MFT wird nur eine LEER-Markierung vor diesen Eintrag gesetz
es wird erst Überschrieben wenn Du die MFT Defragmentierst oder ein neuer Eintrag an die Stelle kommt
alles andere dauert doch viel zu lange und belastet bzw verlangsamt das System.

Gruß Phil
Member: Samson71
Samson71 Jan 08, 2011 at 19:18:43 (UTC)
Goto Top
Also die MFT zu Defragmentieren ist kein Problem und geht sogar schnell mit dem Programm MyDefrag, hab mir ein Script erstellt was nur die MFT und übrigen System-Dateien die man nicht zu Gesicht bekommt entsprechend Defragmentiert.

Also habe wie gesagt gute 340.000 Dateien auf der Platte und wo ich durch das Backup und zurück spielen nun wieder eine Ordentliche MFT habe läuft der zugriff viel flüssiger als vorher.

Finde es schade halt das es Programme gibt die alles mögliche Defragmentieren und auch den Freien Speicher von Festplatten löschen, aber das die MFT dabei so vernachlässigt wird, das hab ich bei den ganzen Programm nie verstanden.

Hab mir mal die Infos für NTFS und MFT angeschaut, und meine Vermutung ist ja sogar richtig und liegt im Boot-Sektor einer Festplatte/Partition, wo die MFT zu finden ist, klar wird gewiss nicht einfach sein diese korrekt neu zu erstellen.

Aber mal schauen was ich noch an Informationen im Internet finden kann, wie man auf solche Dateien zugriff bekommt, den bei NTFS ist alles eine Datei, vielleicht gelingt es mir ja.

Also bin weiterhin für alle Informationen Dankbar .

Ein Defragmentieren der MFT löscht nicht mehr gültige Einträge in der MFT überhaupt nicht, nimm einfach mal einen Undeleter der schaut ja als erstes genau in der MFT nach ob dort was drin steht was gelöscht worden ist, und überprüft ob diese Datei vollständig ist und bietet diese dann zum zurückholen ja an.
Member: Florian.Sauber
Florian.Sauber Jan 10, 2011 at 02:40:28 (UTC)
Goto Top
Hallo nochmal

Zitat von @Samson71:
Also die MFT zu Defragmentieren ist kein Problem und geht sogar schnell mit dem Programm MyDefrag...
Dann hast Du sicherlich auch mal im Forum von myDefrag recherchiert, welche Probleme bei verschiedenen Anwendern entstanden sind. Die $mft ist eine Datei wie \"jede andere\" und kann somit natürlich defragmentiert weren. Die Frage ist dabei nur, inwieweit das lohnend ist, oder besser, wie es um das Verhältnis von Leistungsgewinn zu Risiko bestellt ist.
(BTW: MS selbst sieht ein verschieben der MFT-Einträge nicht vor, daher auch die Reservierung der MFT-Zone. Es ist dringend davon abzuraten, derartige Dateien zur BS-Laufzeit unter asuhebelung der Defrag-API zu bearbeiten. Für dritthersteller \"genehmigt\" sind nur sog. Boot-Time-Methods)

Also habe wie gesagt gute 340.000 Dateien auf der Platte und wo ich durch das Backup und zurück spielen nun wieder eine Ordentliche MFT habe läuft der zugriff viel flüssiger als vorher.
Dies wird aber mit an Sicherheit grenzender Wahrscheinlichkeit nicht an der Fragmentierung der $mft und erst recht nicht an deren Größe (wenigsten in den von Dir genannten Größenordnungen) liegen. Nebenbei bemerkt wird die $mft sowieso nicht sequentiell bearbeitet. Die Indexstruktur von NTFS liegt in einem B-Tree Aufbau vor.

Finde es schade halt das es Programme gibt die alles mögliche Defragmentieren und auch den Freien Speicher von Festplatten löschen, aber das die MFT dabei so vernachlässigt wird, das hab ich bei den ganzen Programm nie verstanden.
Allein schon die 64bit referenzadresse aus Datei- und Sequenznummer, die MFT-Attribute, das Mirror- und Log- Konzept, Clusterverweise, BadClusterverzeicnisse etc. ergeben dabei eine Komplexität, die nicht unbedingt schneller bearbeitet werden muss, nur weil sie in einem Bereich auf der Platte liegt. Erschwert wird das ganze, wenn sich Dateikomplexe über mehr als einen MFT-Bereich erstrecken, was je nach verwendeten Attributen durchaus passieren kann. Will sagen, das System dahinter ist nicht mal gerade so entwicklet worden...

Hab mir mal die Infos für NTFS und MFT angeschaut, und meine Vermutung ist ja sogar richtig und liegt im Boot-Sektor einer Festplatte/Partition, wo die MFT zu finden ist, klar wird gewiss nicht einfach sein diese korrekt neu zu erstellen.
Dem ist nicht so. Im BPS der Platte ist nur ein Zeiger vermerkt, der dem NTLoader angibt, wo sich die $mft befindet.

Also bin weiterhin für alle Informationen Dankbar.
Im Internet findet man so alles mögliche. Wenn es Dich ernsthaft interessiert, solltest Du zu einem Buch greifen. Ein fundiertes Standardwerk bietet z.B. Brian Carrier an. http://www.digital-evidence.org/fsfa/

Fazit (wenigstens mein persönliches):
Nach einigen Test konnte ich zwischen 2 beinahe identischen Systemen, bei dem das eine über eine zusammenhängende $mft, das andere über eine in 3 Teile fragmentierte $mft verfügte keinerlei messbaren Unterschiede feststellen.
Auf der anderen Seite kenne ich dutzende Fälle, bei denen sich verschiedenen \"Optimierer\" im nachhinein wünschten, Änderungen an der $mft besser nicht vorgenommen zu haben, da sie leidig festgestellen mussten, dass sich bei einer korrupten mft die Dateien bei weitem nicht so \"einfach\" rekonstruieren liessen, wie das zu good old FAT Zeiten möglich war....

In diesem Sinne LG
Florian