Di suatu tempat di internet saya membaca bahwa gddrescue lebih unggul daripada dd setidaknya dalam hal mampu membedakan antara jumlah disk yang dilakukan pada sektor bermasalah. Benarkah ini masalahnya?
waktu dd jika = / dev / sda lewati = 900343967 dari = jumlah a.bin = 4 iflag = konv langsung = noerror, sinkronkan
dd: membaca `/ dev / sda ': Kesalahan input / output
2 + 0 mencatat dalam
2 + 0 mencatat
1024 byte (1,0 kB) disalin, 18,6057 s, 0,1 kB / s
3 + 1 catatan dalam
4 + 0 catatan dari
2048 byte (2,0 kB) disalin, 18,6707 detik, 0,1 kB / detik0m18.672s nyata
pengguna 0m0.000
sys 0m0.004s
Btw, flag langsung sangat membantu, tanpa itu saya hanya bisa membaca 1 sektor dari 4 (vs 3/4 dengan itu). Namun, itu jelas memperlambat kecepatan transfer - setidaknya 5 kali lebih lambat bagi saya: 5MB / s vs 25MB / s tanpa tanda ini. Bagaimanapun, sekarang untuk bagian gddrescue (ddrescue) ..
waktu ddrescue -b512 -c1 -s4b -dnvD -i900343967b -o0b / dev / sda b.bin
Akan menyalin 2048 Bytes dari / dev / sda ke b.bin
Posisi awal: infile = 460976 MB, outfile = 0 B
Ukuran blok salin: 1 blok
keras Ukuran blok keras: 512 byte
Max_retries: 0
Direct: yes Sparse: no Split: tidak terpotong: tidakTekan Ctrl-C untuk menginterupsi yang
diselamatkan: 1536 B, hapus: 512 B, kurs saat ini: 53 B / s
ipos: 460976 MB, kesalahan: 1, laju rata-rata: 53 B / s
opos: 1536 B, waktu dari yang terakhir berhasil baca: 0 s
Selesai0m18.736s nyata
pengguna 0m0.004s
sys 0m0.000s
Seperti yang ditunjukkan di atas, telah mengambil jumlah waktu yang sama persis untuk eksekusi. Seperti yang diharapkan - statistik yang sama: 3/4. Namun, sementara saya bisa mengisi sektor bermasalah dengan 0x00 untuk dd (conv = sync), gddrescue sepertinya tidak memiliki fungsi ini? Sebaliknya, ia hanya melompati sektor yang bermasalah tanpa menulis apa pun ke posisinya dan melanjutkan dengan sektor berikut berikutnya (jika saya sudah memiliki data yang ditulis di atas sektor itu dalam file output - itu tidak akan ditimpa: kadang-kadang itu mungkin tidak diinginkan ). Saya tidak yakin bagaimana opsi -t (truncate) berfungsi untuk perangkat blok dengan gddrescue(saya kira, itu akan sepenuhnya menimpa dengan 0x00), tetapi pada file biasa, seperti yang diperkirakan, memotong seluruh file tanpa melakukan hanya dalam dimensi offset (yaitu -o1). Jadi, itu agak mirip dengan sinkronisasi dd , tetapi jauh dari sama karena hanya akan meniru fungsionalitas identicle JIKA Anda siap untuk menimpa seluruh perangkat / file keluaran.
Meskipun, berkat adanya opsi verbose dan kemampuan untuk mencatat sektor / blok buruk - gddrescue sepertinya pilihan yang lebih baik. Penting untuk dicatat, bahwa kedua aplikasi diluncurkan dengan (hampir) param identik.
Output dari
diff? .bin
kosong (keluar 0), artinya file-nya persis sama.
Sekarang ini adalah bagian yang saya TIDAK mengerti:
dd lambat bahkan pada hal-hal yang bebas dari kesalahan karena melakukan sedikit membaca dan menulis. Ini menghabiskan banyak waktu untuk mengunyah bagian-bagian yang salah dari drive, daripada membaca sebanyak mungkin hal-hal yang bebas kesalahan, kemudian kembali mengerjakan hal-hal yang sulit.
Tentang apa itu semua? Terutama bagian " itu menghabiskan banyak waktu mengunyah bagian-bagian yang salah dari drive, daripada membaca hal-hal bebas kesalahan sebanyak mungkin, MAKA kembali untuk melakukan hal-hal yang sulit "? Butuh jumlah waktu yang sama seperti yang ditunjukkan di atas (walaupun saya telah memeriksa sebagian kecil dari data, tetapi apakah itu penting?).
gddrescue menawarkan -r switch, yang harus mengontrol jumlah membaca ulang pada "bad sector", namun, dd tampaknya berjalan dengan -r0 selama ini (karena butuh waktu yang sama). Jadi, apakah opsi ini hanya untuk "pasca pemrosesan"? Apa yang saya maksudkan , adalah bahwa awalnya dd dan gddrescue tampaknya berjalan dengan -r0 dan dd tampaknya tidak mengunyah bagian yang salah lebih dari gddrescue (mereka berdua tampaknya berhenti di blok yang buruk untuk 15-18 detik memberi atau menerima, jadi apa masalahnya, bagaimana gddrescue lebih cepat ???)
Juga, untuk apa opsi -D (gunakan penulisan sinkron untuk file keluaran)? Saya belum melihat adanya perbedaan dari beberapa pengujian yang dilakukan.
Adakah yang bisa mengomentari semuanya? Terima kasih.