Cara tercepat dan teraman untuk menyalin data besar-besaran dari satu drive eksternal ke drive lain

82

Saya harus dapat menyalin sekitar 2TB data dari drive eksternal (disk eksternal USB tunggal) ke drive eksternal lain (Drobo terpasang melalui Firewire).

Finder bukan opsi. Jika itu mengenai masalah, itu menghentikan proses dan saya harus mencari tahu mengapa itu gagal dan memulai lagi. Butuh waktu berbulan-bulan untuk melewatinya.

Saya sudah membaca tentang CP dan RSYNC tapi saya tidak terlalu akrab dan saya khawatir saya mungkin mendapatkan beberapa switch salah dan kehilangan file, atau mengacaukan tanggal file, atau terburuk ...

Adakah yang bisa menyarankan bagaimana saya melakukan ini dengan risiko dan biaya minimum?

Swisher Sweet
sumber
Dimulai dengan MacOS 10.13.4+, Anda sebenarnya dapat menggunakan Finder untuk menyalin file besar (dan semua tautan terkait). Saya hanya mencoba sendiri untuk membuat disk cadangan Time Machine lain (dari yang sudah ada) dan bekerja dengan cepat dan indah. Rupanya, sebelum 10.13.4, ini adalah bug tapi itu sudah diperbaiki. Info lebih lanjut dalam jawaban ini: apple.stackexchange.com/a/323691/261070 .
youngrrrr
Jawabannya tergantung pada bagaimana Anda mendefinisikan "tercepat". Apakah Anda menginginkan kecepatan transfer tercepat atau waktu terpendek antara saat Anda (manusia) mulai mengerjakan ini dan menyelesaikannya. Waktu yang Anda perlukan tergantung pada hal-hal seperti apakah Terminal membuat Anda takut atau tidak. Jawaban ideal untuk Anda juga akan tergantung pada apakah ini operasi satu kali atau yang sering diulang, serta apakah Anda bersedia menghabiskan uang atau tidak.
iconoclast

Jawaban:

140

sinkronisasi jarak jauh rsync,, adalah pilihan yang andal untuk menyalin sejumlah besar data. Anda dapat menyiapkan perintah dan melakukan dry-run sebelum melakukan salinan; tambahkan --dry-rununtuk mensimulasikan salinan.

Perintah terakhir Anda akan cukup sederhana:

sudo rsync -vaE --progress /Volumes/SourceName /Volumes/DestinationName

Bendera adalah:

  • v meningkatkan verbositas.
  • a menerapkan pengaturan arsip untuk mencerminkan file sumber dengan tepat, termasuk tautan simbolik dan izin.
  • E menyalin atribut diperluas dan garpu sumber daya (hanya OS X).
  • progress memberikan hitungan mundur dan mentransfer statistik selama salinan.

sudo, Digunakan untuk memastikan rsyncmemiliki hak yang sesuai untuk mengakses dan membaca semua file di drive Anda terlepas dari pemiliknya. Ini juga memungkinkan rsyncuntuk menulis file ke drive baru menciptakan kembali informasi pemilik asli.

rsync kemungkinan merupakan pilihan terbaik karena dapat dijalankan kembali jika ada masalah, menawarkan penebangan terperinci, dan secepat mungkin sambil tetap aman.

Ada banyak panduan untuk mendapatkan hasil maksimal rsync, contoh perintah rsync memberikan contoh yang relevan. Seperti komentar @GordonDavisson di bawah ini, berhati-hatilah dengan garis miring; ini dapat membuat dunia berbeda jika salinan Anda mulai dengan folder.

Alat alternatif termasuk dittodan cp. Keduanya pilihan yang masuk akal tetapi menawarkan sintaks yang berbeda.

Graham Miln
sumber
5

Saya menggunakan sinkronisasi bittorrent untuk menyinkronkan 8TB antara Drobo dan QNAP saya.

Nate Black
sumber
sinkronisasi bittorrent adalah cara untuk melakukan ini juga. Downvotes (menurut saya) tidak benar-benar dibutuhkan.
CousinCocaine
6
@CousinCocaine ya, tapi pertanyaannya adalah tentang bagaimana melakukan sesuatu, bukan aplikasi apa yang digunakan.
Dillon
@Dillon: mengetahui aplikasi apa yang digunakan kadang-kadang 99% dari apa yang perlu Anda ketahui untuk tahu bagaimana melakukannya.
iconoclast
3

