Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a hard disk that I scanned with TechTool and it reports one bad block. As far as I can tell, TechTool only scans and reports a failure. It doesn't fix anything.

Back in the day, Norton Disk Doctor did the job of scanning and flagging (remapping) bad blocks on the Mac. Today we have various tools for fixing up HFS+ directory errors (Disk Utility, fsck, DiskWarrior, TechTool), but I don't know of any tool that will do a surface scan and fix the bad blocks too.

What software is available for this?

If I know the address of the bad block, is there a low-level terminal utility for marking it?

share|improve this question
2  
Modern HDDs remap bad blocks automatically upon failed read operations. The only problem is losing data in that block, which may render a file unreadable/broken, or maybe introduce an error into FS - for that, use your system's checkdisk/fsck (I'm not that familiar with Macs). [Sometimes bad blocks are the result of power loss, and not the hardware problem; this is fixable, but a different topic.] –  chronos Jun 2 '10 at 22:45
2  
@chronos There are plenty of modern HDDs that only remap bad blocks automatically upon failed WRITE operations, not read. I've worked with plenty of recent hard drives that will keep failing to read the same bad block again and again and again, but as soon as you write to it, the problem is fixed. –  Spiff Jun 4 '10 at 0:23
1  
@Spiff - you are correct, I made an error trying to avoid lengthy explanation of how block's data and CRC fields work together to ensure data integrity, and thus requiring a write operation to check if its a physical block problem or just corrupted CRC (which is fixable). Actually, I am not aware of any modern HDDs performing remap on read... –  chronos Jun 4 '10 at 5:33
    
There is a thing to consider: my experience of 'fixing' Pending sector on a NTFS partition consisted of 1) identifying the exact data sector, 2) writing to it, and 3) resetting internal NTFS bad sectors counter (which was the only step I documented at bogdan.org.ua/2010/03/01/…). I am not sure if HFS+ also maintains such a counter of bad blocks - if it does, that may be an additional problem, if you want to recover that single sector. –  chronos Jun 4 '10 at 5:46
    
Fixing bad sectors on Apple Snow Leopard (2009-10-30) –  Graham Perrin Apr 1 '13 at 18:38
add comment

6 Answers

up vote 6 down vote accepted

I don't know of any tool that will do a surface scan and fix the bad blocks too.

What type of a Mac and what type of hard drive are you having problems with?

I doubt you will find any software tools to "fix" bad blocks, at least for recent hardware. I don't know when it started but some time back the ability to remap a bad sector was merged into the firmware of the hard drive.

If you look at the S.M.A.R.T. registers for your drive with a tool like SMARTReporter, you should see an entry with ID number 05 and title "Reallocated Sectors Count". This is the number of bad sector's which the drive has remapped.

Perhaps Disk Warrior's "Bad Block" is referring to something else? (I couldn't guess what that might be though).


Update in reply to comment (below):

SMARTReporter appears to be a rather "quirky" utility. You can in fact query & display the contents of a drive's S.M.A.R.T. registers, you just have to jump through unexpected hoops to do it.

In the SMARTReporter FAQ you can find this tidbit:
Can SMARTReporter tell me exactly which S.M.A.R.T. test is failing?
Yes, starting with version 2.4.5! Right-click the drive in the drive-list in the preferences window and select "Check S.M.A.R.T. attributes".

Another SMARTReporter quirk is that cut'n paste apparently only works in these display windows when you use the menu bar entries. The keyboard shortcuts & mouse "right-click" context window won't do it. On the other hand, SMARTReporter IS free. ;-)

But I digress ...

Curiously, SMART Utility calls the drive "Failing" when all other utilities show it as "Verified". It shows 1 Pending Bad Sectors. So, how do you change a "pending" bad sector to a "removed" or "reallocated" one?

