Verwenden Sie dd, um die Partition auf eine andere Partition zu kopieren, während Sie das physische Laufwerk verwenden


17

Ich bin mir nicht sicher, wie ich das im Thema besser erklären kann, daher ist die "Frage" möglicherweise nicht richtig. Aber hier geht. Ich habe drei Festplatten. Laufwerk A ist ein 320-GB-Laufwerk, Laufwerk B ist ein 80-GB-Laufwerk und Laufwerk C ist ein 1-TB-Laufwerk. Ich habe die Daten vom 80-GB-Laufwerk auf das 1-TB-Laufwerk kopiert und werde die Größe der Partition ändern (damit ich die Daten vom 320-GB-Laufwerk als Nächstes kopieren kann).

Meine Frage lautet: Kann ich dd verwenden, um das 320-GB-Laufwerk auf eine andere Partition auf diesem physischen Laufwerk zu kopieren, wenn ich das Betriebssystem auf dem 1-TB-Laufwerk hochfahre? Ich weiß, dass ich keine Live-Partition kopieren sollte (was bedeutet, dass ich die Daten nicht vom 320-GB-Laufwerk kopieren kann, wenn ich dieses Betriebssystem verwende).

Meine Argumentation lautet wie folgt: Ich habe versucht, Acronis TrueImage, Partition Manager und Image 4 DOS / Linux (beide Anwendungen) zu verwenden, und es würde über eine Woche dauern, um die Daten zu kopieren. Das bedeutet, dass ich eine Woche lang nicht in der Lage bin, den Computer zu benutzen, was nicht akzeptabel ist (es sei denn, es ist meine einzige Option). Ich hoffe, dass dies funktioniert, damit ich zumindest den Computer benutzen kann, während ich die Kopie mache.

Wenn ich muss, kann ich entweder von einer Live-CD booten (nicht wirklich eine bevorzugte Option) oder "Laufwerk B" verwenden, aber ich möchte dieses Laufwerk so schnell wie möglich entfernen.


Sicher warum nicht ?
Michael Hampton

Antworten:


17

Ja, was Sie tun möchten, funktioniert einwandfrei, vorausgesetzt, die folgenden beiden Bedingungen sind erfüllt:

  1. Es gibt keine (montiert) Dateisystem auf der Partition , die Sie dd'ing zu .
  2. Die Partition, auf die Sie zugreifen , hat mindestens die gleiche Größe wie die Partition, von der Sie zugreifen (dh 320 GB).

Der Grund dafür ist, dass Partitionen in UNIX nur Dateien sind. Ihre Inhalte haben nur dann eine besondere Bedeutung, wenn sie ein eingehängtes Dateisystem enthalten.

Angenommen, Sie haben ein Layout, das so aussieht:

1 TB = sda, zwei Partitionen, sda1, von der Sie gebootet haben, und sda2, zu der Sie dd'ing sind

320 GB = sdb, eine Partition, sdb1, von der aus Sie dd'en

Ihr Befehl würde folgendermaßen aussehen:

dd if=/dev/sdb1 of=/dev/sda2 bs=1M

Der bs=1MParameter soll sicherstellen, dass dd die Daten in großen Blöcken kopiert, anstatt für jeden Sektor eine Anfrage zu stellen.


1
if = source of = destination Ich denke, dass in den obigen Hinweisen etwas nicht stimmt.

Im obigen Beispiel ist sdb1 die Quelle und sda2 das Ziel. Ich habe die Antwort überarbeitet, um diesbezüglich klarer zu sein.
Michael Fenn

1
Keine Notwendigkeit, resize2fsnach dem Kopieren durchzuführen ? Auch wenn die Größen unterschiedlich sind?
Sopalajo de Arrierez

5

Im Allgemeinen ist es in Ordnung, Partitionen zu erstellen, solange sie nicht gemountet sind. Wenn Sie die Quellpartition zum Lesen mounten müssen, während die dd ausgeführt wird, ist es besser, sie nur mit dem Parameter -o ro zu mounten.

Wenn Sie zuerst die Quellpartition booten und dann mit dd kopieren möchten, können Sie mount -o ro ausführen und / erneut mounten, um sie nach dem Booten schreibgeschützt zu machen.


Nur lesen bedeutet nicht, dass das Dateisystem nicht mit dem Journal herumalbern oder freien Speicherplatz oder was auch immer neu organisieren soll.
Vonbrand

@vonbrand könnten Sie ein Beispiel für die Implementierung eines Linux-Dateisystems geben, das dies im RO-Modus tut?
Basilevs

@vonbrand In UNIX Dateisysteme montiert sind ro sehr viel tut bedeuten , dass keine Schreibvorgänge auf das zugrunde liegende Gerät ausgegeben werden sollen.
Michael Fenn
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.