ubuntuusers.de

dd und Image im Netzwerk

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

Colahunter

Anmeldungsdatum:
2. Juni 2015

Beiträge: 29

Ich hatte folgenden Wikiartikel dd geleses. Dabei viel mir auf >>>

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Ich bin kein fortgeschrittener Benutzer, deshalb frage ich euch. Ich möchte zwei PC

Rechner A:

Motherboard ASRock 970 Extreme 4

Ubuntu 14.04.02, Desktopumgebung gnome

Windows 7 Prof Spk 1

Rechner B:

Motherboard ASRock FM2A88MPro3+

Ubuntu 14.04.02 Desktopumgebung gnome

Ubuntuserver 14.04.2 ohne Desktopumgebung im Netzwerk per 5 Port Switch und mit RJ45 Kabeln verbinden. Durch das Lesen des Wikiartikel dd blieben ungewissheiten. Meine Frage:

Was muss ich machen um mit dd ein Image im Netzwerk von Rechner B auf Rechner A zu machen?

Taomon Team-Icon

Supporter
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8459

Wohnort: Digiworld

Bitte für die Verbindung Deiner Rechner ein neues Thema in https://forum.ubuntuusers.de/forum/internetzugang eröffnen.

Pro Thema eine Anfrage. Forum/Kurzanleitung (Abschnitt „Eine-Frage-ein-Thema“)

Danke Taomon

Colahunter

(Themenstarter)

Anmeldungsdatum:
2. Juni 2015

Beiträge: 29

Wieso? Ich wollte das Backup Offline machen!

Taomon Team-Icon

Supporter
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8459

Wohnort: Digiworld

Colahunter

Was muss ich machen um mit dd ein Image im Netzwerk von Rechner B auf Rechner A zu machen?

Kannst Du dann bitte Dein Vorhaben näher beschreiben?

Gruß Taomon

V_for_Vortex Team-Icon

Avatar von V_for_Vortex

Anmeldungsdatum:
1. Februar 2007

Beiträge: 12091

Wohnort: Berlin

Colahunter schrieb:

Wieso? Ich wollte das Backup Offline machen!

Ich vermute, dass Du mit Offline Dein LAN meinst, richtig?

Colahunter

(Themenstarter)

Anmeldungsdatum:
2. Juni 2015

Beiträge: 29

V for Vortex Unter Offline verstehe ich keine Verbindung ins Internet. Es soll aber Netzwerkverkehr möglich sein.

Bevor wir anfangen mit dem Scripting, muss ich sagen . Das ich ein Backup von Rechner B gemacht habe.

Colahunter

(Themenstarter)

Anmeldungsdatum:
2. Juni 2015

Beiträge: 29

Diese wäre nicht richtig.

dd if=/dev/sda | ssh 192.168.11.11 dd of=/dev/sda

weil bei mir Quelle und Ziel vertauscht sind.

Und so gehts auch nicht (obwohl gewünscht)

dd if=ssh 192.168.11.11 dd of=/dev/sda

Weil die Syntax nicht passt.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55164

Wohnort: Berlin

Taomon schrieb:

Kannst Du dann bitte Dein Vorhaben näher beschreiben?

Hat er schon, das hier ist das Crossposting dazu.

https://forum.ubuntuusers.de/topic/sicherung-von-entferntem-pc-auf-lokalen-pc/

Colahunter

(Themenstarter)

Anmeldungsdatum:
2. Juni 2015

Beiträge: 29

Gar nichts Crossposting. Zu jedem Thema gehört ein eigenständiger Thread. https://forum.ubuntuusers.de/topic/sicherung-von-entferntem-pc-auf-lokalen-pc/

Den Artikel rsync

Und im hiesigen Thread

Ich hatte folgenden Wikiartikel dd geleses.

V_for_Vortex Team-Icon

Avatar von V_for_Vortex

Anmeldungsdatum:
1. Februar 2007

Beiträge: 12091

Wohnort: Berlin

Colahunter schrieb:

Diese wäre nicht richtig.

dd if=/dev/sda | ssh 192.168.11.11 dd of=/dev/sda

Woher hast Du diesen Befehl?

Und so gehts auch nicht (obwohl gewünscht)

dd if=ssh 192.168.11.11 dd of=/dev/sda

Weil die Syntax nicht passt.

