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.
Bergantung pada kapan hdd Anda diproduksi dan juga pabrikan, dan versi firmware apa yang dijalankannya, dengan hdds modern, ketika bad sector terdeteksi, mereka dikeluarkan dari penggunaan oleh firmware dan drive tahu untuk melewati bad sector. Jadi, gagasan "menyelamatkan" hdd dari bad sector mungkin bisa diperdebatkan dalam hal itu. Pertanyaan apakah sektor buruk yang dulu pernah memiliki data yang valid tampaknya menjadi solusi kasus yang Anda cari - tidak ada permainan kata pun!
Ada beberapa perangkat lunak di grc.com yang disebut spinrite 6 yang mengklaim dapat memperbaiki hdds dengan bad sector. Ini adalah perangkat lunak berbayar, dan saya belum pernah mencobanya. Perlu dibaca, terutama jika seseorang mencoba untuk "menghidupkan kembali" sebuah hdd dan itu benar-benar berfungsi seperti yang dijelaskan. FAQ di grc.com mengenai spinrite 6 menunjukkan bahwa ada jaminan uang kembali 30 hari (dan tidak ada versi uji coba atau gratis). Catatan: Saya tidak berafiliasi dengan grc.com, saya juga tidak merekomendasikannya untuk situasi Anda. Saya hanya tahu itu ada dan mungkin berfungsi seperti yang diiklankan, hanya saja, jangan mengambil kata-kata saya untuk itu - emptor peringatan.
Berkenaan dengan menilai apakah gddrescue "lebih unggul" daripada dd setidaknya dalam hal mampu membedakan antara jumlah pembacaan disk yang dilakukan pada sektor bermasalah, sejumlah bacaan pada sektor yang buruk (karena ditandai sebagai non- sektor fungsional dalam daftar sektor buruk yang disimpan dalam daftar firmware) bagi saya tampaknya tidak akan berguna dalam penggunaan kualitatif gddrescue atau dd.
Anda mungkin bermanfaat membaca halaman web, dd (Unix) di: https://secure.wikimedia.org/wikipedia/en/wiki/Gddrescue#Recovery-oriented_variants_of_dd
Anda mungkin juga perlu melihat: Cara Membuat Gambar dari Hard Drive yang Rusak menggunakan UBCD, dd-rescue dan P2 eXplorer di: http://www.myfixlog.com/fix.php?fid= 21
sumber