PERTANYAAN ASLI:
Jika saya memiliki 2 hard drive yang identik dengan karakteristik berikut:
- SATA 6.0 Gb/s
- 5400rpm
- 3TB
Berapa lama waktu yang dibutuhkan untuk menyelesaikan salinan dd lengkap?
Sejauh ini sudah berjalan selama 5 jam dan masih berjalan…
Saya menggunakan Linux Ubuntu 12.04 64bit dan perintah yang saya gunakan adalah:
dd if=/dev/sdb of=/dev/sdc
PEMBARUAN:1
Saya sekarang dapat melihat kemajuannya, dan sudah 6+ jam untuk menyalin 430GB. HDD-nya 3TB…
Apakah tidak ada cara yang lebih cepat untuk melakukan ini?
PERBARUI:2
Ini tampaknya jauh lebih baik dari sebelumnya (Terima kasih kepada Groxxda atas sarannya):
sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
ETA adalah sekitar 9 jam untuk 3TB, sedangkan sebelumnya mencapai 430GB setelah 6 jam, jadi saya kira itu akan memakan waktu sekitar 36 jam menggunakan perintah sebelumnya.
Jawaban yang Diterima:
dd
berguna di masa lalu ketika orang menggunakan kaset (ketika ukuran blok penting) dan ketika alat yang lebih sederhana seperti cat
mungkin tidak aman untuk biner.
Saat ini, dd if=/dev/sdb of=/dev/sdc
adalah cara penulisan cat /dev/sdb >/dev/sdc
yang rumit, rawan kesalahan, dan lambat . Sementara dd
masih berguna untuk beberapa tugas yang relatif jarang, itu jauh lebih tidak berguna daripada jumlah tutorial yang menyebutkannya akan membuat Anda percaya. Tidak ada keajaiban dalam dd
, keajaiban ada di /dev/sdb
.
Perintah baru Anda sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
lagi-lagi tidak perlu lambat dan rumit. Data dibaca 128kB sekaligus (yang lebih baik daripada dd
default 512B, tetapi tidak sebagus nilai yang lebih besar). Kemudian melewati dua pipa sebelum ditulis.
Gunakan cat
yang lebih sederhana dan lebih cepat memerintah. (Dalam beberapa tolok ukur yang saya buat beberapa tahun yang lalu di Linux, cat
lebih cepat dari cp
untuk salinan antara disk yang berbeda, dan cp
lebih cepat dari dd
dengan ukuran blok apa pun; dd
dengan ukuran blok yang besar sedikit lebih cepat saat menyalin ke disk yang sama.)
cat /dev/sdb >/dev/sdc
Jika Anda ingin menjalankan perintah ini di sudo
, Anda perlu membuat pengalihan terjadi sebagai root:
sudo sh -c 'cat /dev/sdb >/dev/sdc'
Jika Anda menginginkan laporan kemajuan, karena Anda menggunakan Linux, Anda dapat dengan mudah mendapatkannya dengan mencatat PID dari cat
proses (misalnya 1234) dan melihat posisi deskriptor file input (atau output).
# cat /proc/1234/fdinfo/0
pos: 64155648
flags: 0100000
Jika Anda menginginkan laporan kemajuan dan varian unix Anda tidak menyediakan cara mudah untuk mendapatkan posisi deskriptor file, Anda dapat menginstal dan menggunakan pv
bukannya cat
.