Du hast die Syntax und Funktionsweise von dd und ssh vermutlich noch nicht verstanden.

dd if=/dev/sda | ssh 192.168.11.11 dd of=/dev/sda

…heißt, dass dd das lokale Gerät /dev/sda liest (if=) und den Datenstrom durch eine sog. Pipe (|) an ssh übergibt. Ssh verbindet sich mit 192.168.11.11 und führt dort wiederum dd aus, das den Datenstrom in das dortige Gerät /dev/sda schreibt (of=).

Umgekehrt müsste es m.E. so heißen: (Bevor Du das ausprobierst, mögen bitte die Cracks hier nochmal drüberschauen, da ich wenig praktische Erfahrung damit habe.)

ssh 192.168.11.11 dd if=/dev/sda | dd of=/dev/sda

Aber Vorsicht! ❗ Beide Befehle schreiben direkt auf das jeweilige Gerät /dev/sda und überschreiben alles, was sich darauf befindet. Das ist nur dann sinnvoll, wenn Du das Gerät klonen willst. Bei einem Backup müsste man dd hingegen in eine Datei schreiben lassen, wie es ebenfalls im Artikel dd beschrieben ist.

Nebenbei müsstest Du die Befehle eh mit Rootrechten ausführen, weil Du nur dann direkt auf /dev/sda schreiben kannst – wenn Du das denn willst und keine Imagedatei.

Colahunter

(Themenstarter)

Anmeldungsdatum:
2. Juni 2015

Beiträge: 29

An V for Vortex dein Script habe ich nicht ausprobiert, aber ich habe den Eindruck das da mindestens ein Fehler drin ist. Also von dir >>>

ssh 192.168.11.11 dd if=/dev/sda | dd of=/dev/sda

müsste es richtig lauten

ssh 192.168.11.11 | dd if=/dev/sda | dd of=/dev/sda 

?

Oder so >>>

sudo ssh andy@192.168.0.100 |  dd if=/dev/sda "cat > /home/andy/Backup/image_sda1.img.gz" 

V_for_Vortex Team-Icon

Avatar von V_for_Vortex

Anmeldungsdatum:
1. Februar 2007

Beiträge: 12091

Wohnort: Berlin

Colahunter schrieb:

müsste es richtig lauten

ssh 192.168.11.11 | dd if=/dev/sda | dd of=/dev/sda 

?

Oder so >>>

sudo ssh andy@192.168.0.100 |  dd if=/dev/sda "cat > /home/andy/Backup/image_sda1.img.gz" 

Nein, in Beiden Deiner Beispiele „pipest“ Du einfach nur die Ausgabe des ssh-Verbindungsaufbaus (ssh 192.168.11.11) an das lokale dd (dd if=/dev/sda) und dessen Ausgabe erneut an das lokale dd (dd of=/dev/sda). Im Ersten Beispiel würdest Du nach einem ins leere laufenden ssh-Verbindungsaufbau die lokale Festplatte sda auf sich selbst klonen (dd if=/dev/sda | dd of=/dev/sda).

Hinter ssh IP_ADRESSE muss ohne Pipe der dd-Befehl stehen, den ssh auf dem fernen Rechner ausführen soll. Dann kommt die Pipe und dann der lokale dd-Befehl. Hinter der Pipe hört der ssh-Befehl auf und jeder dahinter stehende Befehl wird lokal ausgeführt (und durch die Pipe mit der Ausgabe des Befehls davor gefüttert).

Aber anhand des Beispieles unter ssh: Dateitransfer: scp habe ich einen anderen Fehler gefunden. Der ferne dd-Befehl mit seinen Argumenten muss in einfachen oder doppelten Anführungszeichen stehen:

ssh 192.168.11.11 'dd if=/dev/sda' | dd of=/dev/sda
oder
ssh 192.168.11.11 "dd if=/dev/sda" | dd of=/dev/sda

Du kannst das ja mal gefahrlos ausprobieren, indem Du nicht auf /dev/sda sondern in eine Image-Datei schreibst:

ssh 192.168.11.11 "sudo dd if=/dev/sda" | dd of=~/testimage

Das sollte /dev/sda des fernen PCs in die lokale Datei testimage schreiben. Du musst nicht den vermutlich recht lange dauernden Vorgang abwarten. Sobald die Datei testimage erscheint und stetig anwächst, brichst Du den Befehl mit Strg + C ab.

