Saya melakukan dd
pada dua drive identik dengan perintah ini:
dd if=/dev/sda of=/dev/sdb bs=4096
Kedua hard drive adalah nomor model yang sama persis, dan keduanya memiliki ruang penyimpanan 1TB. /dev/sda
menggunakan blocksize dari 4096. /dev/sda
adalah drive lokal dan /dev/sdb
merupakan caddy jarak jauh. Saya mungkin dapat menggunakan protokol berikut:
- USB2.0 HighSpeed (Saat ini rencananya)
- Klon Gigabit Over-The-Network (Benar-benar tidak ingin mencoba ini)
- USB3.0 (Jika saya menemukan drive caddy saya yang lain)
- eSATA (Jika saya menemukan / membeli kabel)
- SATA (Jika saya menemukan / membeli kabel, pasti suka drive CD laptop)
Apakah ada cara untuk menjalankan salinan drive ini yang membutuhkan waktu kurang dari 96 jam? Saya terbuka untuk menggunakan alat selain dd
.
Saya perlu mengkloning partisi berikut (termasuk UUID)
- Partisi EFI Fat32 (*)
- Partisi Windows NTFS (*)
- Partisi HFS + OSX
- Partisi Ubuntu EXT4 (*)
- Swap Partition (*)
*
Didukung oleh Clonezilla
Saya telah mencoba Clonezilla (dan itu JAUH lebih cepat), tetapi tidak mendukung penyalinan pintar HFS +, yang saya butuhkan. Mungkin versi terbaru mendukung ini?
Ketika saya membuat klon pertama saya, saya melakukan semua partisi kecuali HFS + dan berjalan sangat cepat. (Total tidak lebih dari 3 jam)
sumber
dd
menyalin semuanya , termasuk ruang kosong. Kerugiannya menjadi sangat jelas ketika Anda memiliki disk besar yang tidak sepenuhnya penuh.Jawaban:
Dalam pengalaman saya, saya tidak berpikir ada sesuatu yang lebih cepat di baris perintah
dd
. Menyesuaikanbs
parameter dapat meningkatkan kecepatan, misalnya, saya memiliki 2 HDD yang saya tahu memiliki kecepatan baca / tulis lebih besar dari 100 MB / s jadi saya melakukan ini:Ada juga
pv
(Perlu diinstal terlebih dahulu) yang memeriksa kecepatan tercepat pada kedua drive dan kemudian hasil kloning. Ini tentu saja harus dilakukan dari root:Dengan PV saya mendapat 156 MB / s
Hal yang baik tentang
pv
terlepas dari kecepatan adalah bahwa ia menunjukkan kemajuan, kecepatan saat ini, waktu sejak dimulai dan ETA. Mengenai HFS + saya tidak akan tahu, saya hanya mencoba untuk membantu pada bagian "kecepatan". Denganpv
ataubs
parameter yang sangat optimal , Anda dapat melakukan drive 4 TB dalam waktu kurang dari 7 Jam (6 Jam 50 Menit dengan kecepatan saat ini 150 MB / s).Saya melakukan beberapa tes dengan jenis koneksi yang Anda gunakan dan yang lain yang saya miliki. Saya menggunakan Asus Z87 Pro dan Intel DZ68DP. Ini adalah hasil saya, tetapi pertama-tama kita perlu tahu bahwa kecepatan teoritis untuk banyak kecepatan transfer (kecepatan mentah) hanya itu, teori . Melakukan tes nyata mengungkapkan bahwa mereka berada antara 40% hingga 80% dari kecepatan mentah itu. Tes ini dapat berubah tergantung pada Perangkat yang digunakan, jenis koneksi, motherboard, jenis kabel penghubung, jenis sistem file, dan lainnya. Dengan mengingat hal itu, inilah yang saya dapat (saya hanya menguji kecepatan Tulis ke Perangkat, baca biasanya lebih tinggi):
sumber
bs
parameter dapat dilakukandd
secepatcat
. Anda mungkin juga menggunakannyacat
di tempat pertama.pv
dengan sendirinya bekerja dengan sangat baik.dd if=/dev/sda1 | pv | dd of=/dev/sdb1
pv
di antaradd
s. Tidak pernah tahu itu bisa digunakan sendiri!Untuk menyalin partisi grosir, gunakan
cat
sebagai gantidd
. Saya menjalankan benchmark beberapa saat yang lalu, menyalin file besar daripada partisi, antara dua disk (pada disk yang sama, timing relatif berbeda):Kesimpulan dari tolok ukur ini adalah bahwa pilihan ukuran blok untuk
dd
hal - hal (tapi tidak terlalu banyak), dancat
secara otomatis menemukan cara terbaik untuk membuat salinan cepat:dd
hanya dapat memperlambat Anda. Dengan ukuran blok kecil,dd
buang waktu membuat kecil membaca dan menulis. Dengan ukuran blok yang besar, satu disk tetap siaga sementara yang lain sedang membaca atau menulis. Tingkat optimal dicapai ketika satu disk membaca sementara disk lain menulis.Untuk menyalin partisi, mungkin lebih cepat untuk menyalin file
cp -a
. Ini tergantung pada berapa banyak file yang ada dan berapa banyak sistem file ruang bebas. Menyalin file memiliki overhead yang kira-kira sebanding dengan jumlah file, tetapi di sisi lain, menyalin ruang kosong akan menghabiskan waktu.Kecepatan data maksimum untuk USB2 adalah sedikit di bawah 50 MB / s yang bekerja sampai 6-7 jam untuk mentransfer 1TB. Ini mengasumsikan hard disk yang cukup cepat untuk memenuhi USB bus; Saya pikir drive 7200 rpm lebih cepat dapat melakukannya tetapi 5900rpm mungkin tidak secepat itu (mungkin mereka untuk menulis linear?).
Jika salah satu disk digunakan secara paralel, ini dapat memperlambat penyalinan karena kepala disk harus bergerak.
sumber
cat
digunakan untuk apadd if=ubuntu.iso of=/dev/usb
?dd
Kecepatan untuk melakukan ini baik USB2 atau USB3 sangat lambat.cat ubuntu.iso >/dev/usb
persis sama. Tidak ada keajaiban didd
dalamnya, itu hanya alat untuk menyalin inputnya ke outputnya.sudo cat linuxmint-17.3-cinnamon-64bit.iso >/dev/disk1
Memberi kembali "-bash: / dev / disk1: Izin ditolak"Masalahnya adalah jenis koneksi Anda, dan ukuran blok. Untuk hasil tercepat, ukuran blok Anda harus setengah dari kecepatan tulis terendah yang biasanya Anda terima. Ini akan memberi Anda margin aman, tetapi masih memungkinkan untuk sejumlah besar; tentu saja Anda perlu memiliki ram yang cukup untuk menyimpan data juga.
Usb 2.0 adalah 12 megabit per detik (Mbps), Kecepatan Tinggi Usb 2.0 adalah 480 Mbps. Ini tentu saja kecepatan mentah; dengan 8 bit dalam byte dan membingkai overhead, kecepatan yang dapat digunakan dalam MB / s biasanya merupakan tempat desimal. Jadi misalnya 480 mentah, menjadi 48MB dapat digunakan. Perlu diingat bahwa ini adalah yang terbaik secara matematis, di dunia nyata akan sedikit lebih rendah. Untuk koneksi USB 2.0 kecepatan tinggi Anda harus mengharapkan kecepatan tulis maks 30-35 MBs, asalkan perangkat penyimpanan yang sebenarnya dapat menyamakan atau melampaui kecepatan koneksi.
sumber
Saya setuju bahwa kecepatan mentah dari perintah yang disetel dengan baik
dd
('pv') atau 'cat' sulit dikalahkan, tetapi jika ada masalah dengan salinan (sektor buruk, kegagalan daya, kesalahan pengguna, dll) maka Anda harus memulai lebih.Saya ingin menyarankan ddrescue - alat FOSS yang memiliki semua kecepatan dd tetapi akan bekerja di sekitar kesalahan disk, dan melanjutkan pada titik selanjutnya jika ada kegagalan.
sumber
Saya memindahkan Windows 7 dari HDD ke SSD dan menemukan ini dan beberapa jawaban lain ... Sesuatu yang saya pelajari yang mungkin membantu orang lain. Dalam kasus saya, drive sumber lebih besar, kalau tidak saya akan bekerja di tingkat perangkat / dev / sda -> / dev / sdb.
Win7 dan 3 partisi-nya ... Saya menggunakan live cd Xbuntu 14.04 di usb. Muncul DVD komputer menang dan letakkan SSD di tempatnya. Menginstal partclone dan mencoba ini:
partclone.ntfs -b -N -s /dev/sda3 -o /dev/sdb3
Partclone muntah pada ntfs yang membutuhkan chkdisk berjalan di Windows, jadi perbaikan cepat membuat partclone senang:
Semua perintah dijalankan sebagai root. Partclone's ncurses UI (opsi -N) mengatakan transfer adalah 7GB / menit dan berakhir pada 5GB / menit, yang setara dengan 83MB / detik. Bagian terbaiknya adalah partclone tidak menyalin ruang yang tidak digunakan, jadi ini membuat klon sangat cepat.
Gotchya tambahan potensial:
jika drive yang Anda transfer sebelumnya digunakan, mungkin ada sisa-sisa GPT. Instalasi pabrik Windows 7 biasanya adalah tabel partisi msdos / mbr. Anda harus menghapus fragmen GPT dari drive tujuan. Ini Unix & Linux QA membantu saya dengan ini. Anda harus menggunakan
gdisk
pada perangkat, gunakan x lalu z dan ya untuk zap data GPT dan pastikan Anda MENJAGA MBR.Dan jangan lupa jika Anda tidak melakukan level perangkat dd, Anda harus menyalin MBR menggunakan di
dd if=/dev/sdb of=/dev/sda bs=446 count=1
mana sdb adalah sumber atau drive lama dan sda adalah tujuan atau drive baru ( sumber )
sumber
Saya baru-baru ini membuat gambar partisi 100GB (HDD) dan menulisnya ke disk SSD baru.
Inilah tip yang dapat mempercepat proses secara drastis :)
Membagi file menjadi bagian yang lebih kecil (semakin besar file, semakin lambat kerjanya)
Selama proses, Anda dapat memeriksa kecepatan menggunakan (di terminal terpisah)
Kemudian, ketika Anda memiliki direktori yang penuh dengan file hasil (maindisk.img000, maindisk.img001, dan seterusnya ...) gunakan
untuk 'membakar' gambar ke dalam partiton baru SSD (ukuran partisi harus sama dengan yang lama)
Bagi saya itu bekerja lebih cepat daripada cara biasa (tanpa membelah). Kecepatan rata-rata membuat gambar adalah ~ 13MB / s. Ketika saya menggunakan cara 'normal' dimulai dengan ~ 15MB / s dan kemudian menurun menjadi 1MB / s.
sumber
conv=sync
merugikan kinerja dan agak tidak berguna dalam kasus penggunaan ini.Bagi siapa pun yang menemukan utas ini, jauh lebih mudah dan lebih cepat untuk hanya menggunakan alat yang dirancang untuk pemulihan data seperti ddrescue . Mencoba menyelamatkan bagian yang baik terlebih dahulu jika terjadi kesalahan baca. Anda juga dapat mengganggu penyelamatan kapan saja dan melanjutkannya nanti di titik yang sama.
Jalankan dua kali:
Babak pertama, salin setiap blok tanpa kesalahan baca dan catat kesalahan tersebut ke rescue.log.
Babak kedua, salin hanya blok yang buruk dan coba 3 kali membaca dari sumber sebelum menyerah.
Sekarang Anda dapat memasang drive baru dan memeriksa sistem file untuk korupsi.
Info lebih lanjut:
https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html
sumber
Id merekomendasikan input / baca - file / disk pada SATA untuk meningkatkan kecepatan membaca. Kecepatan tinggi USB 2.0 juga bagus karena saya mendapatkan kecepatan rata-rata 33816 kb / s dengan ddrescue dibandingkan dengan ketika pengaturan USB 2.0 ke SATA pada 2014 kb / s
sumber
Gunakan ukuran blok yang berbeda. Ini adalah jumlah data yang
dd
dibaca sekaligus. Jika membaca terlalu sedikit, sebagian besar waktu dihabiskan untuk logika program dan jika membaca terlalu banyak, banyak waktu dihabiskan untuk memindahkan data besar.Untuk mengukur kecepatan pada ukuran blok yang berbeda, gunakan
bash
skrip berikut :$dev
ke perangkatcbtotal
setidaknya 5x kecepatan baca yang Anda harapkanHasilnya mungkin bias ke ukuran yang lebih besar karena pembacaan disk di depan - itu sebabnya penting untuk mengatur
cbtotal
cukup besar.sumber