GNU/Linux >> Belajar Linux >  >> Linux

Salinan Dd Penuh Dari Hdd Ke Hdd?

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 .


Linux
  1. Dapatkan Jalur Lengkap Dari Dalam Skrip Bash?

  2. Nama proses lengkap dari task_struct

  3. Impor CSV PostgreSQL dari baris perintah

  1. salin file pscp dari jarak jauh dari Windows ke Linux

  2. menyalin file dari windows ke Linux

  3. HDD Power-Up in Standby:mencegah agar tidak berputar

  1. Luncurkan Browser Web Dalam Mode Kios (Layar Penuh) Dari CLI

  2. Bagaimana Cara Menyalin Pengaturan Dari Satu Mesin Ke Mesin Lainnya?

  3. Bagaimana cara memigrasi instalasi Linux dari HDD ke SSD?