Sektorweise ganze Festplatte spiegeln, womit?

Tummelplatz für Computernutzer im allgemeinen und ihrer vielfältigen Probleme

Moderator: (M) Mod.-Team Allgemein

Benutzeravatar
NightStalker
TalkING. Champion
TalkING. Champion
Beiträge: 891
Registriert: Mo, 21. Okt. 02, 20:40
Wohnort: Downloadbereich

Beitrag von NightStalker » Fr, 23. Mär. 12, 00:41

baumchen hat geschrieben:siehe https://wiki.archlinux.de/title/Image-E ... ttenimages
also

Code: Alles auswählen

 dd if=/dev/hdb of=/pfad/wo/das/Image/hin/soll/hdb-Image.img
oder

Code: Alles auswählen

dd if=/dev/hda | gzip --best >hda-Image.gz
bei gzip kannst du aber auch --fast statt --best nutzen. siehe ggf http://persephone.cps.unizar.es/~spd/gzip/gzip_man.html

Gruss
baumchen
Und um weiterem Frust am WE vorzubeugen hier noch ein paar Hinweise, wo du den obigen Befehl anpassen mußt:

1. Festplattennamen
Da du für das beschriebene Szenario zwei Platten brauchst, mußt du die Linuxnamen beider rausfinden. Die erste Platte im System ist normalerweise /dev/sda, die zweite (auch über USB) angeschlossene /dev/sdb etc.
Die Partitionen (der ersten Platte) heißen dann aber /dev/sda1 bis /dev/sda4 für die primären Partitionen und die eine erweiterte Partition (mehr darf es nicht geben), ab /dev/sda5 sind es dann die logischen Laufwerke.

Den korrekten Namen der Platte bestimmen kann man auf mehrere Möglichkeiten, aber die sicherste ist diese:

"dmesg | less" sagt dir nach dem anstecken wie das Layout der erkannten Platten aussieht, daran kannst die erkennen. Die Daten der gerade verbundenen Platten sollten ganz am Ende erscheinen. Hier ein Beispiel von meinen Platten (beide intern, deshalb zeitgleich erkannt)

Code: Alles auswählen

scsi 0:0:0:0: Direct-Access     ATA      SAMSUNG HD154UI  PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 2930277168 512-byte logical blocks: (1.50 TB/1.36 TiB)
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] Write Protect is off
scsi 4:0:0:0: Direct-Access     ATA      SAMSUNG SP2514N  PQ: 0 ANSI: 5
sd 4:0:0:0: [sdb] 488397168 512-byte logical blocks: (250 GB/232 GiB)
sd 4:0:0:0: [sdb] Write Protect is off
sd 4:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 4:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 4:0:0:0: Attached scsi generic sg1 type 0
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdb&#58; sdb1 sdb4 <sdb5>
sd 4&#58;0&#58;0&#58;0&#58; &#91;sdb&#93; Attached SCSI disk
 sda&#58; sda4 <sda5>
Daraus erkennt man das /dev/sda eine 1.5 TB Samsung-Platte ist mit einer einzelnen erweiterten Partition (sda4) und 4 logischen Laufwerken (sda5-8 ) und das /dev/sdb eine 250 GB Samsung-Platte ist mit einer primären Partition (sdb1), einer erweiterten Partition (sdb4) und einem logischen Laufwerk (sdb5). (Erkennbar aus der letzten Zeile, der drittletzten Zeile und den Größen weiter oben)

Die SystemRescueCd bietet unter /mnt etliche vorgefertige Verzeichnisse. Welches Verzeichnis du davon benutzt, ist eigentlich egal. Nachdem du den Namen der möglichen Zielpartition bestimmt hast, hängst du die mit "mount /dev/sdXX /mnt/XXX" probeweise ein und checkst mit "ls /mnt/XXX" anhand des Inhalts, ob du die richtige erwischt hast. Mit "umount /mnt/XXX" hängst sie wieder aus sollte sie falsch gewesen sein. Wenn du sie korrekt identifiziert hast, brauchst du sie nicht nochmal wieder auszuhängen, da die eh für den obigen dd-Befehl benötigt wird.

2. NTFS-Schreibzugriff
Da ich stark vermute, dass du das Backup auf eine NTFS-Platte schreiben willst, mußt du prüfen, dass mount diese auch mit Schreibzugriff einhängt. "mount" ohne Parameter sagt dir was aktuell wo wie eingehängt ist, wenn nach dem Testmounten etwas wie

Code: Alles auswählen

/dev/sdXX on /mnt/XXX type fuseblk &#40;rw,nosuid,nodev,noatime,allow_other,blksize=4096,default_permissions&#41; 
dort steht (auf das "fuseblk" kommt es an) ist das richtig, wenn dort aber "ntfs" steht, dann ist es falsch und du mußt die Schritte oben nochmal machen (also erst umount dann wieder mount) und zwar in dieser Form "mount -t ntfs-3g /dev/sdXX /mnt/XXX"

