Apakah ada cara yang lebih cepat untuk menyalin file mesin waktu dari satu disk ke disk lain?

15

Saya mencoba untuk memindahkan file cadangan mesin waktu saya semua di bawah Backups.backupdb ke drive lain. Saya memulai salinan file semalam (b / c saya melihat bahwa butuh OSX selamanya untuk mempersiapkan salinan ... itu pada dasarnya menghitung file selama berjam-jam). Di pagi hari saya melihat bahwa hanya cadangan tertentu (folder dengan tanggal) yang disalin. Saya kemudian mencoba menyalin yang tidak disalin ... tetapi OS tidak mengizinkan saya untuk melakukan itu. Saya mendapat kesalahan bahwa "Operasi tidak dapat diselesaikan karena item cadangan tidak dapat dimodifikasi." Jadi rencana saya adalah menghapus salinan yang tidak lengkap pada drive baru dan kemudian mencoba menyalin lagi di folder Backups.backupdb.

Cukup membuat frustrasi. Apakah ada cara yang lebih cepat untuk menyalin file-file ini melalui perintah terminal sehingga tidak melakukan semua persiapan penghitungan file?

Saya mungkin dapat membuat seluruh folder dan kemudian menyalin, tetapi apakah itu akan mengganggu hak akses file, dll? Satu hal dengan pendekatan ini adalah bahwa saya tidak memiliki ruang lagi pada volume sumber saya untuk tar.

MEMPERBARUI

Saya telah mencoba beberapa metode yang disarankan orang di bawah ini, khususnya menggunakan fungsi pemulihan Disk Utility dan memberi saya beberapa pesan kesalahan dan hasil yang tidak terduga (setidaknya bagi saya). Saya sudah mencoba melakukan pengembalian dua cara:

  • Dengan "Hapus Tujuan" dicentang: Setiap kali (saya sudah mencoba dua kali), ketika pemulihan telah selesai saya melihat pesan "Tidak dapat mengembalikan - Operasi Tidak Valid" dan "Tidak dapat mengembalikan - Argumen Tidak Valid". Namun, disk tujuan saya mendapatkan salinan file TM saya. Yang aneh adalah bahwa disk tujuan saya persis seperti disk sumber saya ... bahkan ukurannya. Disk tujuan saya sebenarnya 1 TB tetapi setelah pemulihan, itu menunjukkan 200 GB ketika saya mendapatkan info dari finder. Tetapi dalam Disk Utility, ini menunjukkan partisi 1 TB!

Saya kemudian mencoba memverifikasi / memperbaiki disk dan mendapatkan:

    Ukuran simpul B-tree tidak valid
    Memeriksa volume HFS Plus Jurnal.
    Ukuran simpul B-tree tidak valid
    Perbaikan volume selesai.
    Memperbarui partisi dukungan boot untuk volume sesuai kebutuhan.
    Kesalahan: Disk Utility tidak dapat memperbaiki disk ini. Cadangkan sebanyak mungkin file Anda, format ulang disk, dan pulihkan file yang dicadangkan.

Tidak tahu apakah saya seharusnya memverifikasi / memperbaiki disk TM ...

  • Dengan "Hapus Tujuan" Tidak Dicentang: Pemulihan tidak pernah dimulai dan saya mendapatkan:
    Tidak dapat memulihkan - Pengoperasian tidak diizinkan
milesmeow
sumber
2
Saya pikir ini cukup bagus - pertanyaan lain membahas beban IO menyalin hard link tetapi terbungkus dalam jaringan kapsul dan waktu sehingga itu adalah kasus khusus dari masalah umum yang ditanyakan di sini.
bmike
Jika Anda dapat memutakhirkan ke MacOS 10.13.4+ bug yang mencegah penyalinan alias / tautan lebih cepat di Finder telah diperbaiki. Saya mencoba sendiri untuk menyalin disk Time Machine cadangan ke yang lain dan itu bekerja dengan sempurna (dan itu juga cukup cepat). Info lebih lanjut di sini: apple.stackexchange.com/a/323691/261070 .
youngrrrr

Jawaban:

13

Salinan normal (atau salin melalui rsync atau ditto) tidak akan mereplikasi Time Machine sepenuhnya karena akan mengubah dua direktori yang dihubungkan bersama (seperti yang terjadi dalam cadangan TM berturut-turut tanpa ada perubahan di antara) menjadi dua direktori terpisah.