My understanding is that you would not do it. The drive's firmware is supposed to do it automagically on its own. Note what it says in the table in the Wikipedia S.M.A.R.T. article.

  • 05 Reallocated Sectors Count
    Count of reallocated sectors. When the hard drive finds a read/write/verification error, it marks this sector as "reallocated" and transfers data to special reserved area (spare area). This process is also known as remapping, and "reallocated" sectors are called remaps.
    This is why, on modern hard disks, "bad blocks" cannot be found while testing the surface – all bad blocks are hidden in reallocated sectors. However, as the number of reallocated sectors increases, the read/write speed tends to decrease.
    The raw value normally represents a count of the number of bad sectors that have been found and remapped. Thus, the higher the attribute value, the more sectors the drive has had to reallocate.

  • C5 Current Pending Sector Count
    Number of "unstable" sectors (waiting to be remapped, because of read errors). If an unstable sector is subsequently written or read successfully, this value is decreased and the sector is not remapped. Read errors on a sector will not remap the sector (since it might be readable later); instead, the drive firmware remembers that the sector needs to be remapped, and remaps it the next time it's written.

So if the above is true then apparently the Pending Sector Count needs to be interpreted cautiously. The sector read error most likely occured during the disk scan you did earlier with TechTool. (BTW, do you mean TechTool Deluxe 3.1.3?) Since TechTool probably didn't try to write the sector, it was not (yet) reallocated.

Can that be done without a reformat?

I think a "reformat" would only accomplish something if the format wrote to every sector on the drive. I do not know whether a standard (non-secure) erase with Disk Utility ... which is what I believe you mean by a reformat in the context of a MAC ... would accomplish this.

If you did this it would be a very time consuming task. I recently did something like this with a 500GB laptop drive and it took a tad under 2 1/2 hours to complete. Of course, you'd have to add in the time to (hopefully) restore your system from your (hopefully trustworthy) backup.

It is not clear to me that there is a need for you to attempt to actively force this to be "corrected". Supposedly the drive's firmware should handle this on it's own the next time there is an attempt to write to bad sector. Also, it seems likely to me that the offending sector is not currently being used as part of any file. TechTool just "stumbled across" it while scanning all sectors of your drive.

But if you wanted to attempt to force a correction then I guess you'd have to do something which would force a write to that sector. It doesn't seem worth the effort though. I would just continue to back up your files and keep an eye on your drive in case it starts to degrade further.

share|improve this answer
    
This is for my iMac internal SATA HD. SMARTReporter doesn't say much beyond "Verified" but another tool called SMART Utility has all the info. Curiously, SMART Utility calls the drive "Failing" when all other utilities show it as "Verified". It shows 1 Pending Bad Sectors. So, how do you change a "pending" bad sector to a "removed" or "reallocated" one? Can that be done without a reformat? (Yes I'm backed up, but in the interest of saving time.) –  Andrew Vit Jun 2 '10 at 23:11
    
In addition to what I said in my update above, my personal preference is to run the drive manufacturer's diagnostics. Perhaps it's more than is really needed, but I figure "Why not?" But it beats the heck out of me how to do this for an iMac. Typically, the diagnostics are distributed as a bootable CD image, but I don't believe any of them will boot on an Intel Mac. To get around this I usually remove the drive and mount it in a Windows PC. However, I believe removing the drive from an iMac can be a real PITA which I would not recommend to most. <sigh> –  irrational John Jun 3 '10 at 20:51
    
@Andrew Vit - it might be the case that writing to that Pending Bad Sector will fix it (remove the sector from the list of Pending without adding to the list of Reallocated). –  chronos Jun 4 '10 at 5:49
1  
For the record, ended up doing exactly that: reformatted with the "write zeros" option which took some time, then cloned back from my backup. My "pending" bad block that was being reported in SMART Utility went away: it just disappeared and the drive shows no bad blocks now... /shrug/ –  Andrew Vit Jun 6 '10 at 8:43
    
@Andrew Vit: Thanks for updating with your status. I always appreciate finding out how the story ends. If it makes you happy, then no doubt it was worth the trouble. But IMO the "write zeros" reformat was overkill. The sector probably wasn't being actively used and would (probably) have been remapped if/when you did use it. Out of curiousity, could you check your SMART values again and see if the sector was in fact remapped? (Reallocation count changed from 0 to 1?) Or whether it was "just a corrupted CRC", a possibility that chronos mentioned in an earlier comment? –  irrational John Jun 6 '10 at 12:35
add comment

If you're seeing bad blocks when you run a filesystem integrity check, the hard drive has most likely already exceeded the number of blocks it can remap, and has exhausted its "spare" sectors. You should backup your data immediately (if you haven't already) and replace the drive before the problem gets worse and you lose your data.

