tar archiv in reihenfolge

Post Reply
Message
Author
User avatar
killerhippy
Posts: 529
Joined: 19. May 2000 19:36
Contact:

tar archiv in reihenfolge

#1 Post by killerhippy »

Hi alle tar-Archiver,

wie geht es, ein tar-Archiv von einer DOS-Partition anzulegen, dass die Files in der Reihenfolge abgelegt werden, wie sie gespeichert sind?

Grund der Frage ist folgende Situation:
Ich erstelle eine neue windoze-installation mit allem pipapo und lasse ein defrag am ende darueberlaufen. Das defrag packt anhand der programmaufruf-tabelle die files entsprechend auf der festplatte ein.
Ein anschliessendes tar.gz von linux aus, mit rueckspielen, mit daran anschliessenden windoze-start, scandisk (es werden immer fehler gefunden, nach diesem Vorgang, weiss einer warum?) und defrag, belegt defrag wieder stundenlang...
Es gibt keine dumme Fragen!

Killerhippy

Sebastian Ude

Re: tar archiv in reihenfolge

#2 Post by Sebastian Ude »

Soweit ich weis geht das nicht bzw. macht zumindest keinen Sinn.

Letztendlich bleibt es ja dem Betriebssystem überlassen *wo* es eine Datei hinpackt; die Applikation öffnet nur über die entsprechenden Systemaufrufe einen Stream / Dateideskriptor, schreibt in ihn, und schliesst ihn wieder.

Letztendlich hätte tar oder ein anderes Archiver-Programm also keinen Einfluss darauf, ob die Files, die vielleicht in einer effizienten Reihenfolge im Archiv gepackt sind auch exakt in dieser Anordnung wieder auf dem Dateisystem landen.


PS:

Das DOS / Windows-Defrag kannst du vergessen.

Ich will jetzt keine Schleichwerbung machen, aber es gibt da ein Produkt von N***ON, dass deutlich schneller ist (der Unterschied ist wirklich extrem !) und zudem mehr Optimierungsoptionen bietet.

User avatar
killerhippy
Posts: 529
Joined: 19. May 2000 19:36
Contact:

Re: tar archiv in reihenfolge

#3 Post by killerhippy »

Hi Sebi,

danke fuer die Antwort!

Entgegen deiner meinung , glaube ich trotzdem, dass linux in der lage sein muss, die files anhande der FAT auslesen zu koennen, nur, wie geht das???
Es gibt keine dumme Fragen!

Killerhippy

Sebastian Ude

Re: tar archiv in reihenfolge

#4 Post by Sebastian Ude »

Das was du da von tar verlangst, müsste auf einer ziemlich "low-level" Dateisystemcode-Ebene ablaufen - also in Routinen, auf die tar keinen Einfluss hat.

Soweit ich weiss bleibt es auch tar selbst überlassen, wie es die Daten intern im Archiv organisiert (zumindest bei GNU-tar werden AFAIK Verzeichnisse immer zusammenhängend gehalten) und ich bleibe bei meiner Meinung, dass ein Programm allein über die Möglichkeiten der libc (und auf etwas anderes setzt tar ja nicht auf) nicht beeinflussen kann, wo ein OS eine von der Applikation geöffnete Datei ablegt.

Selbst das "lowest-level"-Dateisystem-Interface in der Unix-libc (sprich die mit Dateideskriptoren arbeitenden Routinen um open()) erlaubt nicht, das Speichern von Dateien in dieser Form zu beeinflussen.

Von daher würde man sich wirklich in der Ebene von Kernelcode oder Raw-Zugriffen auf die Partitionen befinden, um das zu realisieren.


Ich glaube für das, was du machen willst, wären Roh-Kopien der Partition mit dd (und vielleicht anschliessend noch mit bzip2 oder gzip komprimiert) am passensten.

User avatar
killerhippy
Posts: 529
Joined: 19. May 2000 19:36
Contact:

Re: tar archiv in reihenfolge

#5 Post by killerhippy »

ok, tar-Einschraenkungen akzeptiert....

wie ist es aber mit

ls - <schalter unbekannt> | tar <wie's geht weiss ich auch nicht>

kann ls denn die Files so auflisten, wie sie in der FAT stehen? Und wie schaffe ich dass dann, die laufende Fileliste in ein tar-archiv zu pipen (gzippen geht ja auch noch danach...)???
Es gibt keine dumme Fragen!

Killerhippy

Sebastian Ude

Re: tar archiv in reihenfolge

#6 Post by Sebastian Ude »

Sascha ...

Was ... bitte sag mir <b>*was*</b> spricht denn gegen eine raw-Kopie mit dd, die unter Umständen nachher komprimiert wird.

Das ist für dein Problem die einzig sinnvolle Lösung.

Jochen

Re: tar archiv in reihenfolge

#7 Post by Jochen »

Disclaimer: Ich bin kein sonderlicher Kenner des FAT-Dateisystems.

Aber Du kämpfst direkt mit einigen Problemen hier... Das einzige, wozu die FAT unter Linux gut ist, ist nur, die Namen der Dateien und deren Lage auf der Platte zu beschreiben. Wie dann das Betriebssystem auf die Daten zugreift (bzw. der FAT-Treiber im Linux-Kernel das macht), ist dessen Sache - Hauptsache, er hält sich an die Regeln, dass ein gültiges FAT-Dateisystem dabei herauskommt.

Programmiertechnisch ausgedrückt: Gleiches Interface, unterschiedliche Implemetierungen.

Die Forderungen des Interface werden erfüllt, und damit ist der Treiber aus dem Schneider. Alles andere kann er machen, wie er will. Und wenn er Dir die Daten nicht in der Reihenfolge liefert, in der Du sie gerne hättest - Pech gehabt. EIn Defrag-Tool greift schliesslich auch unterhalb der Ebene eines Dateisystems zu - vom Low-Level-Zugriff her ist es mehr in der Kategorie eines fsck einzuordnen.

Daher gebe ich Dir leider schlechte Karten.

Ansonsten kannst Du ls und tar natürlich gerne aneinanderflanschen:

ls | tar -c -f /mein/archiv.tar -T -

Viel Spass noch beim Knobeln!

Jochen

Post Reply