Cara terbaik adalah menyalin seluruh disk menggunakan Disk Utility atau bagian salinan blok dari Carbon Copy Cloner dan mungkin serupa pada SuperDuper .

pengguna151019
sumber
1
Dari halaman manual DITto: "DITTE mempertahankan hard link file (tetapi tidak hard link direktori) hadir di direktori sumber" jadi tidak ada bantuan di sini. Baik Disk Utility atau alat seperti SuperDuper atau CCC.
nohillside
@patrix Thanks - halaman web pria mengatakan apa-apa tentang itu - CCC penggunaan idem atau rsync untuk menyalin sehingga hanya akan melakukan ini jika blok menyalin help.bombich.com/kb/troubleshooting/...
user151019
Disk Sumber Saya hanya berisi cadangan Time Machine. Disk Tujuan Saya berisi file lain. Saya tidak ingin tiruan dari disk Sumber saya. Saya hanya ingin menyalin file Time Machine ke disk Tujuan.
milesmeow
3
Setelah banyak upaya untuk menyalin file TM saya ke disk baru, Disk Utility dan Carbon Copy Cloner keduanya TIDAK melakukan trik. SuperDuper melakukannya dengan sempurna pada proses pertama dan tidak mengurangi ukuran partisi tujuan saya!
milesmeow
2
Pilihan lain untuk SuperDuper! sini. v3.2.4 berhasil menyalin folder cadangan Time Machine besar ke disk baru, di bawah macOS 10.14.2 Mojave, tanpa itu mengambil lebih banyak ruang. (Yang Finder tidak bisa lakukan ...) Time Machine dengan senang hati terus menggunakan disk baru seolah-olah itu yang lama.
gidds
5

Memigrasikan drive terenkripsi 3TB Time Machine penuh ke drive 8TB baru di macOS 10.14, saya mengalami semua masalah. Mencoba melakukan pemulihan dalam Disk Utility yang gagal dengan "tidak dapat memvalidasi sumber" atau "Operasi tidak diizinkan." Mencoba beberapa saran lain dalam posting ini dan yang lainnya, saya bisa mendapatkan pesan kesalahan baru yang menarik seperti "File katalog pada gambar / volume terlalu terfragmentasi," tetapi tidak ada salinan.

Apa yang berhasil pada akhirnya, di terminal:

  1. Hapus disk baru dengan Disk Utility, cocok dengan format drive sumber: MacOS Extended (Journaled, Encrypted)
  2. Gunakan diskutil cs listdi terminal untuk mendapatkan ukuran byte yang tepat dari Volume Logical pada drive lama, dan GUID Volume Logical baru, serta nomor disk untuk keduanya, misalnya disk4,.
  3. Gunakan ukuran byte yang tepat dari step2 sebagai ukuran volume baru. Dalam kasus saya dengan drive 3TB, itu adalah 2.999.772.905.472 byte:

    sudo diskutil cs resizeVolume $new_lv_guid 2999772905472
    
  4. Menggunakan pvperintah dari homebrew, lakukan salinan blok tingkat rendah dari disk. Ini sangat mirip menggunakan dd, kecuali Anda mendapatkan pengukur kemajuan dengan ETA.

    Anda perlu mendapatkan nomor disk dari diskutil cs listoutput. Hati-hati. Sangat mudah untuk secara tidak sengaja menimpa drive cadangan lengkap Anda dengan yang baru kosong di sini.

    sudo sh -c "$(which pv) --buffer-size 50M -s 2999772905472 < /dev/rdisk${source} > /dev/rdisk${target}"
    

    Jika Anda mendapatkan izin ditolak / operasi tidak diizinkan kesalahan di sini, masuk ke Preferensi Keamanan & Privasi dan tambahkan Akses Disk Penuh untuk Terminal.app.

    Bagi saya ini membutuhkan waktu sekitar 10 jam — saya membiarkannya berjalan dalam semalam — tetapi, dengan pv, setidaknya Anda mendapatkan pengukur kemajuan dengan ETA.

  5. Sekarang, perluas volume untuk mengambil semua ruang yang tersisa di drive:

    sudo diskutil cs resizeVolume $new_lv_guid 0
    

    Ini memakan waktu ~ 3 jam untuk saya, dengan cadangan sekitar 5 tahun. Sebagian besar waktu dihabiskan dengan macOS fsck.

