umpipen, tar, gz

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

umpipen, tar, gz

#1 Post by killerhippy »

Hi @ll,

ich moechte gerne ein `dd if=/dev/hda` in ein tar.gz bekommen.

der weg aus einem tar.gz mit | ist mir ja bekannt:

gzip -d < file.tar.gz | tar -xvf -

und analog wuerde ich gerne etwas in der art:

gzip -9 < dd if=/dev/hda | tar -cf hda.tar.gz

machen wollen, was so natuerlich nicht klappt.

Wer weiss's und gibt mir den entscheidenden tip?
Es gibt keine dumme Fragen!

Killerhippy

Sebastian Ude

Re: umpipen, tar, gz

#2 Post by Sebastian Ude »

Warum willst du zwingend ein tar-Archiv ?
Du willst eine einzige Datei komprimieren, da ist der Umweg über tar nicht notwendig.

Probier mal

dd if=/dev/hda | gzip -9 > hda.img.gz

Falls später nötig, dekomprimierst du das Image dann einfach mit

gzip -d hda.img.gz

bAZiK

Re: umpipen, tar, gz

#3 Post by bAZiK »

> gzip -d < file.tar.gz | tar -xvf -

warum so umständlich?

tar zxvf file.tar.gz

geht genauso. (BTW, tar lxvf für bzip2)

Außerdem bringt es IMHO nicht viel, ein dd image zu komprimieren.

bAZiK

Re: umpipen, tar, gz

#4 Post by bAZiK »

P.S.:
Du kannst auch erst

dd if=/dev/hda of=/tmp/myimage.img

machen und dann mit

gzip -9 /tmp/myimage.img

komprimieren

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

Re: umpipen, tar, gz

#5 Post by killerhippy »

Ok, mal zum Hintergrund:

Linux-Magazin, 07/2001 -Platten buegeln-

darin geht es darum, eines Rechners Festplatte ueber's Netzwerk zu backuppen.

Darin wird ein `dd` im Zusammenhang mit `rsh` verwendet, rsh habe ich jedoch disabled.

Inzwischen habe ich n bisserl gechattet, dabei ist folgendes herausgekommen.

- tar fuer ein file ist quatsch, kompression genuegt.

- wie sinnvoll kompression ist, haengt davon ab, wieviel daten die Platte hat, das bezieht ungeloeschte Bytes mit ein (!). So werden bei einer gebrauchten Platte bei einer Neupartitionierung nur die Partitonstabellen geschrieben, die Inhalte bleiben aber auf der Platte (!!).

- dd ist bequem, die ganze Platte zu sichern, aber sobald die Platte schlechte Sektoren entwickelt, ist das Backup sinnlos geworden, da die Daten unvollstaendig zurueckgeschrieben werden.

Womit dd nun abgewaehlt ist, dadurch wird tar wieder interessant.

Ich denke folgender Weg ist optimal:
-Backup der Partitionsdaten
-Backup der Partitionen auf Fileebene

Restore:
-Restore der Patitionsdaten
-Filesysteme anhand der Partitionsdaten erstellen (inclusive Badblocksoption).
-Restore der tar-archive.
Es gibt keine dumme Fragen!

Killerhippy

Sebastian Ude

Re: umpipen, tar, gz

#6 Post by Sebastian Ude »

Wo wir bei dem Thema sind ...

Müsste man GNU tar nicht irgendwie klar machen können, bei einer named pipe / fifo als Input nicht die fifo selber, sondern dessen Inhalt im Archiv zu speichern ?


Denn nehmen wir mal an, Sascha will unbedingt ein gzip-komprimiertes tar-Archiv erstellen, und das *ohne* das Archiv vorher auf die Platte zu lesen.

Die einzige Möglichkeit die mir dabei in den Sinn kam war der Weg über eine fifo:

mkfifo hda
dd if=/dev/hda of=hda &
tar -vczf hda.tar.bz2 hda

Pustekuchen, geht nicht.
tar packt die fifo selber in das Archiv, anstatt den Inhalt der fifo auszulesen und zu archivieren ...

Sebastian Ude

Re: umpipen, tar, gz

#7 Post by Sebastian Ude »

*ohne* das Archiv vorher [...] = *ohne* das Image vorher.

Bin müde <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">.

Sebastian Ude

Re: umpipen, tar, gz

#8 Post by Sebastian Ude »

Und hda.tar.bz2 sollte natürlich hda.tar.gz heissen.

Wo ist der Kaffe ???

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

Re: umpipen, tar, gz

#9 Post by killerhippy »

ja genau, natuerlich ist das Optimum, das Image *nicht* als echtes File zwischenzuspeichern, sondern nur das gewuenschte Endergebnis.

Wo mir da eine Nebenfrage auf der Zunge liegt:
Wenn ich mit `fdisk -l /dev/hda` die Plattenparameter ausgelesen habe und `dd` anweise, `if` mit `bs` und`count` die ganze Platte auszulesen, worin besteht der Unterschied, wenn ich `dd` diese Info *nicht* gebe? Trifft `dd if=/dev/hda` im Gegensatz zu `dd if=/dev/hda bs=15120 count=776` *nicht* die ganze Platte? Oder gibt es da einen Vorteil, den ich nicht sehe?
Es gibt keine dumme Fragen!

Killerhippy

Sebastian Ude

Re: umpipen, tar, gz

#10 Post by Sebastian Ude »

@ Sascha

Nein, da gibt es soweit ich weis keinen Vorteil.
dd kann nicht über das Ende eines blockorientierten Gerätes "hinweglesen".

Die "bs=" und "count="-Optionen sind halt nur nützlich, wenn man beispielsweise nur eine bestimmte Anzahl von Blöcken auslesen möchte (wie z.B. nur den ersten Block, wenn man den Superblock sichern möchte).

Post Reply