Hallo, ist es denkbar ein Programm zu schreiben, dass z.B. eine Festplatte defragmentieren kann ohne dass es das Dateisystem kennt? Christian
nein, das ist ein widerspruch in sich. ohne das dateisystem zu kennen, ist es nicht einmal möglich zwischen zufälligen und echten daten zu unterscheiden. ausserdem hängt es vom dateisystem und vom physikalischen trägermedium ab, ob eine defragmentierung überhaupt sinnvoll ist.
Aus dem laufenden System heraus kann es möglich sein. Der Defragmentierer muss dann nicht die Filesysteminformation kennen, aber das Betriebssystem natürlich schon. Wenn das Filesystem so gebaut ist, dass es frisch erzeugte und in einem Rutsch geschriebe Files mit möglichst wenig Fragmentierung anlegt, dann kann es ausreichend sein, sämtliche Files einfach umzukopieren. Vorausgesetzt allerdings, es ist genug zusammenhängender Freiraum vorhanden, d.h. bei 98% Füllgrad stehen die Chancen schlecht. Grad so arbeiten beispielsweise Defragmentierer für NTFS. Filesysteminformation wird dabei nur verwendet, um rauszukriegen wo sich das lohnt (und für die hübschen Bildchen).
Moderne Dateisysteme defragmentieren sich selber solang etwa 5..10% frei sind (zB. reiserfs, ext3, jfs, xfs...). Das einzige fs das damit arge Probleme hat, ist Fat... weil m$ das uralte Ding ja unbedingt noch jahrelang einsetzen musste (stammt noch aus CP/M Zeiten). NTFS4 ist auch net gut darin.
I_ H. wrote: > Das einzige fs das damit arge > Probleme hat, ist Fat... weil m$ das uralte Ding ja unbedingt noch > jahrelang einsetzen musste (stammt noch aus CP/M Zeiten). NTFS4 ist auch > net gut darin. ooooch, sei nicht so gemein. da hat doch der user schön was zu tun und wenn er dann seinen defragmentierer durchlaufen lassen hat, dann kann er mit anderen winusern am stammtisch fachsimpeln, wie oft man das machen sollte und das der rechner jetzt plötzlich viel schneller ist und auch nicht so oft hängen bleibt.
Defragmentierung ist nicht identisch mit Vermeidung von Fragmentierung. @I_ H.: Willst du damit sagen, dass all diese Filesysteme stark fragmentierte Files automatisch ohne weiteres Zutun umbauen? Da habe ich ich vielen Fällen so meine Zweifel. Oder soll es nicht vielmehr heissen, dass moderne Filesysteme Fragmentierung vermeiden, indem Files beim Anlegen und Schreiben möglichs zusammenhängend anlegegt werden. Insbesondere Files, die über Tage und Wochen immer und immer wieder mal ein Stückchen grösser werden, neigen auch auf solchen Filesystemen gern zu Fragmentierung. Das betrifft beispielsweise Logfiles, aber leider oft auch Datenbankfiles.
XFS ist ein extra für Datenbanken entwickeltes FS ;) Bei Operationen auf Dateien wird möglichst zusammenhängend gearbeitet und auch zusammenhängende Bereiche frei gelassen, und bei Files die sich häufig ändern gleich etwas mehr Platz reserviert... im Detail sind die Techniken natürlich noch etwas komplizierter. Irgendwo gab's mal ein Tool um den Fragmentierungsgrad von reiserfs oder ext3 zu messen, der bleibt immer nahe 0... solange die Platte nicht wirklich richtig voll ist.
NB: Es gibt auch moderne Filesysteme mit starker Neigung zur Fragmentierung. Nämlich wenn das Hauptaugenmerk beim Design des Filesystems ganz woanders liegt und sich eine spezifische Form der Fragmentierung als zwangsläufige Folge ergibt. WAFL von NetApp ist so eines. Ungeordnetes Schreiben in ein bereits bestehendes File (typisch für Tablespaces von Datenbanken) sorgt bei diesem für erhebliche Fragmentierung.
Gemäss Wikipedia gibt es sogar für XFS von Haus aus ein Defragmentierungstool ;-).
Es defragmentiert sich aber trotzdem selber. Btw. die home-partition auf'm Laptop: Total files: 11498 Fragmented files: 2175 Fragments: 115501 18.9% non contiguous files, 10 average fragments. Also 20%, wobei 10 Teile pro file noch absolut im Rahmen sind (ein ISO Image hatte zB. 100 Fragmente, je ~6MB). Root-Partition läuft gerade. EDIT: und ist fertig: Total files: 273646 Fragmented files: 8060 Fragments: 298800 2.9% non contiguous files, 1 average fragments. Weniger Fragmentierung weil die Dateien kleiner sind.
Ich kann mir durchaus Filesysteme vorstellen, die selbst defragmentieren. Will dir damit also nicht widersprechen. Ich kriege bloss dieses Posting nicht damit in Zusammenhang. Der einfache Ist-Zustand eines Filesystems ist kein Beweis für Defragmentierung, sondern allenfalls für effektive Vermeidung von Fragmentierung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.