Saya menjawab pertanyaan serupa di sini beberapa waktu lalu. Jawaban saya disalin di bawah ini.


Saya menggunakan cp -Rfv sourcefile destinationfiledengan sukses secara teratur.

cp = salin

R = memelihara hierarki file

f = jika file tujuan yang ada tidak dapat dibuka, hapus dan coba lagi

v = mode verbose, menampilkan file yang ditransfer saat proses berlangsung

sourcefile = data yang ingin Anda salin

destinationfile = direktori / drive yang ingin Anda salin

Tuan Kelinci
sumber
9
Namun perlu dicatat bahwa cp akan menyalin ulang file bahkan jika mereka tidak berubah sedangkan rsync tidak akan membuang waktu menyalin file yang sudah ada pada target. Dengan demikian Anda dapat memulai kembali dari tempat Anda tinggalkan dan / atau melakukan penyalinan tambahan.
David
Dapat menambah -nuntuk tidak menyalin file yang sudah ada, dan -puntuk mempertahankan semua izin termasuk atribut diperluas dan garpu sumber daya jika memungkinkan.
spinup
3

Cara "tercepat" adalah secara fisik memindahkan kedua drive menjadi internal ke satu komputer, melakukan penyalinan (atau rsync), dan kemudian memindahkannya kembali.

Saya masih menggunakan rsync, karena jika terputus karena alasan apa pun (cat step pada saklar daya?), Rsync tidak akan menyalin kembali file yang sudah berhasil. Itu juga tidak akan menyalin file apa pun yang sama dan di tempat yang sama.

WGroleau
sumber
Perhatikan bahwa ini lebih cepat karena ukuran kumpulan data. Jika ukurannya jauh lebih kecil, keunggulan kecepatan akan dibatalkan saat menggerakkan drive.
WGroleau
Tidak, lebih cepat untuk sejumlah besar data. Untuk sejumlah kecil data, salinannya masih lebih cepat, tetapi waktu yang diperlukan untuk memindahkan drive membatalkannya. Namun, ini berpotensi lebih cepat dalam kondisi NON-perfect, karena jika terganggu, rsync dapat menghindari menyalin lagi yang telah dilakukan sebelum gangguan.
WGroleau
Jika kecepatan transfer lebih cepat tetapi gangguan membuat Anda memulai dari awal, seluruh proses kemungkinan tidak akan lebih cepat, dan seluruh proses adalah yang penting. "kondisi sempurna" = tidak ada yang mengganggu proses . Dalam pengalaman saya, sangat umum terjadi sesuatu yang menyebabkan masalah ketika Anda berurusan dengan transfer besar-besaran. Itu sebabnya saya menyebut transfer tanpa gangguan sebagai "sempurna".
iconoclast
Jika Anda menggunakan rsync seperti yang saya katakan, gangguan tidak membuat Anda memulai dari awal.
WGroleau
Anda tidak memahami apa yang saya maksud dengan "memulai kembali" dalam konteks ini. Saya menyadari fakta bahwa rsync dapat mengambil di mana ia tinggalkan dalam menyinkronkan data. Tetapi jika Anda mengeluarkan perintah, dan gagal menyelesaikannya, Anda memulai lagi dengan intervensi manusia, yang membuat keseluruhan prosesnya lebih lama. Entah Anda membuang waktu dengan mengasuh semuanya, atau Anda ada penundaan besar antara kegagalan dan ketika Anda menemukannya. Yang penting bagi manusia adalah waktu seluruh proses, dan waktu intervensi manusia.
iconoclast
1

Jika Anda ingin menyalin drive A ke drive B persis Anda dapat melakukan ini dengan Disk Utility.


Kami akan menggunakan fungsi pemulihan Disk Utility . Beberapa latar belakang perbedaan antara Memulihkan vs menyalin dan menempel:

Fungsi Pulihkan di Disk Utility menggunakan fungsi salin blok yang dapat mempercepat proses penyalinan . Itu juga membuat salinan hampir pasti dari perangkat sumber . Ketika kita mengatakan "hampir tepat," kami tidak bermaksud mengatakan bahwa data yang berguna mungkin tertinggal, karena bukan itu masalahnya. Maksudnya adalah bahwa suatu salinan blok menyalin segala sesuatu dalam suatu blok data dari satu perangkat ke perangkat lainnya . Hasilnya hampir merupakan salinan asli dari aslinya. Salinan file, di sisi lain, menyalin data file per file, dan sementara data file tetap sama, lokasi file pada perangkat sumber dan tujuan kemungkinan akan sangat berbeda .

Menggunakan salinan blok lebih cepat , tetapi memiliki beberapa batasan yang memengaruhi kapan dapat digunakan, yang paling penting adalah bahwa menyalin blok demi blok mengharuskan kedua perangkat sumber dan tujuan dilepas dahulu dari Mac Anda. Ini memastikan bahwa data blok tidak berubah selama proses penyalinan. Namun, jangan khawatir; Anda tidak perlu melakukan unmount. Fungsi Disk Utility Restore mengaturnya untuk Anda. Tetapi itu berarti bahwa baik sumber maupun tujuan tidak dapat digunakan saat Anda menggunakan kemampuan Pulihkan .

Sumber: https://www.lifewire.com/use-disk-utility-to-clone-macs-drive-4042367


Instruksi

untuk menyalin semua file dari Perangkat A ke Perangkat B

PERINGATAN : Saat Anda mengembalikan satu volume ke volume lain, semua file pada volume tujuan dihapus. Sebelum Anda mengembalikan volume, salin file apa pun pada volume tujuan yang ingin Anda simpan ke volume yang berbeda.

  1. Pilih Lihat> Tampilkan Semua Perangkat.
  2. Pilih volume di bilah sisi yang ingin Anda pulihkan, lalu klik tombol Pulihkan masukkan deskripsi gambar di siniatau pilih Edit> Pulihkan.

Ini adalah volume yang dihapus dan menjadi salinan yang tepat. [Perangkat B]

  1. Klik menu pop-up Restore, lalu pilih volume yang ingin Anda salin [Perangkat A].
  2. Klik Pulihkan, lalu klik Selesai.

Sumber: https://support.apple.com/guide/disk-utility/restore-a-disk-dskutl14062/mac

JBis
sumber
Block copy juga akan menyalin ruang kosong dan akan gagal jika tujuannya satu blok lebih kecil dari sumbernya. (Mungkin gagal dengan cara yang tidak terdeteksi dengan segera.) Dan jika tujuannya lebih besar, ruang ekstra menjadi tidak dapat digunakan.
WGroleau
@WGroleau dapatkah Anda memperluas "ruang ekstra menjadi tidak dapat digunakan"
JBis
salin blok termasuk blok yang mengatakan blok mana yang terakhir. Jika tujuan cukup besar untuk data tetapi lebih kecil dari sumbernya, sistem operasi berpikir ada blok yang tersedia yang tidak ada. Jika tujuannya lebih besar, OS berpikir blok tambahan tidak ada.
WGroleau
@WGroleau, jadi saya mengerti Anda dengan benar jika saya memiliki drive 500GB dengan file 1GB tunggal dan memblokir salinan ke drive 1000GB apa yang akan terjadi? Dan bisakah Anda tautan situs?
JBis
Lihatlah halaman manual untuk 'dd'. Ini akan menyalin 500GB, tetapi sebagian besar dari 499 GB akan kosong. Bagian yang tidak hanya terlihat oleh sistem operasi, dan memberi tahu Anda bahwa Anda memiliki drive 500 GB. Lihat juga "peta partisi" dan "peta volume"
WGroleau
0

Jika Anda tidak ingin pergi ke rute baris perintah, saya menggunakan aplikasi FreeFileSync secara rutin untuk menyinkronkan 2 TB data dari array eksternal ke lokasi jaringan tanpa masalah. Anda dapat mengontrol cara menangani kesalahan dan mendapatkan log setelah selesai.

Brad L.
sumber