[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