ubuntuusers.de

dd output aufs netzwerk umleiten

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Lebowski1

Anmeldungsdatum:
3. November 2007

Beiträge: 244

Hallo,

ich möchte über

1
dd if=/dev/sda | gzip -9 

ein Festplatte klonen und komprimieren. Wie kann ich das image auf das Netzwerk umleiten, so dass es ein Server in Empfang nimmt?

Ich habe mir das so vorgestellt: Das image wird nicht lokal in einer Datei gespeichert, sondern soll per

1
nc -l -p 9050

auf den Port 9050 umgeleitet werden. Der Server lauscht dann mittels

1
nc -q 1 foo 9050 > wo_es_hin_soll/Abbild.img

und speichert es entsprechend.

Doch wie muss ich dd if=/dev/sda | gzip -9 und nc -l -p 9050 verbinden?

Danke, Martin

P.S.: Die Platte die ich clonen will ist 120 GB groß. Belegt sind aber nur 12 GB. Reicht gzip aus, dass die image Datei nahezu nur 12 GB groß wird?

g123

Avatar von g123

Anmeldungsdatum:
5. November 2007

Beiträge: 490

Kannst du nicht auch einfach mit sshfs oder Samba einen Ordner vom Server mounten und das Backup dann darein speichern?

Lebowski1

(Themenstarter)

Anmeldungsdatum:
3. November 2007

Beiträge: 244

Danke, wär auch was. Ich hab's jetzt so gelöst, scheint zu funktionieren:

dd if=/dev/sda bs=16065b | gzip -9 | nc -l -p 9050

Welche Methode ist eigentlich schneller, auf einen gemounteten Ordner schreiben oder per nc?

Ich hätte aber noch ein paar Fragen:

1. Wie ist eigentlich die Komprimierungsrate von gzip. Die zu klonende Platte ist 120 GB groß, es sind aber nur 12 GB belegt. Schafft gzip das auf ungefähr 12 GB? Gibt es eine besser und/oder schnellere Komprimierungsmethode für diese Sache?

2. Wie kann ich vor dd herausfinden wie viel Platz auf der Platte im Gebrauch ist? Kann man sich während dd den Fortschritt anzeigen lassen?

3. Ich bin in dem Zusammenhang auf folgenden Codeschnipsel gestoßen, hab aber keine Ahnung was er bedeutet

1
[ -e /tmp/var.txt ] && . /tmp/var.txt

Hat jemand eine Ahnung?

Danke, Martin

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Lebowski1 schrieb:

P.S.: Die Platte die ich clonen will ist 120 GB groß. Belegt sind aber nur 12 GB. Reicht gzip aus, dass die image Datei nahezu nur 12 GB groß wird?

Wieso willst Du sie dann mit dd clonen? Ob das Ziel so stark komprimiert werden kann hängt davon ab, wie neu die Platte ist, im Sinne von, wieviele Sektoren noch nie bespielt waren. dd kopiert ja auch Bereiche gelöschter Dateien - sind da alle Bytes 0, und die 12 GB sind komprimierbar, dann läßt sich alles auf unter 12 GB speichern.

man gzip 

verrät Dir, daß gzip -c nach stdout schreibt. Wenn nc von stdin lesen kann, müßte es mit

dd if=/dev/sda | gzip -9 -c | nc ...

gehen.

Als Backupwerkzeug ist dd jedoch auch aus weiteren Gründen selten zu empfehlen. /dev/sda ist die ganze Platte, inkl. Partitionierungsinformationen und MBR. Spielst Du das auf eine größere Platte, so wird diese auf 120 MB Größe reduziert erscheinen. Auch wenn die Daten nur 12 GB betragen wird wird es auf eine kleinere Platte nicht passen. Und unnötig lange wird es auch dauern - es sei denn, es käme auf die gelöschten Informationen irgendwie an.

Lebowski1

(Themenstarter)

Anmeldungsdatum:
3. November 2007

Beiträge: 244

Was wär eine Alternative zu dd?

Ich könnte auch mit cat die ganze Platte auf den Server schreiben und dort komprimieren. Die Frage wäre nur wie?

Danke, Martin

P.S.: Ich benötige das ganze um mehrere baugleiche Rechner über das Netzwerk aufzusetzen Clonzilla SE krieg' ich nicht ans laufen. Ich hab auf meinem Server schon dhcp, pxe-boot u. a. laufen und clonzilla kommt da irgendwie nicht mit klar. einen extra Rechner für einen Clonezilla Server habe ich nicht zu Verfügung.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

ah - zum Rechner klonen ist es schon in Ordnung. Zippen mußt Du es dann ja nur einmal, und die Festplatten sind identisch.

Nur Dateien kann man mit

tar -xjf ... 

packen, aber da bekommst Du nicht grub auf den Bootsektor. Dafür ist dd schon richtig.