I'd suggest downloading smartmontools and GSmartControl to view the SMART diagnostics as another check, if you aren't sure which SMART diagnostics to trust.

If the SMART diagnostics are reporting no reallocated sectors (or if the VALUE column for "Reallocated Sector Count" is still well below THRESHOLD), there is an easy way to perform a surface scan and remap the bad blocks at the same time. (Note: make sure to backup your data first!)

The easiest way to force the drive to do its own bad block remapping is to boot from an Ubuntu Live CD, then open a terminal and run this command:

sudo badblocks -nvs /dev/sda

This will do a non-destructive random read-write test on the first drive, remapping bad sectors along the way.

If you have more than one hard drive, you can replace /dev/sda with /dev/sdX, where X is lowercase letter. You can get a list of all hard disks (/dev/sdX devices) by typing this command:

sudo fdisk -l

Since you're using Mac OS X, which is based on BSD, you might also want to read up on badsect and bad144, which are the built-in BSD command-line utilities for dealing with bad blocks.

share|improve this answer
    
This is going to take a while: Testing with random pattern: 0.15% done, 27:02 elapsed. (0/0/0 errors) –  neu242 Aug 12 '13 at 9:27
    
Alternatively, if you have unix tools installed on a different startup disk, you can download and build e2fsprogs.sourceforge.net which contains badblocks. Then just unmount the disk you want to check and run badblocks on it. –  Roger Feb 24 at 4:08
add comment

My experience with SpinRite from grc.com has been very positive. I've managed to recover at least 4 disks that have failed every other attempt to repair them. The only downside is that it requires a BIOS-based machine, meaning it won't work on modern EFI-based Macs. The good thing is that just about any other p.o.c. PC will run it, from floppy, CD, or flash drive. I've not found anything else that comes close in terms of actually inspecting the contents of individual sectors and recovering the data in what every other utility discards as a bad block.

share|improve this answer
add comment

I've heard good things about SpinRite from GRC, but never tried it myself.

share|improve this answer
    
Sadly, SpinRite would likely do more harm than good on an already-failing drive. :( –  rob Jun 3 '10 at 22:45
    
@rob harm in what way? SpinRite seems to combine a number of approaches, with an emphasis on extraordinarily good care –  Graham Perrin Apr 1 '13 at 15:08
1  
@GrahamPerrin for one, it doesn't make sense to attempt to recover your data and write it back to the same known defective media. But ignoring that, as soon as SpinRite encounters an unreadable block, it tries and retries repeatedly before continuing. In the meantime, the drive can continue to degrade to the point of total failure (either "naturally" or possibly as a result of extra wear & tear caused by SpinRite's constant retries). I've run SpinRite on a failing 250 GB hard drive in the past, and it ran for more than a month without completing. In short: try ddrescue and other tools first. –  rob Apr 1 '13 at 22:10
1  
@rob thanks, I didn't realise that. GRC Tech Support confirmed to me that recovery to something other than the disk from which recovery is attempted is not supported in the current version of SpinRite. –  Graham Perrin Apr 19 '13 at 19:50
add comment

It sounds like most drives will only reallocate a bad block on a write, so that's how all processes 'fix' bad blocks. If you're willing to reformat, lots of people talk about doing a low-level format that writes zeros (Disk Utility will do this).

The only tool on the Mac that I found that will do this is "Speed Tools". When it finds a bad block it will write a zero to the block (even if it's in a file... the thinking is that it's already bad).

http://www.intechusa.com/

share|improve this answer
add comment

Attention first to the comment by @chronos … think: dataloss. In an edge case, a fix may make recovery of data impossible.


Amongst the utilities that I have used on Macs, one is outstanding for unmistakable alerts such as this:

enter image description here

Warning

The operation you are about to perform may cause data loss.

To spare a bad block … write data to the drive. This will most likely result in volume or data corruption if a bad block is found and spared.

You can learn about such things before purchasing the product – refreshingly honest.

(To appreciate the risk of dataloss, see for example the SpinRite documentation linked from the Why care? part of my answer under How to check whether there is bad sector on a USB harddisk on OS X?)

For its unmistakable warnings, for pre-purchase satisfaction and more, this answer is my vote of confidence in:

Drive Genius 3

share|improve this answer
    
In Ask Different there's a comment from @BSDGuy –  Graham Perrin Apr 19 '13 at 19:40
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.