Sekarang Anda dapat menikmati drive Time Machine baru Anda yang lebih luas. Anda dapat menggunakan kembali yang lama, atau menyimpannya di tempat yang aman jika terjadi sesuatu pada drive baru.


Langkah-langkah mengubah ukuran tampaknya menjadi penting; melewatkan mereka menghasilkan salinan file 10 jam yang menghasilkan volume 8TB yang mengandung sistem file 3TB yang saya tidak tahu bagaimana cara mengubah ukuran.


PEMBARUAN Salah satu kelemahan potensial dari pendekatan ini adalah karena ini adalah salinan bit-for-bit, pengidentifikasi sama antara disk lama dan disk baru. Jika saya menghubungkan disk penuh lama, Time Machine berpikir itu adalah disk baru, mencoba untuk membuat cadangan, dan mulai menghapus cadangan lama untuk memberikan ruang bagi yang baru. Sepertinya pendekatan yang baik untuk memindahkan data ke disk yang lebih besar di mana disk yang lebih kecil kemudian akan dihapus.

andrew
sumber
Halo Andrew! Terima kasih telah meluangkan waktu untuk mengetikkan panduan langkah demi langkah ini (dan saya berharap menggunakannya untuk mentransfer cadangan 1TB saya ke disk 4TB, yang hingga saat ini belum berhasil karena folder & file yang ditemukan oleh Finder) mengambil lebih banyak ruang pada disk baru daripada yang asli). Pertanyaan saya kepada Anda adalah: dapatkah saya melakukan langkah-langkah ini tanpa cs alias pemeliharaan diaktifkan? Mengaktifkan penyimpanan inti tampaknya merupakan PITA yang mungkin tidak perlu , tetapi mungkin perlu karena langkah panduan 3.
Michael Dautermann
@MichaelDautermann Core Storage diperlukan untuk FileVault yang sangat disarankan untuk drive cadangan, untuk melindungi privasi Anda dalam kasus kehilangan, pencurian, atau pembuangan yang tidak tepat.
andrew
Saya ingin menambahkan bahwa saya tidak dapat menyalin dengan metode yang disebutkan. Alasannya adalah bahwa sistem meminta agar "operasi ini tidak diizinkan". Setelah pencarian singkat saya menemukan bahwa saya perlu mematikan semua fungsi SIP. Ini dapat dilakukan dengan me-restart macOS dengan menahan perintah + R dan membuka terminal. Di sini Anda perlu menonaktifkan dengan mengetikkan "csrutil disable". Dengan restart berikutnya saya dapat menyalin cadangan TM
Oliver Koehler
@dan versi saya adalah 10.14.6 dan saya sepenuhnya memahami risiko yang Anda sebutkan. Namun saya tidak dapat melakukan dd atau pv TimeMachine saya - backup tanpa mematikan SIP. Jika ada cara lain saya akan senang mendengarnya.
Oliver Koehler
Saya terus mendapatkan "pv: tulis gagal: Kesalahan input / output" pada 99% (setelah 30 jam, 3 upaya - jadi benar-benar 90 jam). Disk tidak di-mount. Fungsi SIP dinonaktifkan. Googling kesalahan tidak muncul dengan apa pun. Mirip dengan situasi aslinya (3TB -> 8TB). sudo sh -c "$(which pv) --buffer-size 50M -s 3000249008128 < /dev/rdisk3 > /dev/rdisk5"- 8tb sebelumnya berhasil diubah ukurannyaResized Core Storage Logical Volume to 3,000,249,008,128 bytes
ks
2

Mengapa tidak menggunakan terminal saja:

cp -RnpP Backups.backupdb
  • -R rekursif
  • -n jangan menimpa (jika sisa-sisa salinan yang ada tetap dari upaya sebelumnya)
  • -p melestarikan ACL, izin, tanggal pembuatan / mod, dll.
  • -P pertahankan hard link, jangan ikuti hard atau symlink.
chaseholden
sumber
Ini tidak benar. Baca man cpuntuk macOS. cpPerintah reguler yang dikirimkan bersama macOS tidak menyalin tautan keras dengan -P. Halaman manual sebenarnya mengatakan "Perhatikan bahwa cp menyalin file yang terhubung dengan keras sebagai file yang terpisah. Jika Anda perlu menjaga hard link, pertimbangkan untuk menggunakan tar (1), cpio (1), atau pax (1) sebagai gantinya."
chmac
0