Beachte, dass Du wie gesagt auf dem fernen System Rootrechte brauchst, um /dev/sda direkt auslesen zu dürfen. Das müsste m.E. das sudo vor dem fernen dd erledigen. Eine andere Möglichkeit wäre die Aktivierung des standardmäßig deaktivierten root-Accounts auf dem fernen PC, aber davon wird aus Sicherheitsgründen in der Regel abgeraten. Dann würde der Befehl lauten:

ssh root@192.168.11.11 "dd if=/dev/sda" | dd of=~/testimage

Achtung!

Vor jedwedem Versuch solltest Du prinzipiell ein vollständiges Backup beider PCs machen. Durch den geringsten Fehler kann dd eine Menge Schaden anrichten!

V_for_Vortex Team-Icon

Avatar von V_for_Vortex

Anmeldungsdatum:
1. Februar 2007

Beiträge: 12091

Wohnort: Berlin

Nachtrag: Du kannst das Befehls-Grundgerüst testen, indem Du eine Textdatei vom fernen PC in eine neue lokale Datei schreiben lässt:

ssh 192.168.11.11 "cat ferne_datei" | cat > lokale_datei

Das habe ich gerade testweise mit einer Datei von meinem NAS gemacht.

Der Befehl Shell/cat tut nichts anderes, als eine Datei nach stdout auszugeben (in der Regel das Terminal, von dem cat aufgerufen wurde). Mit der spitzen Klammer wird die Ausgabe in eine Datei umgelengt.

Colahunter

(Themenstarter)

Anmeldungsdatum:
2. Juni 2015

Beiträge: 29

Ich hatte auf dem ubuntuserver

sudo blkid

gemacht >>>

/dev/sda1: LABEL="server" UUID="b69e6516-044d-457f-8a06-83e7d4c41f78" TYPE="ext4" 
/dev/sda5: UUID="999ddcaa-c5e2-4505-9d00-7150dcd6a431" TYPE="swap" 
/dev/sda6: UUID="b9710fb7-66ec-4bbe-a994-cb41b605ef05" TYPE="ext4" 
/dev/sda7: UUID="cdf75aad-3d01-4a0a-a447-a404cda811ed" TYPE="ext4" 
/dev/sda8: UUID="a59f27d1-59d7-434f-882b-82158ff419d5" TYPE="ext4"

Wie muss ich das jetzt anpassen ? >>>

Das folgende ist die von mir ausgewählte Partition

/dev/sda8: UUID="a59f27d1-59d7-434f-882b-82158ff419d5" TYPE="ext4"

Dieses müsste angepasst werden >>>

ssh 192.168.11.11 "sudo dd if=/dev/sda" | dd of=~/testimage

Währe das so richtig? >>>

ssh 192.168.0.1 "sudo dd if=/dev/sda" | dd of=~'/media/andy/a59f27d1-59d7-434f-882b-82158ff419d5/image von ASRock 970 Extreme 4.img'`date +"%d-%m-%Y"`

V_for_Vortex Team-Icon

Avatar von V_for_Vortex

Anmeldungsdatum:
1. Februar 2007

Beiträge: 12091

Wohnort: Berlin

Colahunter schrieb:

Ich hatte auf dem ubuntuserver

sudo blkid

gemacht

Der ubuntuserver liegt auf Rechner B, richtig?

Das folgende ist die von mir ausgewählte Partition

/dev/sda8: UUID="a59f27d1-59d7-434f-882b-82158ff419d5" TYPE="ext4"

Was genau meinst du mit „ausgewählt“?

Auf welchem Rechner liegt diese Partition?

Dieses müsste angepasst werden >>>

ssh 192.168.11.11 "sudo dd if=/dev/sda" | dd of=~/testimage

Währe das so richtig?

Um was genau zu tun? Sprich, welche Partition welches Rechners soll wohin gesichert werden?

ssh 192.168.0.1 "sudo dd if=/dev/sda" | dd of=~'/media/andy/a59f27d1-59d7-434f-882b-82158ff419d5/image von ASRock 970 Extreme 4.img'`date +"%d-%m-%Y"`

Von welchem System auf welchem Rechner wird dieser Befehl ausgeführt?

Aus welcher Anleitung o.ä. hast Du den Zusatz `date +"%d-%m-%Y"` ?

Antworten |