Compact Flash mittels dd kopieren

Software besorgen und anwenden
Post Reply
Message
Author
stevi

Compact Flash mittels dd kopieren

#1 Post by stevi »

Hallo

Problemstellung:
Ich muss mehrere compact flashs bitgenau kopieren!
das klappt ja mittels dd wunderbar.

Frage:
Ist es möglich dass dd gleichzeitig auf mehrere Flashs schreibt?
Oder wie könnte man so eine "kopierstation" sonst realisieren?

Danke!

Jochen

Re: Compact Flash mittels dd kopieren

#2 Post by Jochen »

dd hat immer exakt eine Quelle und exakt ein Ziel. Wenn Du aber mehrere CFs im diversen Lesern gleichzeitig eingelegt hast, dann starte die Kopiervorgänge doch einfach parallel:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
dd if=<i>quelle</i> of=<i>ziel1</i> &
dd if=<i>quelle</i> of=<i>ziel2</i> &
dd if=<i>quelle</i> of=<i>ziel3</i> &
wait
</font><hr></pre></blockquote>
Mit dem letzten wait beendet sich das Skriptchen erst, wenn alle Kopiervorgänge zuende sind.

Jochen

ratte

Re: Compact Flash mittels dd kopieren

#3 Post by ratte »

Hi,

frage ich mich, ob das mittels pipe nicht besser zu realisieren ist:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
dd if=<i>quelle</i> | <i>whatever</i>
</font><hr></pre></blockquote>
wobei mir aber <i>whatever</i>(script oder Befehl) zur Zeit nicht recht einfallen will.

So ein Konstrukt funktioniert z.B. mit ssh, um lokal dd if zu machen und entfernt dd of. Wie man allerdings den Strom auf verschiedene Ziele lenkt, da fehlt mir die Erfahrung. Wuerde vielleicht etwas wie " cat > <i>Ziel 1</i> & cat > <i>Ziel2</i> & cat > <i>Ziel3</i>" funktionieren? - Das haette den Vorteil, dass die Quelle nur einmal gelesen werden muss.

ratte

Jochen

Re: Compact Flash mittels dd kopieren

#4 Post by Jochen »

@ratte:

Eine Y-Pipe gibt es so nicht. Pipes sind immer 1:1-Verbindungen. Die einzige Variante, die mir einfiele, wäre eine Kombi aus tee und Named Pipes. Im Ansatz sähe das so aus:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">mkfifo np1 np2 np3
dd if=<i>quelle</i> | tee np1 | tee np2 | tee np3 &
dd if=np1 of=</i>ziel1</i> &
dd if=np2 of=</i>ziel2</i> &
dd if=np3 of=</i>ziel3</i> &
wait
</font><hr></pre></blockquote>Das Aufräumen der FIFOs sei dem Leser als Übung überlassen. Allerdings bezweifel ich, dass das in irgendeiner Weise Performance-Vorteile gegenüber der Mehrfach-Lesen-Version hat...

Hatte Wolfgang nicht mal wegen einem reichlich verwegenem Y-Pipe-Konstrukt hier was gepostet? So mit Missbrauch von stderr und allem Drum & Dran? <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Jochen

ratte

Re: Compact Flash mittels dd kopieren

#5 Post by ratte »

Hi Jochen,

eine klare Aussage bezueglich Y-Pipes fehlte mir noch in der Sammlung, danke.

An tee hatte ich beim Schreiben auch gedacht, war mir aber nicht sicher, ob binary streams davon vollstaendig erfasst werden...

Ansonsten hast du natuerlich recht, die performance hat dadurch vermutlich keinen wesentlichen Vorteil, jedoch ist meine Ueberlegung, soweit realisierbar, optimaler und geraeteschonender.

ratte

stevi

Re: Compact Flash mittels dd kopieren

#6 Post by stevi »

Danke für euere Antworten!
Hat super Geklappt!

Mfg stevi

Jochen

Re: Compact Flash mittels dd kopieren

#7 Post by Jochen »

@stevi: Welche Lösung hast Du denn jetzt eingesetzt? Poste das doch spasseshalber mal!

@ratte: Geräteschonender? Nach meinem Stand der Dinge ist Lesen bei CFs unkritisch, aber die Schreibzyklen pro Zelle sind auf ein paar Tausende (10.000e?) beschränkt. Weshalb man ja beispielsweise JFFS für CFs einsetzen sollte, da dieses die Schreibvorgänge gleichmässig über das Medium verteilt und nicht ständig auf irgendwelchen Hotspots wie die inode-Liste eines ext2/3 herumkaspert...

Jochen

stevi

Re: Compact Flash mittels dd kopieren

#8 Post by stevi »

@Jochen

Momentan testen wir eine lösung auf der von dir geposteten basis
dd if=quelle of=ziel1 &
dd if=quelle of=ziel2 &
...
wait


Mfg stevi

Post Reply