Jawaban ini tidak akan menyelesaikannya lebih cepat, tetapi saya telah menemukan cara untuk menyalin data dengan benar sambil mempertahankan de-duplikasi (tautan keras) dan izin. Sebagai bonus tambahan saya menggunakan ini untuk membuat dmg terkompresi dari produk akhir untuk pengarsipan.

  1. Menggunakan Disk Utilities, buat disk image yang lebih besar dari direktori Backups.backupdb Anda. Saya juga menyarankan agar Anda menggunakan disk image bundle jarang untuk Format Gambar dan Hard disk untuk Partisi. Setelah gambar ini dipasang, Dapatkan info tentang itu dan batalkan pilihan Abaikan kepemilikan pada volume ini.

  2. Sekarang matikan Time Machine, dan menggunakan finder salin folder Backups.backupdb ke gambar yang dipasang. Pencari akan meminta Anda untuk izin pengguna super untuk menyalin data. Minumlah atau lakukan hal lain sebentar.

  3. Ketika salinan selesai, lihat untuk memastikan semuanya baik-baik saja dan unmount gambar. Dari Disk Utility, pilih Konversi dan ubah gambar berkas jarang menjadi gambar terkompresi. Sekali lagi, ini mungkin perlu waktu.

Anda harus berakhir dengan dua salinan cadangan Time Machine Anda, Anda dapat menghapus versi bundel yang jarang, dan menempatkan dmg di tempat yang aman sebagai arsip tepat waktu.

Satu hal yang saya belum coba dengan ini adalah melakukan pengembalian sistem dari dmg, tapi saya curiga itu harus bekerja, tujuan saya lebih untuk pengarsipan perubahan mesin waktu tambahan dan menjaga struktur hard link.

Saya juga sudah mencoba rsync dan cp, tetapi mereka tampaknya tidak mempertahankan struktur tautan keras yang akhirnya akan membuat x kali ukurannya, x menjadi jumlah tanggal yang Anda miliki di masa lalu. Metode ini bekerja dengan baik, tetapi sekali lagi mungkin tidak mendapatkan kecepatan solusi salin blok.

hanz
sumber
0

Apple memiliki tutorial resmi untuk ini: " Time Machine: Cara mentransfer cadangan dari drive cadangan saat ini ke drive cadangan baru ".

Langkah-langkah tingkat tinggi dari halaman itu:

  1. Periksa format drive cadangan baru Anda
  2. Tetapkan izin pada drive cadangan baru Anda
  3. Matikan Time Machine untuk sementara waktu
  4. Salin data cadangan Anda dari drive asli Anda ke drive baru Anda
  5. Setel Time Machine untuk menggunakan drive baru Anda

Ini adalah bagaimana halaman ini merekomendasikan melakukan langkah penyalinan:

Salin data cadangan Anda dari drive asli Anda ke drive baru Anda

  1. Buka jendela Finder baru. Di bilah samping Finder, klik ikon drive cadangan asli.
  2. Buka jendela Finder baru. Di bilah samping Finder, klik ikon drive cadangan baru.
  3. Seret folder "Backups.backupdb" dari drive cadangan asli ke tingkat atas drive cadangan baru.
  4. Masukkan nama administrator dan kata sandi, lalu klik OK untuk memulai proses penyalinan.

Menyalin data cadangan Anda mungkin perlu waktu untuk diselesaikan, tergantung pada ukuran cadangan Anda.

