bug-ddrescue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-ddrescue] SMART, reallocation, and retries


From: Sam
Subject: Re: [Bug-ddrescue] SMART, reallocation, and retries
Date: Thu, 15 Aug 2013 16:59:47 +0100 (BST)

> From: Franc Zabkar <address@hidden>

> To answer your questions/objections, Seagate's most recent Product Manuals 
> still list several obsolete ATA "Retry" commands as being currently 
> supported.

Your follow-up email and that from Christian Franke, show the real situation. 
From ATA-5 onwards, such obsolete commands may still appear to be "supported" 
by the drives, but that is for backward compatibility with old software etc. 
There is no requirement for these commands to have any effect on later drives.

> I'm not a programmer (although I have written programs for head alignment 
> and data recovery), so I don't understand the difficulty in using such 
> commands.

Look at the source code for ddrescue. You will see that not a single ATA 
command is currently issued, and there is no mechanism in ddrescue to do so.  
The APIs for sending those commands vary specifically to each OS, sometimes 
even between different OS / kernel versions, and are sometimes not even 
publicly documented. Again the earlier reply from Christian Franke explains 
useful details.  Who is going to test & maintain that code, across a wide range 
of hardware & OS versions etc., and keep testing as those OS APIs change over 
time?

One of the great strengths of ddrescue is that it is interface-agnostic, and so 
can be used for ATA, SATA, SAS, SCSI, FC (etc.) or even old MFM drives & floppy 
discs (on hardware/OS that supports them!), as well as flash media cards like 
SD, which don't use ATA commands at all.  As soon as any interface-specific 
code is introduced into ddrescue, the impact on devices which don't use that 
interface has to be considered and mitigated.

> As for ERC, could it not be incorporated into ddrescue without using smartctl 
> as 
> a front-end?

Technically that would be feasible (i.e. add a call to exec smartctl, which 
would have to either be in the $PATH or in a fixed directory, which is another 
minefield for inexperienced users), but I don't recommend that approach as it 
then causes a dependency between 2 independent pieces of software. This is not 
the Linux/Unix way. Instead use one piece of software which is good at one 
task.  If you have 2 tasks, use the best / preferred software (or write your 
own) for each task.

> I participate in several storage forums and the typical user 
> ideally wants something like 
> "fix-my-hard-drive-with-a-single-click.exe". :-)

Their lack of understanding of the complexities, does not mean that those users 
can realistically expect to have such "software.exe", especially not for free. 
:-(  If they are convinced that this is possible, then they can try to write 
it. Then they will discover just how difficult it is! I find that sometimes 
people who are ignorant of a given topic (I really mean ignorant, which is not 
a slur, and is not the same as stupid) just don't know enough to realise that 
they are asking for "the Moon", even though they couldn't make a firework 
rocket themselves, let alone make a Saturn 5! :-)  After explaining it to them 
(so then they are no longer ignorant of the details) they soon realise that 
their original request & expectation were not sensible.

Regards,

Sam



reply via email to

[Prev in Thread] Current Thread [Next in Thread]