* David Haller wrote on Sun, Dec 18, 2005 at 23:55 +0100:
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
Ahh, interessant. (255 * 63, und sowas rechnet man auf Computern, schon lustig :))
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...
Sollte man nicht Blöcke kleiner als Schreibcache nehmen, damit Lesen und Schreiben "ideal" paralelisiert werden kann? CPU Leistung ist doch meist genug da, oder? Hab immer so 1MB Blockgrösse genommen, mmm... Bringt es Vorteile, wenn die Blöcke genau zur "physical" Struktur passen (die ja nicht die wirklich physikalische Plattenstruktur ist, sondern dass, was der Controller dem BIOS vorlügt :))? Oder ist es im Zweifelsfall ein kleines bisschen schneller und Du weisst diese Zahlen eh auswendig und nimmst sie daher?
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.
Na gut, aber dann bekommt man es doch eh nicht hin, genau "synchron" mit dd zu lesen, weil man doch dann entweder ein offset von diesem ersten Kopf mit rumschleppt oder - wenn man einen weniger liest - bei allen folgenden immer einen zu wenig hat und sich daher alles verschiebt? Oder? Ist aber schon interessant, was man alles so über "dd" im weiteren Sinne wissen kann :-) oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.