# komplette Festplatte A -> Festplatte B kopieren [solved]

## ScytheMan

Hallo,

ich will meinen Festplatteninhalt auf eine andere Festplatte kopieren.

Prinzipiell steht dafür ja entweder dd oder cp zur Verfügung.

/dev/sda3             458G   12G  423G   3% /

Ich würde dd bevorzugen, nun zur Frage: kopiere ich dann 458Gb oder 12G?

In der man steht ebenfalls mit dem Signal USR1 kann ich nachsehen wieviel dd schon kopiert hat, wie sende ich dieses Signal?

Bei 458Gb hat sich dd quasi schon erledigt, dann favorisiere ich cp.

Welche Optionen bei cp? -av habe ich in einem altem HowTo gelesen.

Wird es Problematisch, wenn ich sdb auf /mnt/gentoo gemountet habe? (Endlos-Schleife beim Kopieren)

Danke schonmal für die Hilfe

gruß ScytheMan

edit:

will das gerne im System machen, nicht per LiveCDLast edited by ScytheMan on Sat Aug 02, 2008 2:30 pm; edited 1 time in total

----------

## 69719

Wenn deine ziel Partition von der Größe identisch ist kannst du dd machen und 458G Dateisystem übertragen, was im Vergleich zu cp etwas bzw eine weile länger dauert, da die ganze Partition und nicht die einzelnen Dateien übertragen werden.

```

mkdir /mnt/sdb3 && mount /dev/sdb3 /mnt/sdb3

mkdir /mnt/sd?? && mount /dev/sd?? /mnt/sd??

cp -av /mnt/sdb3/* /mnt/zielpartition

```

----------

## ScytheMan

Von der Größe her nicht identisch, ergo fällt dd schonma flach?

die platte die ich kopieren will, ist die rootpartition also schon auf / gemounted, 

angenommen ich mounte die zielpartition auf /mnt/sdb3 und starte das kopieren, dann kommt cp sicher irgendwann an das verzeichnis /mnt/sdb3. hierbei kommts mir aufs verhalten an. wird das mitkopiert = unnötig oder nicht?

----------

## 69719

Angenommen

/mnt/sdb3 hat folgenden Inhalt

```

/mnt/sdb3/file/lustig.avi

/mnt/sdb3/musik/blah.mp3

/mnt/sdb3/bilder/ich.jpg

```

und du führst ein

```

cp /mnt/sdb3 /ziel

```

aus, dann erzeugt das cp ein

```

/ziel/sdb3/file/lustig.avi

/ziel/sdb3/musik/blah.mp3

/ziel/sdb3/bilder/ich.jpg

```

Wenn du aber nun ein

```

cp /mnt/sdb3/* /ziel

```

aufrufst, dann erzeugt das cp ein

```

/ziel/file/lustig.avi

/ziel/musik/blah.mp3

/ziel/bilder/ich.jpg

```

----------

## ScytheMan

Ja, das ist mir klar.

Um mal bei deinem Beispiel zu bleiben:

Angenommen

/mnt/sdb3 hat folgenden Inhalt

```

/mnt/sdb3/file/lustig.avi

/mnt/sdb3/musik/blah.mp3

/mnt/sdb3/bilder/ich.jpg

/mnt/sdb3/ziel

```

und du führst ein

```

cp /mnt/sdb3/* /mnt/sdb3/ziel

```

durch

erhalte ich dann:

```

/mnt/sdb3/file/lustig.avi

/mnt/sdb3/musik/blah.mp3

/mnt/sdb3/bilder/ich.jpg

/mnt/sdb3/ziel

/mnt/sdb3/ziel/file/lustig.avi

/mnt/sdb3/ziel/musik/blah.mp3

/mnt/sdb3/ziel/bilder/ich.jpg

/mnt/sdb3/ziel/ziel

/mnt/sdb3/ziel/ziel/file/lustig.avi

/mnt/sdb3/ziel/ziel/musik/blah.mp3

/mnt/sdb3/ziel/ziel/bilder/ich.jpg

...

```

oder lediglich:

```

/mnt/sdb3/file/lustig.avi

/mnt/sdb3/musik/blah.mp3

/mnt/sdb3/bilder/ich.jpg

/mnt/sdb3/ziel

/mnt/sdb3/ziel/file/lustig.avi

/mnt/sdb3/ziel/musik/blah.mp3

/mnt/sdb3/ziel/bilder/ich.jpg

```

----------

## sicus

siehe manpage von cp:

parameter: -x (oder --one-file-system)

damit sollte er nur daten von diesem dateisystem kopieren und gemountete partitionen übergehen

----------

## ScytheMan

ah das klingt gut. 

wie sieht es bei cp mit den Rechten aus? Bleiben die erhalten oder muss ich dafür -p anhängen?

wie exclude ich Ordner wie z.B. proc oder dev?

