mit DD Festplatten dublizieren und Sectoren auslassen

onyma

Member
Hi !
ich muß mal wieder so ne Greenhorn frage loswerden.
Muß bei einem Bekannten in 2 Rechnern die Platten tauschen, gegen Größere versteht sich.

also alte Platte und neue Platte zusammen an PC angeschlossen. NetBSD von CD gebootet und mit DD if=/dev/rwd0d of=/dev/rwd1d kopiert. Dann nur noch neue Platte ran und
gebootet und dann mit einem Windoof Tool die Pratition auf volle Festplattengröße aufgeblasen.

Ich hab das ganze zu Hause bei mir 2x getestet. Und beide male hat es wurderbar geklappt.


Nun hab ich beim 2. PC das Problem das Beim DD Dublizieren der Rechner bei Sector 16000000 schießmich tot mit einem lesefehler hängen bleibt nach 4 Leseversuchen. Und die Aktion abbricht.

Meine Frage wäre ob es möglich ist mit DD gewisse Sectoren auszulassen beim Dublizieren?
meinetwegen die ersten 15999999 und dann 3 aussetzen und dann weitermachen

geht sowas?

Gruß Matthias
 
Mit dd weiß ich jetzt leider nicht, aber ich kann dir sagen wie ich eine solche Sicherung mache.

Nimm ein Livesystem und sichere die Daten/partitionen in ein einfaches Archiv. Da gibt es ja mehrere Formate. Nimm z.B squashfs. Danach kannst du auf dem Zielsystem über ein Livesystem die Festplatte vorbereiten und auf diese entpacken. Das hat gegenüber dd vorallem den großen Vorteil das man keine probleme bekommt wenn die Zielfestplatte größer/kleiner ist oder die aufteilung der Partitionen unterschiedlich sein soll. Danach mußt du im prinzip nur noch deine fstab anpassen und den bootloader neu installieren.

Evtl. hilfdt dir der Vorschlag etwas. Ich persönlich bevorzuge eben diesen weg.

Grüße
 
ja, das geht.
wenn z.b. block 16000 kaputt ist, dann machst du einfach ein


Code:
% dd if=input of=output count=15999                #erstmal bis zum kaputten lesen
% dd if=/dev/zero of=output seek=16000 count=1  #dann ein paar 0 reinschreiben, um einen wohldefinierten zustand zu bekommen
% dd if=input of=output seek=16001 skip=16001    # dann den rest schreiben

seek laesst dann die ersten 16001 bloecke beim output weg,
und skip die ersten 16001 block vom input.

damit hast du aber ein "loch" in deinem filesystem, ich denke ich muss dir nicht sagen dass du anschliessend ZWINGEND einen fsck fahren musst.
 
Vielen dank für die Schnelle Antwort ich teste das gleich mal aus ob von der alten Platte noch mehr Sectoren inne Wicken sind
 
Genau für solche Zwecke gibt es ddrescue. Keine Ahnung, ob es das auch für NetBSD gibt, aber in den OpenBSD Ports ist das verfügbar. ddrescue ist eine Variante von dd welche Lesefehler von schadhaften Blöcken ignoriert.

Gruß
Reks30
 
Im FreeBSD dd gibt es dd conv=noerror. Ich denke, da das Posix ist sollte auch unter NetBSD gehen.
 
Zurück
Oben