3. Ich empfehle dir sehr, dir jemanden mit elementaren Linuxkenntnissen zur Hilfe zu holen. Hintergrund ist, dass wiederholtes Mounten und Unmounten nicht ganz ungefährlich ist, wenn einem nicht ganz klar ist, was man da tut und wie das Zusammenspiel ist. Dabei kann man sich auch bisher korrekte Dateisysteme (d.h. deine Zielplatte) zerschießen, bei sachgemäßer Anwendung ist das praktisch ausgeschlossen, aber die exakten Befehle hängen halt doch sehr von deiner tatsächlichen Plattengeometrie ab, deswegen kann ich keinen vollständigen Walkthrough geben. Tut mir leid. Fatal wäre es z.B. bei dd unter of= eine Festplatte (also /dev/sdXX) anzugeben, statt eines korrekt eingehängten Verzeichnisses und Zieldatei (/mnt/XXX/image.img). Dies würde Lowlevel den Inhalt einer kompletten Platte in die Partition einer anderen schreiben und das ist garantiert kaputt dann, aber das Programm erlaubt dir das prinzipiell ohne murren.

Ok, hoffe dies hilft, gute Nacht :)
-- Chrz&#261;szcz brzmi w trzcinie w Szczebrzeszynie.
-- &#22909;&#22909;&#23398;&#20064;&#65292;&#22825;&#22825;&#21521;&#19978;&#65281;

1234567890
TalkING. Fan
TalkING. Fan
Beiträge: 79
Registriert: Di, 22. Jul. 08, 18:28

Beitrag von 1234567890 » Do, 29. Mär. 12, 10:30

Danke für eure Hilfe. Hat alles super geklappt. Der Kopiervorgang für eine 160GB Festplatte hat aber erstaunlich lange gedauert.

Zum Glück habe ich meine Partitionen wieder. Dem Programm "Testdisk" sei dank.

Benutzeravatar
chef
TalkING. Freak
TalkING. Freak
Beiträge: 235
Registriert: Fr, 08. Nov. 02, 16:01
Wohnort: Boogie Down Harburg

Beitrag von chef » Do, 29. Mär. 12, 15:14

Wenn es wirklich (zu) lange gedauert hat, könnte es daran liegen, dass dd per default eine Blocksize von 512 Bytes wählt. Das führt bei 160TB zu sehr viel internem Overhead, da count=160TB/512B einzelne Blöcke kopiert werden müssen.

Wenn ich Festplatten kopiere oder nulle, verwende ich immer mehrere Megabytes als Blocksize (dd-parameter für 10MB z.B.: bs=10M). Zu groß sollte man es auch nicht wählen, da kommen dann andere Limits ins Spiel.

Man kann sich an das Optimum rantasten, indem man den Kopiervorgang für verschiedene Werte von bs=??? startet und nach einigen Sekunden mit Ctrl+C abbricht. Anhand der ausgegebenen Meldungen kann man dann die Schreibgeschwindigkeit berechnen. Bei großen Datenträgern lohnt sich diese kleine Investition durchaus.
Du hast Angst? Gut so!

Benutzeravatar
380kV
TalkING. Freak
TalkING. Freak
Beiträge: 239
Registriert: Mi, 04. Jun. 08, 16:06

Beitrag von 380kV » Do, 29. Mär. 12, 18:04

Beim Spiegeln von Partitionen/Platten mit unklarer Datenintegrität verwende ich auch gerne dd_rescue
http://www.garloff.de/kurt/linux/ddrescue/
You should be studying.

1234567890
TalkING. Fan
TalkING. Fan
Beiträge: 79
Registriert: Di, 22. Jul. 08, 18:28

Beitrag von 1234567890 » Do, 29. Mär. 12, 22:58

Hmm ca. 4 Stunden als ich noch wach war und den Rest hat er dann über Nacht fertiggestellt. Da man ja null Rückmeldung bekommt (daher auch meine Abneigung gegenüber Kommandozeilen und Linux generell), weiß ich nicht, wie lange er nachts noch gerattert hat.

\o.
TalkING. Superposter
TalkING. Superposter
Beiträge: 469
Registriert: Mi, 19. Dez. 07, 21:30

Beitrag von \o. » Fr, 30. Mär. 12, 00:32

1234567890 hat geschrieben:Hmm ca. 4 Stunden als ich noch wach war und den Rest hat er dann über Nacht fertiggestellt. Da man ja null Rückmeldung bekommt (daher auch meine Abneigung gegenüber Kommandozeilen und Linux generell), weiß ich nicht, wie lange er nachts noch gerattert hat.
dd gibt doch immer eine gesamtdurchschnittuebertragunsgeschwindigkeit an ?
10100111001.

Benutzeravatar
NightStalker
TalkING. Champion
TalkING. Champion
Beiträge: 891
Registriert: Mo, 21. Okt. 02, 20:40
Wohnort: Downloadbereich

Beitrag von NightStalker » Fr, 30. Mär. 12, 18:55

Auszug aus der man-page von dd:

"Sending a USR1 signal to a running `dd' process makes it print I/O statistics to standard error and then resume copying."

kill -USR1 [PID] aus 'nem anderen Terminal gibt einem im ersten die Info die man möchte.
-- Chrz&#261;szcz brzmi w trzcinie w Szczebrzeszynie.
-- &#22909;&#22909;&#23398;&#20064;&#65292;&#22825;&#22825;&#21521;&#19978;&#65281;

dolos
TalkING. Newbie
TalkING. Newbie
Beiträge: 11
Registriert: Sa, 03. Mär. 12, 18:58

Beitrag von dolos » Fr, 30. Mär. 12, 22:12

Ich nutze gerne pv, wenn ich dd verwende, Beispiel hier (ganz unten):
http://linuxwiki.de/dd
Dadurch erhält man einen laufenden Fortschrittsbalken.
Und wie chef schon sagte, ein wenig herumprobieren mit dem blocksize kann zeitlich Welten (Stunden) ausmachen, wie ich in leidvoller Erfahrung feststellen durfte.

Antworten