Saya telah menjalankan DDRescue pada drive 3TB selama hampir 2 bulan dan saya telah memulihkan sekitar 2.8TB ketika sistem crash dan file log yang saya gunakan rusak. Saya dapat memulihkan sebagian file log itu tetapi ada celah di sektor-sektor dalam log yang dipulihkan yang membuat DDRescue mengembalikan kesalahan ketika saya meluncurkannya lagi. Berikut ini adalah tautan transfer basah untuk melihat file log: https://we.tl/58aSOeCOJo
Saya mencoba mengedit file log untuk mengeluarkan data yang korup tetapi karena ini menciptakan 'celah' dalam kronologi sektor, DDRescue tampaknya tidak seperti itu.
Terima kasih atas bantuannya, saya benar-benar ingin menghindari menjalankan kembali DDRescue selama dua bulan untuk menyelamatkan drive ini ...
sumber
Jawaban:
Untuk membuat jawaban ini setidaknya sebagian bermanfaat bagi pengguna lain dengan masalah yang sama, mari kutip bagian penting dari log Anda di sini:
Anda mengidentifikasi baris tepat sebelum sampah biner menjadi yang terakhir valid. Ia mengatakan
0x2BA923A0000 0x00010000 *
dan itu adalah nomor baris 880829 dalam kasus Anda. Masuk akal karena garis setelah sampah memiliki posisi lebih rendah (angka pertama), mereka sepertinya menduplikasi garis sebelumnya.aku melakukannya
dan lari
ddrescue
(denganinfile
menjadi perangkat loop dari file jarang besar, seharusnya tidak masalah). Ia mengeluh tentang garis 583658.Ini adalah garis dengan lingkungannya:
Untuk memperbaiki ini, Anda harus mencakup seluruh rentang dari
0x186C6940200
untuk0x24AA9540000
, jadi logfile berdekatan. Panjangnya0x24AA9540000
-0x186C6940200
=0xC3E2BFFE00
. Seluruh baris 583658 harus:dimana
?
berarti blok yang belum dicoba.Saya membuat perbaikan dengan
File log yang dihasilkan valid untuk
ddrescue
.EDIT
Sebenarnya kita tidak tahu apakah itu sama dengan 800 GB. Ada sebuah alat
ddrescueview
(dengan GUI, tersedia sebagaiddrescueview
paket di Ubuntu) yang akan menunjukkan kepada Anda di mana tepatnya blok yang belum dicoba ini kami perkenalkan. Perhatikan posisi saat ini di tempat lain:Saya telah mengisolasi bagian "setelah sampah" ini, baris 129289 terakhir:
Perintah ini akan menunjukkan kepada Anda baris yang ada di
extra.txt
tapi tidak dilog3new.txt
:Outputnya adalah
Ini berarti hanya baris terakhir (tidak lengkap) dari setelah sampah tidak ada sebelum sampah di aslinya
log3.txt
. Maaf, menurut sayalog3new.txt
sudah menjadi yang terbaik yang bisa Anda dapatkan.sumber
dd
atau bahkancat
akan melakukan,ddrescue
adalah pilihan yang aman. - "Dan apakah ada opsi di DDrescue yang memungkinkan saya untuk 'membandingkan' dua sektor per sektor?" - Kurasa tidak. Jika tujuan Anda adalah membandingkan drive 4TB ini dengan drive 3TB yang baru setelah Anda menyalin yang terakhir, gunakancmp
dengan-n
pilihan. Jumlah byte yang akan dibandingkan adalah kapasitas yang tepat dari drive yang lebih kecil.