oder benötige ich dafür erst ein tar mit --exclude-from= parameter?

gruß ScytheMan

----------

## sicus

da proc und dev gemountete virtuelle dateisysteme sind werden sie vermutlich ebenfalls übergangen wenn du -x verwendest. (garantie geb ich aber keine)

----------

## ScytheMan

 *sicus wrote:*   

> da proc und dev gemountete virtuelle dateisysteme sind werden sie vermutlich ebenfalls übergangen wenn du -x verwendest. (garantie geb ich aber keine)

 

nein, das hat nicht ganz so geklappt  :Wink:  hab es bereits ausprobiert.

also bleibt eig. nur noch die lösung mit dem tar archiv, da cp sowas wie exclude nicht vorsieht (jedenfalls hab ich nichts gefunden)

----------

## toralf

```
cp -ar
```

 oder 

```
tar -cpf- | (cd <other dir>; tar -xpf-)
```

Last edited by toralf on Fri Aug 01, 2008 2:10 pm; edited 1 time in total

----------

## 69719

Dann geh das doch mal ganz anders an und gib nur die quell Order an die du kopiert haben willst und das Ziel. Oder lösch anschließend die überflüssigen Ordner weg. Manch einer wäre mit den 12 GB schon längst fertig.

```

gendevel sdb3 # l /mnt/sdb3/

total 68K

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 bin

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 boot

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 dev

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 etc

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 home

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 lib

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 lost+found

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 mnt

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 opt

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 proc

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 root

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 sbin

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 secrets.tdb

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 sys

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 tmp

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 usr

drwxr-xr-x 2 root root 4.0K Aug  1 16:02 var

gendevel sdb3 # cp -av /mnt/sdb3/{bin,opt,var} /mnt/test/

`/mnt/sdb3/bin' -> `/mnt/test/bin'

`/mnt/sdb3/opt' -> `/mnt/test/opt'

`/mnt/sdb3/var' -> `/mnt/test/var'

```

----------

## manuels

Wieso nutzt ihr nicht rsync? Das ist ein wundervolles Tool.

----------

## toralf

 *manuels wrote:*   

> Wieso nutzt ihr nicht rsync? Das ist ein wundervolles Tool.

 Für ein *ein*maliges Kopieren ?

----------

## py-ro

Ja, da, wie ich letztens lernen durfte, wirklich alle Attribute und Zeitstempel korrekt mitkopiert werden.

Außerdem ist es praktisch, falls das kopieren abbricht bzw. abgebrochen wird, man muss nicht von vorne anfangen.

Mit den richtigen Parametern versteht sich!

Py

----------

## tamiko

Ich rate auch zu rsync. Mit 

```
rsync -av ...
```

 sieht man dann auch sofort, ob alles richtig läuft.

Eine alternative ist natürlich cp. Dann aber bitte mit cp -a , so dass auch hier Attribute und Berechtigungen richtig gesetzt werden.

Falls man dem -x nicht traut kann man auch etwas in der Art

```
mount -o bind / /mnt/root

cp -a /mnt/root/* ...
```

 machen. Dann kopiert man auch keine Einbindungen mit.

----------

## l3u

Ich mach das immer so:

```
mkdir /alt

mkdir /neu

mount <Festplatte 1> /alt

mount <Festplatte 2> /neu

cd /alt

tar -cvpP * | tar -xpPC /neu
```

----------

## sprittwicht

Also am einfachsten meiner Meinung nach: Knoppix booten, Platte A mounten, Platte B mounten, cp -av /mnt/a /mnt/b, fertig

Eine gemountete Rootpartition aus sich selbst heraus zu kopieren, wie ich dein Vorhaben jetzt verstanden habe, ist immer eine blöde Idee, da das laufende System ja ständig irgendwelche Änderungen am Dateisystem vornehmen kann.

Mit der Knoppix-Variante hast du nachher eine garantiert konsistente Kopie der Originalpartition. dd würd ich überhaupt nicht empfehlen. Zum einen ist die Größe der neuen Platte garantiert nicht 100% identisch mit der alten, was aber eigentlich kein Problem ist, solange sie zumindest groß genug ist. Zum anderen kopierst du aber eben jeden Müll, wie z.B. die unbenutzen 420 GB mit. Last but not least gibst du dem Dateisystem bei einem cp die Chance sich neu zu organisieren, was aber eher bei vollgestopften Platten interessant wird.

----------

## l3u

Ach so, es geht um ne root-Partition? Dann selbes Vorgehen, aber von ner Live-CD.

----------

## ScytheMan

@escor, sicher manch einer wär schon längst fertig mit. ich bins nun auch, hab dann deine lösung genommen, wobei es mit nem exclude, was cp leider net hat, noch nen tick schöner gewesen wäre.  :Wink: 

Danke für eure Hilfe 

Ich setze mal solved.

----------

