Hallo, ich habe einmal eine Frage wegen dd. Ich versuche gerade einen PC bzw. die Festplatte des Systems mit dd zu clonen. Ich erstelle mit dd ein Image meines Muster-PC`s und möchte dieses Image dann auf den 2. PC aufspielen. Beide PC`s sind absolut identisch, beide haben eine 30 GB-Platte. dd bricht aber nach ca. 2GB ab (file too large). Jetzt neheme ich halt einfach mal dieses Image und spiele es mit dd auf den 2. PC auf. Die Partitionstabelle stimmt und die 1. Partition auch (eine Windows-Partition). Mein SuSE-7.2 mit Reiserfs kann ich allerdings nicht mounten. Da bekomme ich immer die Fehlermeldung, too many filesystems mounted oder was wegen falschem superblock. Kann es sein, dass man mit dd keine Platten größer 2 GB spiegeln kann oder macht da des Reiserfs Probleme??? Gibt es überhaupt eine Möglichkeit solch große Platten zu spiegeln??? Vielen Dank für die Hilfe! Jörg Schumann
Hi Schumann, Schumann Jörg wrote on Sun, Jul 15 2001:
Hallo, ich habe einmal eine Frage wegen dd. Ich versuche gerade einen PC bzw. die Festplatte des Systems mit dd zu clonen. Ich erstelle mit dd ein Image meines Muster-PC`s und möchte dieses Image dann auf den 2. PC aufspielen. Beide PC`s sind absolut identisch, beide haben eine 30 GB-Platte. dd bricht aber nach ca. 2GB ab (file too large). Jetzt neheme ich halt einfach mal dieses Image und spiele es mit dd auf den 2. PC auf. Die Partitionstabelle stimmt und die 1. Partition auch (eine Windows-Partition). Mein SuSE-7.2 mit Reiserfs kann ich allerdings nicht mounten. Da bekomme ich immer die Fehlermeldung, too many filesystems mounted oder was wegen falschem superblock. Kann es sein, dass man mit dd keine Platten größer 2 GB spiegeln kann oder macht da des Reiserfs Probleme??? Gibt es überhaupt eine Möglichkeit solch große Platten zu spiegeln??? Vielen Dank für die Hilfe!
AFAIK gibt es eine Begrenzung der max. Dateigröße bei 2 GB. In einem Fall wie deinem würde ich die Festplatte des Ziel-PC temporär in den Quell-PC einbauen (elektrisch anschließen genügt) und mit einem Befehl wie "dd if=/dev/hda of=/dev/hdc" clonen. Gruss Herbert -- Beim Schreiben dieser Mail stand mir ein freundlicher Pinguin zur Seite. Outside of a dog, a book is man's best friend. Inside of a dog, it is too dark to read. (Groucho Marx)
Schumann Jörg schrieb am Sonntag den 15. Juli 2001:
Beide PC`s sind absolut identisch, beide haben eine 30 GB-Platte. dd bricht aber nach ca. 2GB ab (file too large). Jetzt neheme ich halt einfach mal dieses Image und spiele es mit dd auf den 2. PC auf.
Hm, Du möchtest also ein nicht vollständiges, kaputtes Image auf den 2. PC aufspielen?
Kann es sein, dass man mit dd keine Platten größer 2 GB spiegeln kann oder macht da des Reiserfs Probleme??? Gibt es überhaupt eine Möglichkeit solch große Platten zu spiegeln???
Wenn beide Platten im gleichen Rechner sind, sollte das kein Problem sein. Wenn man allerdings erst das Image auf einen anderen Rechner transportieren muß, bietet sich dd in Verbindung mit split an. dd if=/dev/hda | buffer -S 1M | split -b 1024m - image_hda_ buffer ist nur dazu da, daß man sieht, was passiert, kann auch weggelassen werden. Damit werden dann mehrere image_hda_xxx erstellt, die 1GB groß sind. Auf dem anderen Rechner kannst Du dann die einzelnen Teile wieder zusammensetzen mit: cat image_hda_* | buffer -S 1M | dd of=/dev/hda Gruß Jens -- .. may the Tux be with you! #130250
On Son, 15 Jul 2001 at 12:55 (+0200), Jens Tautenhahn wrote: [Platten mit dd spiegeln]
Wenn beide Platten im gleichen Rechner sind, sollte das kein Problem sein. Wenn man allerdings erst das Image auf einen anderen Rechner transportieren muß, bietet sich dd in Verbindung mit split an.
dd if=/dev/hda | buffer -S 1M | split -b 1024m - image_hda_
buffer ist nur dazu da, daß man sieht, was passiert, kann auch weggelassen werden. Damit werden dann mehrere image_hda_xxx erstellt, die 1GB groß sind. Auf dem anderen Rechner kannst Du dann die einzelnen Teile wieder zusammensetzen mit:
cat image_hda_* | buffer -S 1M | dd of=/dev/hda
Da fehlt IMHO mindestens noch ein seek=xxx beim dd, sonst werden alle Dateien an den Anfang von hda geschrieben. xxx sollte dann für jede Datei ein Vielfaches von 1GB darstellen (bs resp. Blocksize beachten). Näheres dazu im Manual. Jan
Da fehlt IMHO mindestens noch ein seek=xxx beim dd, sonst werden
Näheres dazu im Manual.
Jan
Also des mit dem seek=xxx hab ich jetzt ned so ganz verstanden. Wofür brauche ich des? in den man-pages steht, nur irgendwas, dass es die Blöcke am Anfang unterdrückt. Ich dachte aber des wäre egal, da er ja in dem Sinne ein Image der ganzen Platte, vom Anfang bis zum Ende macht und des wird dann ja so wieder auf den anderen Client zurück gespielt!!? Ich brauch ja auch den Anfang der Platte, wegen Bootsektor und Partitionstabelle.... Jörg
On Son, 15 Jul 2001 at 20:28 (+0200), Schumann Jörg wrote: [lässt Du bitte die Voredner leben? Danke]
Da fehlt IMHO mindestens noch ein seek=xxx beim dd, sonst werden
Näheres dazu im Manual.
Jan
Also des mit dem seek=xxx hab ich jetzt ned so ganz verstanden. Wofür brauche ich des? in den man-pages steht, nur irgendwas, dass es die Blöcke am Anfang unterdrückt. Ich dachte aber des wäre egal, da er ja in dem Sinne ein Image der ganzen Platte, vom Anfang bis zum Ende macht und des wird dann ja so wieder auf den anderen Client zurück gespielt!!? Ich brauch ja auch den Anfang der Platte, wegen Bootsektor und Partitionstabelle....
Ja, aber nur einmal. Der Vorschlag von Jens ging ja dahin, mehrere Dateien mit 1 GB Größe anzulegen, um die 2 GB-Grenze für Dateigrößen auszuhebeln. Und dann müssen die natürlich schön hintereinander auch wieder auf die neue Platte. Jan
aha, jetzt komme ich schon eher mit. Des heisst, wenn ich ein dd if=/dev/hda | split -b 1024m - image_hda_ und danach dann auf dem anderen Client ein cat image_hda_* | dd of=/dev/hda dann fängt er also immer wieder von "vorne" auf der Platte an, wenn er zu einem neuen Image übergeht... und wie soll der Befehl dann lauten?? ich meine ich baue des seek=xxx dann ein, aber woher bekomme ich die exakten Werte für xxx???
On Son, 15 Jul 2001 at 20:28 (+0200), Schumann Jörg wrote: [lässt Du bitte die Voredner leben? Danke]
Da fehlt IMHO mindestens noch ein seek=xxx beim dd, sonst werden
Näheres dazu im Manual.
Jan
Also des mit dem seek=xxx hab ich jetzt ned so ganz verstanden. Wofür brauche ich des? in den man-pages steht, nur irgendwas, dass es die Blöcke am Anfang unterdrückt. Ich dachte aber des wäre egal, da er ja in dem Sinne ein Image der ganzen Platte, vom Anfang bis zum Ende macht und des wird dann ja so wieder auf den anderen Client zurück gespielt!!? Ich brauch ja auch den Anfang der Platte, wegen Bootsektor und Partitionstabelle....
Ja, aber nur einmal. Der Vorschlag von Jens ging ja dahin, mehrere Dateien mit 1 GB Größe anzulegen, um die 2 GB-Grenze für Dateigrößen auszuhebeln. Und dann müssen die natürlich schön hintereinander auch wieder auf die neue Platte.
Jan
On Son, 15 Jul 2001 at 22:41 (+0200), Schumann Jörg wrote: [*AAAAARRRGGHHH* TOFU gekillt!]
aha, jetzt komme ich schon eher mit. Des heisst, wenn ich ein dd if=/dev/hda | split -b 1024m - image_hda_ und danach dann auf dem anderen Client ein cat image_hda_* | dd of=/dev/hda dann fängt er also immer wieder von "vorne" auf der Platte an, wenn er zu einem neuen Image übergeht... und wie soll der Befehl dann lauten?? ich meine ich baue des seek=xxx dann ein, aber woher bekomme ich die exakten Werte für xxx???
Aus man dd ;-) Die Dateien sind 1 GB (siehe split -b 1024m) groß. Die seek-Option des dd erwartet hier eine Anzahl von Blöcken mit der Größe von bs (Blocksize Bytes). Du solltest also den Parameter bs 1024 angeben ( = 1024 Byte) und seek auf ein Vielfaches (je nachdem, welche Datei Du einliest) von 1024 setzen (1024 * 1024 Byte = 1 GB). Jan
On Son, 15 Jul 2001 at 22:41 (+0200), Schumann Jörg wrote: [*AAAAARRRGGHHH* TOFU gekillt!] aha, jetzt komme ich schon eher mit. Des heisst, wenn ich ein dd if=/dev/hda | split -b 1024m - image_hda_ und danach dann auf dem anderen Client ein cat image_hda_* | dd of=/dev/hda dann fängt er also immer wieder von "vorne" auf der Platte an, wenn er zu einem neuen Image übergeht... und wie soll der Befehl dann lauten?? ich meine ich baue des seek=xxx dann ein, aber woher bekomme ich die exakten Werte für xxx???
Aus man dd ;-)
Die Dateien sind 1 GB (siehe split -b 1024m) groß. Die seek-Option des dd erwartet hier eine Anzahl von Blöcken mit der Größe von bs (Blocksize Bytes). Du solltest also den Parameter bs 1024 angeben ( = 1024 Byte) und seek auf ein Vielfaches (je nachdem, welche Datei Du einliest) von 1024 setzen (1024 * 1024 Byte = 1 GB).
Jan
Tja, ich hab des jetzt mal ausprobiert, aber irgendwie mag des trotzdem ned so ganz??!! hab halt meine ganzen Files a 1 GB und fang beim 1. halt mir einem seek=1024 an und gehe dann halt immer um 1024-Schritte weiter. Ich weiss ned, aber ich glaube so wird des nie was, denn des dauert ja auch noch Ewigkeiten, bis des dann überspielt is. Was mich an der Sache halt wundert is, dass von der 30 GB Platte zwar nur insgesamt 5GB belegt sind (auf verschiedene Partitionen verteilt), dd aber insgesamt 28 GB durch die Gegendschaufelt... Noch mal wegen dd, wäre es dann ned einfacher ein selbst gebautes Rettungssystem mit einem 2.4er Kernel, z.B. 2.4.6 zu verwenden?? Ab dem 2.4.0 Kernel gibt es doch die 2GB-Grenze nicht mehr oder?? Jörg
On 16-Jul-2001 Schumann Jörg wrote:
Ewigkeiten, bis des dann überspielt is. Was mich an der Sache halt wundert is, dass von der 30 GB Platte zwar nur insgesamt 5GB belegt sind (auf verschiedene Partitionen verteilt), dd aber insgesamt 28 GB durch die Gegendschaufelt...
Weil dd nicht einzelne Dateien kopiert, sondern ein genaues Abbild der
HD anlegt.
Gruss,
Heinz.
--
E-Mail: Heinz W. Pahlke
On 16-Jul-2001 Schumann Jörg wrote:
Ewigkeiten, bis des dann überspielt is. Was mich an der Sache halt wundert is, dass von der 30 GB Platte zwar nur insgesamt 5GB belegt sind (auf verschiedene Partitionen verteilt), dd aber insgesamt 28 GB durch die Gegendschaufelt...
Weil dd nicht einzelne Dateien kopiert, sondern ein genaues Abbild der HD anlegt.
Gruss,
Heinz.
Hm, des weiss ich auch, des is ja des Sinn von dd. Was mich halt wundert is, dass ich 5GB partitioniert habe. Auf den restlichen 25 GB sollte ja eigentlich nix drauf sein oder? weiss ned unter Windoof hätte ich jetzt vielleicht gesagt, versuchs mal mit einem defrag, nur bei einer leeren Platte geht des schlecht... Jörg
On 16-Jul-2001 Schumann Jörg wrote:
Hm, des weiss ich auch, des is ja des Sinn von dd. Was mich halt wundert is, dass ich 5GB partitioniert habe. Auf den restlichen 25 GB sollte ja eigentlich nix drauf sein oder? weiss ned unter Windoof hätte ich
Du machst aber, wenn ich die Ursprungsmail noch richtig in Erinnerung
habe, ein dd von hda, also der ganzen Festplatte.
Gruss,
Heinz.
--
E-Mail: Heinz W. Pahlke
On Mon, 16 Jul 2001 at 17:06 (+0200), Schumann Jörg wrote: [Fullquote ohne Vorredner gelöscht]
Tja, ich hab des jetzt mal ausprobiert, aber irgendwie mag des trotzdem ned so ganz??!! hab halt meine ganzen Files a 1 GB und fang beim 1. halt mir einem seek=1024 an und gehe dann halt immer um 1024-Schritte weiter. Ich
Du musst natürlich mit einem seek von 0 anfangen - sonst bleibt ja das 1. GB auf der Platte frei :-(
weiss ned, aber ich glaube so wird des nie was, denn des dauert ja auch noch Ewigkeiten, bis des dann überspielt is. Was mich an der Sache halt wundert is, dass von der 30 GB Platte zwar nur insgesamt 5GB belegt sind (auf verschiedene Partitionen verteilt), dd aber insgesamt 28 GB durch die Gegendschaufelt...
dd arbeitet nicht datei-orientiert. Er kopiert die Platte sozusagen physikalisch.
Noch mal wegen dd, wäre es dann ned einfacher ein selbst gebautes Rettungssystem mit einem 2.4er Kernel, z.B. 2.4.6 zu verwenden?? Ab dem 2.4.0 Kernel gibt es doch die 2GB-Grenze nicht mehr oder??
Ja, und da kamen doch auch Vorschläge zum direkten Kopieren, oder? Meine Anmerkungen bezogen sich ausschließlich auf den Fall, dass man mit der 2-GB-Grenze darauf angewiesen ist, Dateien zum Zwischenspeichern anzulegen. Wenn man nicht mit diesen Restriktionen leben muss, geht der direkte Weg natürlich viel schneller. Jan
Hallo zusammen, Am Sonntag, 15. Juli 2001 19:39 schrieb Jan Trippler:
Da fehlt IMHO mindestens noch ein seek=xxx beim dd, sonst werden alle Dateien an den Anfang von hda geschrieben. xxx sollte dann für jede Datei ein Vielfaches von 1GB darstellen (bs resp. Blocksize beachten).
Näheres dazu im Manual.
ich habe mich gerade mal wieder in die Liste eingeklinkt. Vielleicht stehe ich ja jetzt super auf dem Schlauch, aber in diesem Fall liest dd doch Byte für Byte von STDIN und weiß garnichts davon, daß cat hier mehrere Dateien aneinanderhängt. Also dürften doch die Klimmzüge mit seek etc. garnicht nötig sein. Ich habe das gerade mal mit einer kleinen Testdatei ausprobiert: <---- Schnipp ----> elpelt@gehtabwienix:~ > dd if=/dev/urandom of=test.orig bs=1024 count=1024 1024+0 Records ein 1024+0 Records aus elpelt@gehtabwienix:~ > cat test.orig | split -b 128m - test_ elpelt@gehtabwienix:~ > ls test* test.orig test_ab test_ad test_af test_ah test_aa test_ac test_ae test_ag elpelt@gehtabwienix:~ > cat test_* | dd of=test.neu 2048+0 Records ein 2048+0 Records aus <---- Schnapp ----> Die beiden Dateien test.orig und test.neu sind nach der Operation identisch. Berichtigt mich, wenn ich da jetzt einen Denkfehler habe. Mit freundlichen Grüßen Rudi -- Rudolf Elpelt EMail: elpelt@t-online.de
On Mon, 16 Jul 2001 at 22:47 (+0200), Rudolf Elpelt wrote:
Am Sonntag, 15. Juli 2001 19:39 schrieb Jan Trippler:
Da fehlt IMHO mindestens noch ein seek=xxx beim dd, sonst werden alle Dateien an den Anfang von hda geschrieben. xxx sollte dann für jede Datei ein Vielfaches von 1GB darstellen (bs resp. Blocksize beachten).
Näheres dazu im Manual.
ich habe mich gerade mal wieder in die Liste eingeklinkt. Vielleicht stehe ich ja jetzt super auf dem Schlauch, aber in diesem Fall liest dd doch Byte für Byte von STDIN und weiß garnichts davon, daß cat hier mehrere Dateien aneinanderhängt.
Oh verdammt, ich habe gerade nochmal die Mail von Jens nachgeschaut - tatsächlich: Da bin ich die ganze Zeit von einer falschen Voraussetzung ausgegangen (dass nämlich die Dateien einzeln wieder eingelesen werden). Sorry - Du hast natürlich recht und ich habe unnötige Verwirrung gestiftet. Vergesst also den Quatsch, den ich geschrieben habe, das gilt nur für den Fall, dass dd für jede einzelne Datei neu aufgerufen wird.
Also dürften doch die Klimmzüge mit seek etc. garnicht nötig sein.
Mit Jens' Version nicht - *grr* man sollte doch ab und zu gründlicher hingucken! :-( Jan
Hallo Rudolf, Rudolf Elpelt schrieb:
Hallo zusammen,
Am Sonntag, 15. Juli 2001 19:39 schrieb Jan Trippler:
Da fehlt IMHO mindestens noch ein seek=xxx beim dd, sonst werden alle Dateien an den Anfang von hda geschrieben. xxx sollte dann für jede Datei ein Vielfaches von 1GB darstellen (bs resp. Blocksize beachten).
Näheres dazu im Manual.
ich habe mich gerade mal wieder in die Liste eingeklinkt. Vielleicht stehe ich ja jetzt super auf dem Schlauch, aber in diesem Fall liest dd doch Byte für Byte von STDIN und weiß garnichts davon, daß cat hier mehrere Dateien aneinanderhängt.
Also dürften doch die Klimmzüge mit seek etc. garnicht nötig sein.
Ich habe das gerade mal mit einer kleinen Testdatei ausprobiert:
<---- Schnipp ----> elpelt@gehtabwienix:~ > dd if=/dev/urandom of=test.orig bs=1024 count=1024 1024+0 Records ein 1024+0 Records aus elpelt@gehtabwienix:~ > cat test.orig | split -b 128m - test_ elpelt@gehtabwienix:~ > ls test* test.orig test_ab test_ad test_af test_ah test_aa test_ac test_ae test_ag elpelt@gehtabwienix:~ > cat test_* | dd of=test.neu 2048+0 Records ein 2048+0 Records aus <---- Schnapp ---->
Die beiden Dateien test.orig und test.neu sind nach der Operation identisch. Berichtigt mich, wenn ich da jetzt einen Denkfehler habe.
Da hast Du recht! (Hab den thread nur flüchtig gelesen). Leider hattest Du in Deinem Beispiel verschiedene Blockgrößen bei den beiden Aufrufen von dd benutzt, das könnte einen eiligen Leser verwirren. So long, Norbert
* Schumann Jörg
ich habe einmal eine Frage wegen dd. Ich versuche gerade einen PC bzw. die Festplatte des Systems mit dd zu clonen. Ich erstelle mit dd ein Image meines Muster-PC`s und möchte dieses Image dann auf den 2. PC aufspielen. Beide PC`s sind absolut identisch, beide haben eine 30 GB-Platte.
Sind die Platten auch mit ihren Einstellungen absolut identisch?
dd bricht aber nach ca. 2GB ab (file too large). Jetzt neheme ich halt einfach mal dieses Image und spiele es mit dd auf den 2. PC auf. Die Partitionstabelle stimmt und die 1. Partition auch (eine Windows-Partition). Mein SuSE-7.2 mit Reiserfs kann ich allerdings nicht mounten. Da bekomme ich immer die Fehlermeldung, too many filesystems mounted oder was wegen falschem superblock.
Logisch. Du hast ja nur die ersten 2GB auf der Platte.
Kann es sein, dass man mit dd keine Platten größer 2 GB spiegeln kann oder macht da des Reiserfs Probleme??? Gibt es überhaupt eine Möglichkeit solch große Platten zu spiegeln???
Was gibst du denn ein, um das Image zu erstellen? cu flo --
Erste Treff-Übung gleich welcher Disziplin: Scheunentore. Ich fürchte, unser Volk hat nicht den Raum, um jeden Konflikt mit Scheunentoren auszutragen. [Jakob Krieger und Dieter Bruegmann in dag°]
participants (8)
-
Elpelt@t-online.de
-
Florian Gross
-
Heinz W. Pahlke
-
Herbert Hoepfner
-
Jan.Trippler@t-online.de
-
Jens Tautenhahn
-
Norbert Kordts
-
Schumann Jörg