Bagaimana cara menyalin volume Mac menggunakan cp?

13

Saya telah meneliti ini selama berjam-jam. Dalam Mode Pengguna Tunggal, saya menggunakan:

cp -Rpvn /* /Volumes/MyBackup

USB eksternal saya sudah terpasang /Volumes/MyBackup

Masalahnya adalah bahwa setelah 24 jam masih belum berhenti menyalin 300GB data ke drive USB eksternal. Saya pikir itu mengalami masalah dengan tautan simbolis seperti /Volumes/MacHDvolume juga memiliki /Volumes/MacHDdan /Volumes/MyBackupsaya tidak yakin tentang ini.

Bagaimana cara menyalin volume Mac menggunakan cp? Apakah cp -Rpvn /* /Volumes/MyBackup benar?

ermSO
sumber
2
Anda menggunakan cp seperti ini, tetapi itu bukan alat yang tepat untuk pekerjaan itu. Anda perlu rsync untuk ini.
CousinCocaine
1
Apakah Anda memiliki kemungkinan untuk menjalankan mac Anda dalam mode disk target? Atau mungkin hanya mengeluarkan HD?
CousinCocaine
Saya tidak dapat melakukan mode target karena saya tidak memiliki mac kedua. Saya berharap untuk opsi yang kurang berisiko daripada mengambil drive.
ermSO
rsync mungkin merupakan pilihan terbaik Anda di sini, meskipun saya pikir Anda juga dapat menggunakan dduntuk membuat byte untuk salinan byte HDD Mac Anda.
thibmaek
1
ddadalah cara untuk mencari cadangan sektor demi sektor, yang sepertinya adalah apa yang Anda lakukan di sini (tapi berhati-hatilah, untuk memastikan hal yang Anda timpa sebenarnya adalah hal yang ingin Anda timpa). rsyncadalah cara untuk pergi untuk melakukan operasi penyalinan yang rumit atau besar. cpbagus untuk file individual, tetapi tidak bagus untuk operasi skala besar.
cpast

Jawaban:

25

Gunakan rsyncuntuk tujuan ini karena cptidak dapat dengan setia mereproduksi semua file yang ada pada OS X. Manfaat rsynclebih dittodan cpadalah:

  • transfer yang terputus dapat memulai kembali dengan mudah dengan biaya yang sangat sedikit.
  • restart bahkan melanjutkan sebagian jalan melalui file besar.
  • pengecualian file dan --dry-run memungkinkan pengujian mudah dan penipisan berulang.

Cara paling sederhana untuk menggunakan rsyncdan menyimpan sebagian besar hal (izin, symlink, edit tanggal, dll) adalah dengan menggunakan -aatau --archivemenandai untuk mengarsipkan. Untuk melihat kemajuan Anda gunakan -Patau--progress

Rsync berfungsi sebagai:

rsync options source destination

Dalam kasus Anda, saya akan merekomendasikan yang berikut ini:

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

Atau singkatnya:

rsync -avxhP /from/ /to

Pikirkan kurangnya garis miring di /tolokasi.

lihat komentar untuk bendera yang lebih berguna

SepupuCocaine
sumber
6
Anda juga menginginkan flag -x, untuk menghindari traverse ke disk yang terpasang yang tidak memiliki volume yang sama.
Kent
kudo's for bmike untuk membuat posting ini lebih mudah dibaca.
CousinCocaine
2
-Psebenarnya setara dengan keduanya --progressdan --partialdikombinasikan. Lihat halaman manual .
kirb
1
Saya akan melewati --compress(ini hanya berguna untuk transfer jaringan), dan menambahkan -E(mempertahankan atribut diperluas dan garpu sumber daya).
Gordon Davisson
5

Jika Anda ingin membuat salinan yang setia dari isi sistem file, hindari penggunaan cp. Alih-alih, gunakan ditto(1)perintah, yang mempertahankan tautan keras, izin file, garpu sumber daya, dan metadata HFS. Tidak seperti cp,ditto dimaksudkan untuk mempertahankan sebanyak mungkin informasi secara default.

Ini hanya masalah berlari .sudo ditto src dest

200_sukses
sumber
Perbaiki saya jika saya salah, tetapi saya cukup yakin cptelah diperbarui untuk menyalin metadata file di 10.4.
NobodyNada
Itu, tetapi dittomasih merupakan pilihan yang lebih baik.
juandesant
1
Dan rsyncmerupakan pilihan terbaik.
CousinCocaine
2

Anda lupa membuat daftar file pengecualian, dan kemungkinan menyalin hal-hal yang tidak dapat / tidak boleh disalin, termasuk file tanpa dasar seperti / dev / random.

Meskipun cp dapat melakukan pekerjaannya, ada alat yang lebih baik. Rsync adalah satu, Carbon Copy Cloner atau SuperDuper adalah yang lain. Untuk menggunakan analogi dapur, Anda menggunakan pisau untuk membuka kaleng. Rsync adalah pembuka kaleng, Carbon Copy Cloner adalah pembuka kaleng listrik. Saya menggunakan rsync secara teratur, tetapi pengaturan yang diperlukan untuk menyalin sistem operasi yang berjalan cukup kompleks. Saya tidak pernah repot-repot melakukannya sendiri.

 cp -Rpvn /* /Volumes/MyBackup 

Sepertinya semua yang ingin Anda lakukan adalah membuat cadangan. Mac Anda menyertakan Time Machine secara tegas untuk tujuan ini. Buka System Preferences -> Time Machine, pilih disk eksternal, hidupkan dan biarkan sendiri. Ini bekerja dengan sangat baik dan membutuhkan kurang dari satu menit dari waktu Anda.

paul
sumber
Saya tidak dapat mengakses GUI. Yang bisa saya dapatkan adalah Mode Pengguna Tunggal, jadi waktu CCC, superduper, dan mesin waktu bukanlah opsi. Pengaturan apa yang akan Anda gunakan dengan rsync? Idealnya saya ingin salinan bootable. Saya tidak bisa mendapatkan Ashar untuk bekerja.
ermSO
1
@ermSO Karena Anda jelas memiliki drive eksternal, instal OS baru di eksternal dan kemudian boot dari sana. Semua Mac saat ini dapat boot dari firewire atau USB. Anda kemudian dapat membuat cadangan yang layak dari file pengguna Anda dan kemudian memperbaiki drive internal Anda. Saya biasanya melakukan penghapusan lengkap dalam kasus ini, menghilangkan masalah direktori residual.
paul
ddakan melakukan salinan sektor demi sektor pada baris perintah, dan merupakan pilihan yang baik untuk menyalin seluruh volume ke seluruh volume lainnya sambil menghapus seluruh volume kedua.
cpast
Anda yakin ingin -Ropsi? Itu berarti bahwa jika Anda memiliki tautan simbolis ke satu folder di beberapa tempat, Anda akan menduplikasi konten. Itu mungkin menjelaskan waktu yang diperlukan. Jika Anda menggunakan dittosebagai gantinya, Anda akan mendapatkan apa yang Anda inginkan dengan pengaturan default.
Juandesant
1
@juandesant itu perintahnya, bukan milikku. saya tidak akan menggunakan cp sama sekali.
paul
0

Anda dapat membuat cadangan Time Machine dari baris perintah dengan tmutil, utilitas Time Machine. Anda dapat menetapkan tujuan kemudian memesan cadangan manual.

Untuk mengatur volume cadangan Time Machine:

sudo tmutil setdestination / Volume / MyBackup

Kemudian mulai pencadangan:

tmutil startbackup --auto

Itu --auto bendera akan mencoba untuk memperlakukannya sebagai waktu yang biasa dijadwalkan cadangan.

Setelah Anda memiliki cadangan Time Machine, Anda kemudian dapat menginstal ulang OS X di Mac Anda, lalu mengimpor semua file Anda dari cadangan Time Machine.

CyberSkull
sumber