I am in the middle of a failing drive data recovery process (see How can I find out which files are lost through a ddrescue recovery atempt?). I must say that I have no experience with disk management at this level. Following the accepted answer there, I have done this:
- Made a copy of the failing disk with
ddrescueand processed the mapfile to use with
debugfs. I counted 248 block checks.
- Upon running all those
testbcommands I found that 236 were "not in use" and 12 "marked in use". This was the first surprising result, since the disk was almost full.
- I did
icheckon those 12 blocks and found, to my greater surprise, that 8 of them gave a "block not found" output. I haven't been able to find out what this means, since people mention reading errors and whatnot, but I am doing all this on the new disk.
- Of the remaining 4 blocks, I obtained the inodes and with
ncheckfound the 3 supposedly corrupted files (two files were the same because two bad used blocks had the same inode).
Assuming that my code and calculations are correct (you can find the data and Python code in https://filebin.ca/3KZLnN60uZrl/rescue2.7z if you are curious), is the final result of 3 corrupted files correct? Or at some step things don't mean what I thought and there may be other files that I can only locate with a different procedure?