Wie kopiere ich ein Mac-Volume mit cp?

13

Das habe ich stundenlang recherchiert. Im Einzelbenutzermodus habe ich Folgendes verwendet:

cp -Rpvn /* /Volumes/MyBackup

Mein externer USB ist angeschlossen /Volumes/MyBackup

Das Problem ist jedoch, dass es nach 24 Stunden immer noch nicht aufgehört hat, 300 GB Daten auf ein externes USB-Laufwerk zu kopieren. Ich denke, dass es Probleme mit symbolischen Links gibt, wie z. B., dass der /Volumes/MacHDBand auch einen hat, /Volumes/MacHDund /Volumes/MyBackupich bin mir jedoch nicht sicher.

Wie kopiere ich ein Mac-Volume mit cp? Ist cp -Rpvn /* /Volumes/MyBackup korrekt?

ermSO
quelle
2
Sie verwenden cp so, aber es ist nicht das richtige Werkzeug für den Job. Sie benötigen dazu rsync.
CousinCocaine
1
Haben Sie die Möglichkeit, Ihren Mac im Zielfestplattenmodus auszuführen? Oder vielleicht einfach die HD rausspringen?
CousinCocaine
Ich kann den Zielmodus nicht ausführen, da ich keinen zweiten Mac habe. Ich hatte auf eine weniger riskante Option gehofft, als das Laufwerk herauszunehmen.
ermSO
Hier ist wahrscheinlich rsync die beste Option, obwohl Sie auch ddeine byteweise Kopie der Festplatte Ihres Mac erstellen können.
Thibmaek
1
ddDies ist der richtige Weg für Sektor-für-Sektor-Backups, wie Sie es hier tun (seien Sie jedoch sehr vorsichtig, um sicherzustellen, dass das, was Sie überschreiben, tatsächlich das ist, was Sie überschreiben möchten). rsyncist der Weg, um komplizierte oder große Kopiervorgänge durchzuführen. cpeignet sich hervorragend für einzelne Dateien, nicht jedoch für umfangreiche Vorgänge.
Schluss am

Antworten:

25

Verwendung rsyncfür diesen Zweck, da cpnicht alle unter OS X vorhandenen Dateien originalgetreu reproduziert werden können. Die Vorteile von rsyncover dittoand cpsind:

  • Unterbrochene Übertragungen können mit sehr geringen Kosten problemlos neu gestartet werden.
  • Startet den Vorgang sogar teilweise durch eine große Datei.
  • Ausschluss von Dateien und - dry-run ermöglichen einfaches Testen und iteratives Ausdünnen.

Die einfachste Möglichkeit, die rsyncmeisten Elemente (Berechtigungen, Symlinks, Bearbeitungsdaten usw.) zu verwenden und beizubehalten, besteht darin, die Option -aoder --archivezum Archivieren zu verwenden. Um Ihren Fortschritt zu sehen, verwenden Sie -Poder--progress

Rsync funktioniert als:

rsync options source destination

In Ihrem Fall würde ich folgendes empfehlen:

rsync --archive --verbose --one-file-system --human-readable --progress /from/ /to

Oder kurz gesagt:

rsync -avxhP /from/ /to

Beachten Sie das Fehlen von Schrägstrichen in der /toPosition.

Weitere nützliche Flags finden Sie in den Kommentaren

CousinCocaine
quelle
6
Sie möchten auch das Flag -x verwenden, um zu vermeiden, dass gemountete Datenträger, die sich nicht auf demselben Volume befinden, durchsucht werden.
Kent
kudo's for bmike dafür, dass dieser Beitrag viel lesbarer ist.
CousinCocaine
2
-Pist eigentlich gleichbedeutend mit beiden --progressund --partialkombiniert. Siehe die Manpage .
kirb
1
Ich würde überspringen --compress(es ist nur nützlich für Netzwerkübertragungen) und hinzufügen -E(erweiterte Attribute und Ressourcengabeln beibehalten).
Gordon Davisson
5

Wenn Sie den Inhalt des Dateisystems originalgetreu kopieren möchten, vermeiden Sie die Verwendung von cp. Verwenden Sie stattdessen den ditto(1)Befehl, der Hardlinks, Dateiberechtigungen, Ressourcenzweige und HFS-Metadaten beibehält. Im Gegensatz zu cp, dittoist gemeint , wie viel von dieser Information wie möglich standardmäßig zu bewahren.

Es ist nur eine Frage des Laufens .sudo ditto src dest

200_erfolg
quelle
Korrigieren Sie mich, wenn ich falsch liege, aber ich bin mir ziemlich sicher, dass cpdas Update zum Kopieren von Dateimetadaten in 10.4 durchgeführt wurde.
NobodyNada - Wiedereinsetzung von Monica am
Es war, ist aber dittoimmer noch eine bessere Option.
Juandesant
1
Und rsyncist die beste Option.
CousinCocaine
2

Sie haben vergessen, eine Ausschlussliste zu erstellen, und kopieren wahrscheinlich Dinge, die nicht kopiert werden können / sollten, einschließlich bodenloser Dateien wie / dev / random.

Während cp die Arbeit erledigen kann , gibt es bessere Werkzeuge. Rsync ist eins, Carbon Copy Cloner oder SuperDuper ist ein anderes. Um eine Küchenanalogie zu verwenden, öffnen Sie eine Dose mit einem Messer. Rsync ist ein Dosenöffner, Carbon Copy Cloner ist ein elektrischer Dosenöffner. Ich verwende rsync regelmäßig, aber die Einstellungen, die zum Kopieren eines laufenden Betriebssystems erforderlich sind, sind ausreichend komplex. Ich habe mich nie darum gekümmert, alles selbst zu tun.

 cp -Rpvn /* /Volumes/MyBackup 

Alles, was Sie tun möchten, ist ein Backup zu erstellen. Ihr Mac enthält Time Machine ausdrücklich zu diesem Zweck. Öffnen Sie die Systemeinstellungen -> Time Machine, wählen Sie die externe Festplatte aus, schalten Sie sie ein und lassen Sie sie in Ruhe. Es funktioniert sehr gut und benötigt weniger als eine Minute Ihrer Zeit.

paul
quelle
Ich kann nicht auf eine GUI zugreifen. Ich kann nur im Einzelbenutzermodus arbeiten, Zeit-CCC, Superduper und Zeitmaschine sind also keine Optionen. Welche Einstellungen würden Sie mit rsync verwenden? Im Idealfall möchte ich eine bootfähige Kopie. Ich konnte nicht zur Arbeit kommen.
ermSO
1
@ermSO Da Sie offensichtlich ein externes Laufwerk haben, installieren Sie ein neues Betriebssystem auf dem externen und booten Sie dann von diesem. Alle aktuellen Macs können entweder über Firewire oder USB gestartet werden. Sie können dann eine anständige Sicherung Ihrer Benutzerdateien erstellen und anschließend Ihr internes Laufwerk reparieren. In diesen Fällen lösche ich in der Regel vollständig, um alle verbleibenden Verzeichnisprobleme zu beseitigen.
Paul
ddKopiert Sektor für Sektor in der Befehlszeile. Dies ist eine gute Wahl, um ein gesamtes Volume auf ein anderes Volume zu kopieren und dabei das gesamte zweite Volume zu löschen.
25.
Sind Sie sicher, dass Sie die -ROption möchten ? Das bedeutet, dass Sie Inhalte duplizieren, wenn Sie an mehreren Stellen symbolische Links zu einem einzelnen Ordner haben. Das könnte erklären, wie lange es dauert. Wenn Sie dittostattdessen verwenden, erhalten Sie mit den Standardeinstellungen das, was Sie möchten.
Juandesant
1
@juandesant es ist sein Befehl, nicht meiner. Ich würde CP überhaupt nicht verwenden.
Paul
0

Sie können eine Time Machine-Sicherung über die Befehlszeile mit tmutildem Time Machine-Dienstprogramm erstellen . Sie können ein Ziel festlegen und dann ein manuelles Backup bestellen.

So legen Sie das Time Machine-Sicherungsvolume fest:

sudo tmutil setdestination / Volumes / MyBackup

Dann starten Sie das Backup:

tmutil startbackup --auto

Das --autoFlag wird versuchen, es als eine gewöhnliche zeitgesteuerte Sicherung zu behandeln.

Sobald Sie Ihr Time Machine-Backup erstellt haben, können Sie OS X erneut auf Ihrem Mac installieren und anschließend alle Ihre Dateien aus dem Time Machine-Backup importieren.

CyberSkull
quelle