Hallo, Am Tue, 29 Mar 2005, Sven Gehr schrieb:
Am Di 29.03.2005 17:50 schrieb Martin Schröder <martin@oneiros.de>:
On 2005-03-29 17:41:28 +0200, Sven Gehr wrote:
Am Di 29.03.2005 17:18 schrieb Martin Schröder <martin@oneiros.de>: [..] dd if=/dev/md0 of=/dev/hda3 machen. Ist es dabei egal das hda3 größer ist als md0 ? Dann gibt es Du kannst als of auch eine Datei angeben, dann ist das bestimmt kein Problem. :-)
Ok, aber in der ML sprechen sie von einem Dump der Partition (mit dd) und anschließend soll ich das xfs_repair auf dieses Device anwenden. Das würde bei der Lösung "dd in File" ja nicht funktionieren, oder? Also wäre gut zu wissen ob dd sowohl bei if wie auch of ein Device akzeptiert.
Devices sind Dateien. 'dd' liest und schreibt (wie eigentlich alle unix-tools) generell nur in/aus Dateien. Default ist if=/dev/stdin und of=/dev/stdout sowie bs=512 (ein Festplatten-Sektor). Du kannst also z.B. 'dd if=/dev/zero of=/dev/null count=1' verwenden um Nullen ins Bit-Nirvana zu schieben, oder 'dd if=/das/ist/eine/normale/datei' statt 'cat /das/.../datei'. Oder oder oder. dd ist das alles egal ;) Die "Art" der Datei, also ob normal, blockdevice, pipe (stdin/-out) usw. wird mit dd erst dann relevant, wenn seek, skip und conv verwendet werden. Und in deinem Fall wuerde ich das Image von md0 als _DATEI_ auf /dev/hda3 ablegen. Also /dev/hda3 ggfs. noch formatieren, mounten (z.B. nach /mnt/hda3) und dann: dd if=/dev/md0 of=/mnt/hda3/md0.img bs=4k ^^^(hier nix dev ;) Auf das Image kannst du dann anschliessend die diversen Tools (und sei's ein hex-editor) auf das Image loslassen. Und das Image dann mounten, wenn die Reparatur klappt. Du bekommst aber evtl. ein "is not a block device" an den Kopf geworfen, davon braucht man sich aber nicht unbedingt irritieren lassen.
In der Mailingliste habe ich gefunden:
creating a new fs on another disk, using dd dump info from the other disk on the new disk... carefully offsetting, not to overwrite the superblock, and try xfs_repair on it .... but that wont work I guess
Das passt nicht wirklich zu deinem Fall, gemeint ist aber wohl seek= und skip= so zu waehlen, dass der SB des neuen FS nicht ueberschrieben wird, der Rest des FS aber mit den Daten des alten FS. Wie das funktionieren soll ist mir aber schleierhaft, ich kenne XFS zwar nicht, aber bei allen FSen die ich (naeher) kenne geht das nicht (FAT12, 16, 32, NTFS, ext2, ext3, reiserfs). Ich kann mir nicht vorstellen, dass das bei XFS geht. IMO also: BLOSS NICHT!!eins! -dnh --
Ach.Frisches Blut ist hier also nicht gern gesehen? Nur, wenn es von meiner Kettensaege tropft. [Erik Meltzer und Dieter Bruegmann in dag°]