David Andreoletti
sumber
5
Saya melihat pertanyaan ini karena mengikuti tutorial itu (yang menyarankan menyalin folder cadangan dengan Finder) dan membiarkannya berjalan semalaman, itu berakhir pada beberapa masalah izin dengan sekitar 500 / 940gb disalin. Saya kemudian melakukan sudo rsyncsemalam, tetapi pagi ini menemukan ERROR: out of memory in flist_expand [sender]dan salinan saya sekarang ~ 600GB. Saya belum memutuskan apa yang harus dilakukan selanjutnya, tetapi mencurigai sebagian besar orang yang membaca sudah mengetahui tutorial resmi.
PeterT
@PeterT Saya baru saja mencoba tuto juga dan mendapatkan masalah yang sama seperti Anda. Saya tidak yakin ada yang tahu tentang tutorial, kalau tidak, seseorang akan menyebutkannya di sini dan hasilnya mengikutinya. Sekarang, orang tahu itu tidak pantas untuk dicoba.
David Andreoletti
1
Menggunakan finder untuk menyalin folder memerlukan waktu lama untuk membuat daftar file dan kemudian gagal lagi dengan ruang disk yang tidak cukup sehingga harus salah perhitungan.
Malhal
1
Itulah masalah saya. Volume TM asli adalah 550GB, yang baru adalah 600GB. Masih Mojave mengeluh tentang ruang tidak cukup pada volume. Saya menggunakan SuperDuper sekarang! dalam mode "Cadangkan - semua file".
Markus Rudel
1
Tutorial Apple gagal untuk saya, di macOS Mojave 10.14.2. Saya mencoba menyalin arsip cadangan 3TB ke drive 8TB; Finder menghabiskan hampir 5 hari menyalin (mengatakan '5 detik tersisa' untuk sebagian besar dari itu), sebelum menyerah dan mengeluh bahwa drive sudah penuh! Dan itu - meskipun itu hanya menyalin sekitar 2/3 dari cadangan. Jelas, itu tidak mempertahankan hardlink tetapi membuat salinan baru masing-masing. Jadi jawaban ini saat ini tidak benar.
gidds
0

+1 untuk utilitas disk, terlalu lama untuk komentar:

12.250.329 file dievaluasi, 10.408.594 file disalin. Kecepatan salin efektif 8,68 MB / s.

untuk mengkloning drive Cadangan 2TB yang magnetis dengan beberapa tahun pencadangan melalui SuperDuper! tahun ini.

Ini mengambil total 63 jam (SuperDuper akan mengatur ulang jamnya setiap 24 jam, jadi pada akhirnya menunjukkan 15:04:43) sebagai lawan dari salinan Finder yang saya batalkan setelah sekitar 4 hari dan seperempat file.

Jelas disk magnetik itu bukan alasan untuk ini memakan waktu lama. Alasan penggandaan Finder terhenti pada disk cadangan yang berjalan lama adalah banyaknya jumlah tautan simbolik berjenjang pada file yang tidak diubah, terutama untuk banyak file kecil seperti indeks Git.

Parasetamol
sumber
0

rsync adalah utilitas yang bagus untuk hal-hal seperti ini. Saya biasanya menggunakannya untuk hal-hal seperti ini. Dalam hal ini saya mungkin menggunakan flag -aP. Saya pikir bagian dari -a ("arsip") juga untuk menjaga izin, ACL dan sejenisnya, tapi saya tidak yakin.

IIRC, ada juga opsi --delete yang memungkinkan Anda untuk menghapus file sumber setelah berhasil disalin ke tujuan. Saya akan berhati-hati menggunakan itu - biasanya saya melakukan mirror lengkap tanpa opsi --delete, maka saya akan menjalankan kembali perintah dengan opsi -c dan --delete. -c adalah checksum, jadi itu memeriksa semua file yang telah Anda unduh terhadap semua yang ada di sumber melalui checksum, kemudian menghapus sumber jika ada kecocokan, jika tidak maka salinan ulang atau melanjutkan penyalinan sesuai kasusnya.

EDIT: silakan gunakan bendera -H dalam hal ini sesuai komentar, untuk menjaga tautan keras.

Harv
sumber
5
rsync tidak memelihara tautan keras pada direktori. Menyalin cadangan sementara TM akan menduplikasi banyak direktori
nohillside
1
@ patrix - Saya bisa mengkonfirmasi ini. Saya sudah mencobanya. Hard-link direktori hampir unik untuk HFS +, dan rsync tidak memahaminya.
Nama Palsu
3
-H, --hard-links menyimpan hard link
Pete Ashdown
-2

Dengan hard drive, ketika Anda memindahkan banyak file dari satu drive, pembaca bergerak bolak-balik membuat suara klik yang menakutkan, dan itu memperlambat laju transfer secara signifikan, misalnya- satu file dengan usb 2.0 bergerak pada 30 mbps pada komputer saya dari 2 hard drive eksternal, tetapi 2 file bergerak pada 11 mbps. dan 3 file bergerak dengan kecepatan 6 mbps. dll. file zip akan bergerak lebih cepat daripada file.

Jake Thomas
sumber
2
Bagaimana ini menjawab pertanyaan OP?
fsb