May 27th, 2019, 22:53
The GParted error message in your original post I suspect is showing the output of dumpe2fs -h ExtPartitionName. And it shows the meta data of a damaged Ext superblock with 553.46GB of space used out of 3.63TB, or about 15%. And viewing the HDDSuperClone log file you posted shows mostly a sea of green for the first 43% of the drive. So certainly at this point most user data has been imaged. The task now is to extract the data from the 43% partial image.
Block count: 975575808
Free blocks: 830488873In my remote data recovery practice I use a technique I call drive hybridization which takes a partial image and joins it to the unimaged remainder of the source drive to create a hybrid drive that is both part image and part hard drive which can then be used for data recovery operations. In today's world of multi TB drives, performing full drive imaging can be very inefficient and places unneeded stress on the source drive. If we say that copying one sector one time equals one unit of drive stress then full drive imaging would earn the max stress score of 100% while the stress score for partial imaging can be considerably less. And really what's the point of imaging TB's of nothing but zeros?
Anyway if you would like help with your case let me know.
May 28th, 2019, 11:29
May 28th, 2019, 11:53
May 28th, 2019, 17:13
Space used = block count - free blocks * block size
There are several alternate super blocks spread out across the filesystem. It is likely one of them is good and can be used to mount the filesystem.
So I think a hybrid drive would work well in your case to mount with one of the alternate super blocks if you have what looks like a 43% image that is 99% good.
I offer help for free / donation. Currently there is a 9 day waiting period for the free pricing tier.
Good luck with the Vet.
May 28th, 2019, 18:37
In this particular case, what's very inefficient is spending hours copying hundreds of GB of 00s with 7 heads out of 8 when what I want is the missing blocks of metadata and (possibly) 115GB worth of actual data. But with the way those metadata files are organized it seems impossible at this point to do it another way. Had I known all that from the begining I may have been able to device a neat trick (what I wrote above seems to be on the right track), but now it most likely wouldn't be possible to dump all the required files from the source.
Well, I'll get something for this service, but not enough (by a long shot – let's just say it's a two digits figure)
May 29th, 2019, 1:11
One can never know what will happen with DIY recovery. That is why a pro will open the drive in a clean room and examine the heads before even powering on the drive, so they can make an assessment of what to expect. Even then, a head (or the drive) could die at any time during the recovery from unseen issues.
Since this is DIY without pro recovery, and you are on a very low / zero budget, you have to deal with the inefficiency of the cheap / free tools available. But think about this. The short term 60 day HDDSuperClone license can be bought for $25 USD, which should in most cases be long enough for a single recovery case. This gives the virtual disk option for the purpose of data extraction, to be able to target files without thrashing the drive, not to mention the ability to control the timeouts to potentially speed things up. Targeting files does require another 3rd party tool such as R-Studio or DMDE. A Linux license for R-Studio is about $80 USD last time I checked (recommended). DMDE is about $20 USD for a 1 year license (although it has more quirks and doesn’t work as well, but still can work, although I likely won’t offer any support using it). And if you play the free version game with DMDE I think you can do up to 4000 files at a time, but only one directory level at a time. So with some work, it may be possible to do the needed recovery process with the free version of DMDE.
So a 60 day temp HDDSuperClone license is $25, R-Studio is $80, that is $105. That is cheap in the data recovery world. With DMDE the total would be $45. And if you try to go with the free version of DMDE and deal with the complications from that, now you are at $25.
The next step up from all of this is the hardware imagers that cost a few thousand dollars. I just felt the need to put things in perspective when looking at a low dollar DIY recovery.
May 29th, 2019, 5:37
May 29th, 2019, 18:11
I'll definitely think about it (the time-limited license at least), but it would be nice to propose some kind of demo version, allowing to experiment with the extra features without waiting for an actual case which may require them. Right now it is a very occasional service for me, like 3/4 times a year I have an opportunity (and some of those times I get nothing).
And while I understand that some special features are reserved for the commercial version, the very fact that you yourself released ddr_utility goes to show that little tools with quite advanced functionality exist in the freeware world and can go a long way. While ddru_ntfsbitmap is probably nowhere near as sophisticated as this virtual drive module, or as convenient since it doesn't allow to target specific files, it's already a significant improvement over the blind cloning of a whole large drive containing only a small portion of allocated data. And the two ...findbad tools are also very useful to deal with the damage done. Is there a chance that they could be integrated into HDDSuperClone at some point, and if not, why ?
May 30th, 2019, 15:38
No, those tools will not be implemented in hddsuperclone, for a couple reasons. First, there are things that I still don’t understand about the NTFS filesystem, so those tools are not as robust as they could be, and I don’t plan on digging any deeper. Second, processing a file system can be very complicated, and there is not always good sources of information on how they work (can you say “proprietary?”), which is why I chose to implement the virtual driver mode. I can leave the complicated part of processing the file systems up to other tools, and focus on working with the drive itself.
As for a demo version, probably not. I have given out a few short term licenses for testing purposes, but with the intention of someone actually spending time to test and report back results. I set the short term price fairly low so that if someone thought they wanted to try it out, they could without breaking the bank. In your situation with so few cases, it probably doesn’t make sense to purchase it. And your current case will likely be solved as best possible without the need. I wish the best for the recovery.
May 30th, 2019, 18:10
But I suppose that now the most efficient course of action would be to complete the clone in reverse from the very end, to at least get the most out of the black (non tried) blocks, instead of waiting for HDDSuperClone to reach that step on its own.
I won't deny that the time to get familiar with pro version may very well not been worth it in your case.In this particular case, I'll admit that the actual recovery may have been done in a fraction of the time with the “Pro” version (and possibly with a higher final success rate since it might have been possible to get all the still accessible useful sectors while all heads were still operational), but just to get up to speed in using the complete setup proficiently would have required about the same amount of time that it would have saved !(Of course, time spent learning something new is never lost.)
You might be able to find it by reading through the discussions, but the flaw is when the fragment location data is too big to fit in the actual MFT record, and is itself put into another record. I never got around to dealing with that, and that was also part of the cause of me deciding not to pursue file system level recovery, because it is just too difficult to figure out and keep up with. With the virtual driver, I can leave that to much better 3rd party software (R-Studio is awesome).But ddru_findbad, if I understood correctly, is already relying on Sleuthkit to perform the actual analysis.
In what circumstances could ddru_ntfsbitmap or ddru_ntfsfindbad (which is said to be more reliable and faster than the general purpose ddru_findbad for NTFS partitions) produce unreliable results ?
May 30th, 2019, 20:41
Ummm, THAT is what phase 2 does, it is a reverse pass to get the data that was over skipped from phase 1. Phase 2 is a compliment to phase 1, they are designed to get the most good data in the shortest time possible. Phase 3 and beyond can start hammering the drive by going back for the bad spots. But do whatever you want, even though the algorithm is designed to be as efficient as possible, because you know best. (sorry, nothing personal, but I get frustrated when people play with the options to the point of affecting the recovery process, just because they think they know how it works)
May 30th, 2019, 21:17
abolibibelot wrote:and was wisely advised to put the defective drive in the freezer overnight...
May 30th, 2019, 21:29
abolibibelot wrote:“...threshold overflow” => That's when there are too many detected bad sectors, right ?
June 24th, 2019, 17:35
mmstat /dev/sda
Cannot determine partition type (GPT or DOS at 0)
fsstat /dev/sda
Cannot determine file system typeJune 24th, 2019, 19:53
June 26th, 2019, 12:34
1) Phase 1 and 2 perform skipping, and anything skipped is still considered non-tried because it has not been tried yet. Phase 3 and 4 are for digging into the skipped parts.
2) If the file system is too corrupt or damaged, then those tools will not be able to process it. And I no longer support ddrutility. But what I do see is that you are running the file system commands against the whole disk, and not a partition. Not sure if that is the issue or not.
3) You can choose to mark fill the unrecovered areas. Then any file recovered will contain the marking data, and can be considered corrupt. In Linux you can use grep to search, there should be examples you can find for ddrescue, which will work the same.
4) That can only be explained by someone that truly knows how that file system works as it was designed. Ask Microsoft.
5) You did not attach the logfile, but from the screenshot I would suspect 191MB (from last run size). From the screenshot it also appears that the head was reading until half way through the recovery, and then developed an issue and possibly died. I can’t tell more without the actual log file.
June 26th, 2019, 17:50
Alright. But in a case like this, isn't it kinda overkill to let all phases finish, considering that (based on the general pattern) one head is known to read (almost) nothing at all ? (It already took several extra days once the bulk of the recovery was done to grind those black blocks and go from 3696,56GB / 92,395927% to 3736,55GB / 93,395248%, and again most of the extra recovered data consisted of empty sectors.)
There should be a warning saying that, based on the collected recovery data, if it becomes clear that one head is no longer functional at all, there would be little point in attempting to read further inside the areas corresponding to that head (and perhaps also strongly advising to have the drive serviced by a bona fide data recovery company, as the odds of a successful recovery with no replacement of the head stack assembly are low, especially if that head is already dysfunctional at the begining of the software-only recovery attempt).
5) Based on the log file, what is the exact size of each head's “stroke”, and hence the expected size of each error in contiguous files ? Is it supposed to be perfectly constant, or can it vary sligthly ? As I mentioned earlier, the bad head seemed to be reading something in some areas, albeit very slowly (whereas in most areas corresponding to this head nothing could be read at all) : does this mean that the head itself was randomly getting (barely and briefly) functional again (then why ?), or that, for some reason, the magnetic signal was slightly stronger in those areas, enough to pass the “readability threshold” of the bad head, if that makes sense, and allow it to get a successful read instead of noise ? {*}
June 27th, 2019, 16:56
Alright. But in a case like this, isn't it kinda overkill to let all phases finish, considering that (based on the general pattern) one head is known to read (almost) nothing at all ? (It already took several extra days once the bulk of the recovery was done to grind those black blocks and go from 3696,56GB / 92,395927% to 3736,55GB / 93,395248%, and again most of the extra recovered data consisted of empty sectors.)
There should be a warning saying that, based on the collected recovery data, if it becomes clear that one head is no longer functional at all, there would be little point in attempting to read further inside the areas corresponding to that head (and perhaps also strongly advising to have the drive serviced by a bona fide data recovery company, as the odds of a successful recovery with no replacement of the head stack assembly are low, especially if that head is already dysfunctional at the begining of the software-only recovery attempt).
5) Based on the log file, what is the exact size of each head's “stroke”, and hence the expected size of each error in contiguous files ? Is it supposed to be perfectly constant, or can it vary sligthly ? As I mentioned earlier, the bad head seemed to be reading something in some areas, albeit very slowly (whereas in most areas corresponding to this head nothing could be read at all) : does this mean that the head itself was randomly getting (barely and briefly) functional again (then why ?), or that, for some reason, the magnetic signal was slightly stronger in those areas, enough to pass the “readability threshold” of the bad head, if that makes sense, and allow it to get a successful read instead of noise ? {*}
June 28th, 2019, 9:51
Since my post yesterday went into a black hole after I edited it, here it is again (I have learned to write anything more than a couple sentences in a word processer before posting for cases just like this where the post just disappears).
It is up to you to assess the condition of the drive as the recovery proceeds. I can’t make the program smart enough to think like a human. All I can do is provide a tool with a user manual. It is up to the user to read and understand the theory of operation section, and make decisions based on that and how the drive is reacting.
To further follow up on this, I now see also the previous screenshot that the read size per head stroke is about 191-192MB. But this does change, it will be bigger at the start and get smaller towards the end. This is due to density changes because the physical diameter is smaller as it reads farther in. As for why it can read some data and not other data, I don’t have the answer. That is how a weak head works sometimes. I looked at the log and there are large sections where it did read some and others where it didn’t read any data (play with the options in hddscviewer, making sure to enable highlight good data). Sometimes density changes can affect the reading, but that is all I know.
June 28th, 2019, 20:07
It is up to you to assess the condition of the drive as the recovery proceeds. I can’t make the program smart enough to think like a human. All I can do is provide a tool with a user manual. It is up to the user to read and understand the theory of operation section, and make decisions based on that and how the drive is reacting.
I get that, but you also said that an end user who does not have a deep understanding of how the program's algorithm is designed and the intricacies of data recovery on a failing storage device (i.e. the vast majority of end users) shouldn't try to mess with it or even attempt to make case-by-case decisions...The fact that HDDSC (at least the commercial version) can indicate if one head is failing is already a step in that direction. What I don't know (because I haven't tried – as I said it was already getting too long with too little reward without going that far in that particular case) is how it deals with a bad head situation beyond phases 1-2. Does it try to read every single sector (which might be a suitable approach when dealing with actual bad sectors on the platters), which must be extremely long when nothing is readable over a large area (because of that head malfunction), or it there a point where it gives up and marks the area as “tried” anyway ?
Phase 1 is a copy pass forward with skipping. Phase 2 is a copy pass backward with skipping. Together they offer the best attempt to get the most good data first and fast from the good areas of the drive…… These two passes are the money passes. If after these two passes you don’t have a percentage complete in the upper 90’s, then you likely have a weak/damaged head, and the next phases could take a long time to complete.
Skips is the total number of times the program has skipped since the program was started. Skip runs is how many skip runs have happened since the program was started. If you see the run count growing, it likely means there is a weak/damaged head.
Phase 3 is a copy pass forward with skipping. But the skipping size for this pass does not self adjust, and skipping is based on the read rate instead of read errors. If the read rate is below the value of –rate-skip for two consecutive reads, it skips ahead the amount of –skip-size.
Phase 4 is a copy pass forward without skipping. This gets all the remaining non-tried areas.
All failed blocks larger than one sector (LBA) in size are marked as non-trimmed by the first 4 phases. Failed blocks that are one sector in size may be marked as bad if timeouts are not used.
Trimming reads each non-trimmed one sector at a time forward until a read error, and then backward until a read error. Any trimmed blocks larger than one sector are marked as non-scraped.
Dividing is only performed if trimming is turned off. If trimming is turned off, then 1 or 2 dividing copy passes are done instead. The default is for only one dividing pass, to activate the second pass use the –do-divide2 option. If there is only one dividing pass, then it reads the non-trimmed blocks with the cluster size / 8, and marks the failed blocks as non-scraped. If the –do-divide2 option is used, then the first dividing pass reads non-trimmed blocks with the cluster size / 4. The second dividing pass reads non-divided blocks with the cluster size / 16. The first dividing pass marks failed blocks larger than one sector as non-divided, the second pass marks them as non-scraped. Trimming has been found to be more efficient than dividing with scsi-passthrough mode. Dividing can be more efficient with ata-passthrough mode (not in the free version as the marking of reported bad sectors is disabled) and the direct modes (more so with direct mode when using timers), but how efficient depends on how the drive is reacting.
Scraping reads the non-scraped blocks one sectors one at a time forwards. Failed sectors are marked as bad.
Powered by phpBB © phpBB Group.