New Linux Tool - HDDSuperTool

pclab

Moderator
maximus":4gvncau2 said:
pclab":4gvncau2 said:
Tried it today, but couldn't make it work...
nuno@nuno-System-Product-Name:~/Transferências/hddsupertool-1.1-1.0$ sudo hddsupertool -t /dev/sdf -f ata_scan_device.txt
sudo: hddsupertool: command not found
The command is right, yes?
Second, Linux may not allow it to run as a program and will actually produce the same error. I usually fix that by right clicking on the executable and check the box in the properties tab to allow running as a program. I actually don't know if you can change that property from the command line.
/quote]

Just to know, I use Kubuntu.
I have tried this, and it still cannot execute. In the properties box, the Executable option is selected.

Another question: can it check USB drives?

Thanks
 

maximus

Member
Is your OS 32 bit or 64 bit? The executable provided only works on 32 bit. If tried on 64 bit it will either give permission errors or say it doesn't exist, I can't remember which. If so, let me know and I will build the 64 bit version later and post it.

Also, are you trying to run it from a USB drive? Linux does not like that. It also does not like to run executables from an NTFS partition. Security improvements can be a pain in the ass.

Here is an option. Copy it to a place where it can execute. After that you can run it from anywhere without adding the ./
cp hddsupertool /usr/local/bin/hddsupertool

Can it check USB drives? Only if they are ATA devices, and you are at the mercy of the USB to ATA adapter as to if it works and what commands are supported. And only in passthrough mode. It cannot work with regular USB flash drives.
 

pclab

Moderator
Hey

It's the 64bit version.
I want to check USB connected drives, like badblocks does.
Thanks
 

maximus

Member
maximus":v2f1k1s5 said:
The scripting is very powerful. Could it do that? Actually, maybe, but I am not sure about about the overhead. I will have to think about that. And that could be a lot of work to put into making a script when I could be spending that time on the real thing. But I guess it comes down to being able to produce something productive in the least amount of time.
FYI
I looked into it, and the overhead is too much to do a complex cloning tool with scripting. If it even goes below reading 256 sector chunks it slows down due to the amount of time it takes to process the script lines. On the plus side, when I was experimenting I ended up finding and fixing a bug in the scripting :?
 

maximus

Member
Jared":1uwgf74v said:
maximus":1uwgf74v said:
Jared":1uwgf74v said:
Edit: To clarify, it can perform soft resets. A hard reset is a power cycle. I don't think this can be done with a software only tool.

No, there's a difference between a hard reset and a power cycle. Hard reset tells the drive to reinitialize and reload it's service area, while I don't know the specific command, it can be issued via ATA.
I have done some research on possible reset methods. The first thing is that for IDE drives, I have not found any way to perform a hard reset other than a power cycle. I have seen mention of a pin 1 reset to perform a hard reset, but have found nothing in any controller documentation that would support the ability to do that. So for IDE drives we are currently limited to a software reset, and an external power cycling method. It may be possible to modify the cable or make an adapter that could perform a pin 1 reset with an external relay.

For SATA drives, there may be hope for a couple additional reset methods. The first is a COMRESET. This is the hard reset mentioned in the passthough documentation. This sends a comreset to the device, which is supposed to be more powerful than a software reset. The second is an HBA controller reset. This resets the controller, and also all drives on it. I am not sure how the OS would react to a controller reset.

Now the bad news. Both of these reset methods are for AHCI. I am not sure yet if there is a way to “cheat" and be able to send these commands in IDE mode. And I do not know if it would be possible to “hide” ports from the OS when in ACHI mode. It may be possible to disable a controller in the OS, but that would require adding a separate SATA card in the computer so that the normal ports would still work (this may be more friendly for a controller reset). I have not yet tried to communicate with devices using AHCI mode, but I may end up having to try and see what can be done. And I don’t know when I am going to find the time to do this, so it may be awhile before I have any results.
 

maximus

Member
After taking a break from my programming and testing, I have now done a small test.

I have found that it is very easy to modify an IDE cable to perform a pin 1 reset (hard reset). So I tested this on an old WD 20GB drive. The testing was crude (manually shorting wires together), but the result was clear. The pin 1 reset on that older drive always added to the amount of time before it would respond when an error was encountered. So in this case it was counterproductive. No matter what, there was no way to reduce the time to recover from a read error.

So this leads me to ask: Is there really any benefit to a hard reset on a SATA drive? Is the COMRESET even worth looking into? I have already seen where a simple software reset can be very beneficial on some drives but not on others. The question then becomes: On the drives that the software reset doesn’t help, does any form of possible hard reset do any better? Can anyone provide actual results from some other tool that would support this?

The only place I have found information claiming the SATA reset methods are useful is also the same place that still claims that long sector reads are useful. So I question the validity of that information…
 

Jared

Administrator
Staff member
Hard resets are useful when the drives become unresponsive and won't even soft reset. As for soft resets not being useful on some drives, I think it's related to the timeout setting. Some drives will become unresponsive if the timeout is too long, and stay busy despite soft reset command.
 

maximus

Member
I have not had much time to work on the project lately. But I did come across some interesting information that may just be the key to working with AHCI mode. It is possible to tell Linux to ignore a drive. It can be done on a temporary or more permanent basis. I tested the temporary method on a problem drive, and it would appear that Linux did not make any attempts to probe the drive, and it did not show up as a device. I am providing a couple links below. I am not sure when I will find the time to actually work on adding AHCI ability to HDDSuperTool. And I am still not sure what will happen when actually working with AHCI mode. But at least there is now a bit of hope for hard resets.


How to tell Linux Kernel > 3.0 to completely ignore a failing disk?
http://unix.stackexchange.com/questions ... iling-disk

How do I add a kernel boot parameter?
http://askubuntu.com/questions/19486/ho ... -parameter
 
Top