Can someone whether S.M.A.R.T. fixes bad sectors or just reports them

percepts

Honorable
Jan 23, 2014
11
0
10,520
I just had a problem with some bad clusters on my HD which caused copy reads to fail. Running chkdsk fixed them.

BUT what is the point of SMART if it doesn't automatically fix these bad sectors so that OS (Windows 7) and hard drive skips around them? I thought SMART was supposed to take care of that.

It may be the files were corrupted so copy failed but chkdsk found and repaired bad clusters so SMART wasn't/isn't doing that.

Maybe my expectation of what SMART does is too high but I don't see what is the point if it doesn't fix the problem. Windows 7 doesn't auto alert me of a problem so it seems it just collects data about stuff and keeps quiet about it.

What's going on?

Thanks
 
How do you expect SMART to know the sector is bad until you try to read it? it can't attempt to reassign it until it knows its bad. And all it can attempt to do is relocate. obviously if it cant read the bad data your going to have corrupt files anyway.
 

casper1973

Distinguished
Dec 30, 2012
942
0
19,360
SMART does attempt to repair certain sector errors if detected but is more focused on monitoring and reporting, as the name suggests (Self-Monitoring, Analysis and Reporting Technology)

Also a SMART tests is very short, can be counted in seconds, while a CHKDSK can take 1-2 hours to complete so naturally it is more thorough.
 

percepts

Honorable
Jan 23, 2014
11
0
10,520
BUT since SMART is actually on the hard drive it is very very fast at being able to determine if a sector is bad when you try and read it and should be able to fix it pronto too.

Of course chkdsk takes a long time. It does the whole drive in one go. SMART works on a sector basis in realtime when you try and access that sector. So I assumed (perhaps incorrectly) that if windows tries to get some data, SMART inside the hard drive will find this area of disk is bad, try and fix it and either return fixed data (and update reallocated table) or error to OS which should be able to soft fail the read with a notification. But NO, the OS hangs trying to read the data.

Now whether that is actually the OS or the hard drive repeatedly trying to read from the disk I don't know. I figure the drive should re-try a fair number of times before giving up and either sending error back or reallocating the sector.

either way the OS shouldn't just hang if SMART is any good. Perhaps it isn't so SMART after all or is it the fault of windows.
 

popatim

Titan
Moderator
The R in smart does not stand for repair. Smart makes no attempt to repair your drive, it simply logs problems and what your drive has done and reports them when asked. Thats it.

The drives firmware is what attempts to recover data from failed sectors, not SMART. Blaming SMART is like blaming your report card for bad grades.

You also have erroneous preconcieved notions about how a drive handles bad sectors. Desktop drives lack TLER (and the like) and will spend eternity trying to recover data from a failed sector if you let them. They do not report the error and move on after a certain amount of time. This is what is producing your lags and hangs and is intentional. Drive makers want to give the drive every chance possible to recover your data.

If you want TLER type activity then please purchase a drive intended for raid's. They will only spend about 7 seconds attempting recovery from a failed sector before just marking it bad, losing your file, and moving on to the next one.
 

percepts

Honorable
Jan 23, 2014
11
0
10,520
I've taken full remedial action. Deleted partion and repartioned into two leaving the one with bad sectors without a drive letter or folder name so effectively its completely redundant area of disk. All data from original partion moved to newly defined partion which doesn't have any bad sectors.

Since this is first time I've encountered anything wrong with this drive I'll just monitor it and if it gets any worse I'll replace the drive. Infact I never knew there was a problem until I tried to backup some old data which has never been backed up before.