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!
Compact Flash mittels dd kopieren
Re: Compact Flash mittels dd kopieren
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
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
Re: Compact Flash mittels dd kopieren
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
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
Re: Compact Flash mittels dd kopieren
@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
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
Re: Compact Flash mittels dd kopieren
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
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
Re: Compact Flash mittels dd kopieren
Danke für euere Antworten!
Hat super Geklappt!
Mfg stevi
Hat super Geklappt!
Mfg stevi
Re: Compact Flash mittels dd kopieren
@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
@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
Re: Compact Flash mittels dd kopieren
@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
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