Lebowski1
Anmeldungsdatum: 3. November 2007
Beiträge: 244
|
Hallo, ich möchte über
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
auf den Port 9050 umgeleitet werden. Der Server lauscht dann mittels
| 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
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
| [ -e /tmp/var.txt ] && . /tmp/var.txt
|
Hat jemand eine Ahnung? Danke, Martin
|
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
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
| 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
bringen. Ist die Block-Größe mit
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
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
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
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
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
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
|