Man kann wohl den Bootsektor getrennt übertragen, aber wenn Du dann 3 Operationen hast statt einer (dd, Platte formatieren und tar.bz2-Archiv übertragen) verlierst Du womöglich mehr Zeit.

Lebowski1

(Themenstarter)

Anmeldungsdatum:
3. November 2007

Beiträge: 244

Aber irgendwie dauert dd extrem lange. Es läuft jetzt auf dem Client

1
dd if=/dev/sda bs=16065b | gzip -9 | nc -l -p 9050 &

und das schon 1 Std und er benötigt geschätzt noch 20 min, wenn ich mir die Dateigröße anschaue. Ich wollte das noch auf in einem weiteren Rechnerpool mit 320 GB Platten machen. Da wird mir ja jetzt schon schwindelig. Das Imageverteilen wird wohl ähnlich lange dauern. Wie viel wird wohl

1
gzip -1

bringen. Ist die Block-Größe mit

1
bs=16065b

noch zu klein? Was ist denn maximal möglich?

Etwas anderes als dd kann ich wohl nicht nehmen, da auf dem Rechner eine ntfs und eine ext3 Partition ist.

Danke, Martin

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

bs=16065b

Wie kommst Du denn auf die Zahl?

man dd sagt:

BLOCKS and BYTES may be followed by the following multiplicative suffixes: xM M, c 1, w 2, b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.

Terra, Peta, Exa, Zeta, Yota? Yeti? Möglich scheint viel, aber ist das dann schnell? Wieso?

Eine rechnertypische Größe wie 4M würde ich aber nehmen, wenn ich schon etwas per Hand spezifizieren würde. Das würde ich aber nur machen, wenn ich Grund zur Annahme hätte es besser zu wissen als das Programm.

Bei 120 GB/ 80 min = 1,5 G/min = 25 MB/s - ich bin kein Performance- oder Hardwarespezi, aber für eine 120 GB-Platte scheint mir das ein flottes Tempo - was hättest Du erwartet?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Achso - gzip -9 versucht ja noch das letzte Byte aus den Daten rauszupressen. Das würde ich mal weglassen, und stattdessen die normale Kompression wählen - womöglich ist das schneller.

Lebowski1

(Themenstarter)

Anmeldungsdatum:
3. November 2007

Beiträge: 244

Danke für die Antworten.

Ich muss damit einen Rechner, auf dem Windows und Linux parallel installiert sind, clonen. Ist es möglich mit dd die beiden Partitionen zu klonen und die dann nachher auf die anderen Rechner zu klonen. Muss man die Partitionen dann vorher auf den anderen Rechnern anlegen oder mach das dd ?

wie sieht das das mit MBR und Grub aus, kommen die beim partitionsclonen mit?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Wenn /dev/sda die einzige Platte der Quelle ist, dann kommt alles was dadrauf ist, mit- Partitionen, Format, grub, MBR, Daten, ...

Wenn es nicht die einzige Platte ist auch - nur kann man dann nicht so leicht wissen, wo grub ist - man muß dann erst nachschauen und prüfen.

Lebowski1

(Themenstarter)

Anmeldungsdatum:
3. November 2007

Beiträge: 244

Ok, danke, da muss ich mir etwas anderes einfallen lassen.

Ubuntu kann ich unattendet installieren (image mit remastersys und dann autoinstall oder preseed)

Ich werde wohl die sda1, auf der Windows ist, mittels dd clonen, und die dann auf den anderen rechnern mit pxe und memdisk zurückspielen. dann ubuntu installieren.

Eine andere Frage: Kennt jemand eine Möglichkeit über pxe einen kernel zu booten, der dann ein Script ausführt?

Lebowski1

(Themenstarter)

Anmeldungsdatum:
3. November 2007

Beiträge: 244

Noch ein Frage, die mir evtl. weiterhelfen könnte:

Kann man eine Platte in zwei Platten (nicht Partitionen) aufteilen, so dass dem System vorgegaukelt wird, es hätte zwei Festplatten und ich klone die eine, auf der dann die Windows und Linux Partitionen inkl. bootloader sind?

Danke

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Lebowski1 schrieb:

Kann man eine Platte in zwei Platten (nicht Partitionen) aufteilen, so dass dem System vorgegaukelt wird, es hätte zwei Festplatten und ich klone die eine, auf der dann die Windows und Linux Partitionen inkl. bootloader sind?

Nein. Wieso soll das System (welches?) denn meinen es habe zwei Festplatten?

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

Lebowski1 schrieb:

Eine andere Frage: Kennt jemand eine Möglichkeit über pxe einen kernel zu booten, der dann ein Script ausführt?

sowas hier? http://wiki.grml.org/doku.php?id=terminalserver

und grml kann via kernel boot-option (weitere s. hier)

scripts=path-name              execute script (defaulting to grml.sh) inside DCS dir. Path names
                               allowed. If path-name points to a directory, all scripts found in
                               the directory are executed.

PS: http://wiki.grml.org/doku.php?id=cloning, eventuell hilfts dir ja

Antworten |