Hallo, Am Sun, 18 Dec 2005, Steffen Dettmer schrieb:
* David Haller wrote on Sun, Dec 18, 2005 at 21:36 +0100: [...]
ssh root@192.168.0.2 "dd if=/dev/hda1 bs=8225280 | gzip -c;" \ | split -b 2000000000 - /irgendwo/rechnername-hda1.img.gz
Ja, fein!
Man beachte das Quoting! Noch Fragen?
Ja, hier Frage! :-) Wieso gerade blocksize 8225280? 7,84 MB, ja? Hat das einen Vorteil gegenüber "bs=8M" oder sowas in der Art? Sieht so sorgfältig gewählt aus, die Zahl 8225280...
Ganz "einfach" *hurhur* (hda ist schlafengelegt, deswegen hdc): $ cat /proc/ide/hdc/geometry physical 19457/255/63 logical 19457/255/63 $ echo '512 * 63 * 255' | bc 8225280 D.h. bs == [Sektorgroesse in Bytes] * [Sektoren pro Kopf] * [Koepfe pro Zylinder ] == Groesse eines Zylinders Je nach Anzahl der Zylinder der (logischen!) Plattengeometrie kann man noch einen ganzen Teiler fuer die Zylinderzahl suchen, und damit die wie oben errechnete Zahl noch multiplizieren. Grund der Aktion: dd liest so ganze Bloecke, und auch der letzte Block ist vollstaendig. Da ich eigentlich schon immer (also seit '96) eine */255/63 Geometrie verwende und mir die knapp 8M als Blockgroesse bei dd reichen... Obiges gilt uebrigens nicht fuer logische Partitionen, die sind um 1 Kopf "verkuerzt", denn im ersten Sektor des ersten Kopfes steht die Erweiterte Partitionstabelle mit dem Eintrag fuer diese Partition und die erweiterte Partition die auf die restlichen logischen LWs verweist. Erklaerung siehe tech.* aus der LILO Doku. Also ist bei 'dd if=/dev/hdXY' mit Y >= 5 eine andere Blockgroesse anzugeben, idealerweise '512 * [Sektoren pro Kopf]' also praktisch immer bs=32256. Genaugenommen hab ich's bei hda1 also auch falsch gemacht, denn auch diese Partition ist um einen Kopf "verkuerzt", da im ersten Sektor des ersten Kopfes eben der MBR steht. Fuer hda2-hda4 gilt es aber. Aeh, also praktisch doch nicht so geeignet ;( -dnh -- In /etc steht, was Du denkst. In /proc steht, was das OS denkt. [Thomas Blum in doc]