10

I have an out of warranty laptop that has an hdd with bad sectors. I say that because chkdsk /r got stuck for over 24 hours at certain %. I also left GRC's SpinRite running for 4 days. It is my understanding that these programs get stuck at certain places because they try to recover as much data as possible. I'm not interested in that. All important data have already been backed up. I'm looking for a solution where I can continue using this hdd and avoid buying a new one. I take full consequences of using a failing drive.

I'm looking for some tool that preferably non-destructively(to preserve current Windows/apps installs) would do something along the lines of:

if it can't read/write to a sector 3 times, mark it bad and move on.

I don't need programs to grind for hours/days at a time to recover as much data as possible. I'm looking for something to specifically quickly mark bad sectors.

  • Have you tried hiren boot cd. It has many options that can help you. – Ankur140290 Jan 9 '14 at 11:03
  • @Ankur140290 yup, it is my go-to platform. Alas it doesn't have tools for this specific task. – Mxx Jan 9 '14 at 15:43
  • When you ran SpinRite did you do it at level 1? – Scott Chamberlain Jan 9 '14 at 22:08
  • @ScottChamberlain yes, I ran it at lvl1 – Mxx Jan 9 '14 at 22:10
  • 1
    That's why I didn't post those as answers ;) – Starson Hochschild Sep 25 '14 at 13:26
10
+100

After some deep digging, Easeus Partition Manager Home Edition has a feature called Disk Surface Test, which apparently reads the blocks off a drive and spots and marks the bad sectors, and based on what I've found so far, it makes no attempt to recover those blocks. More information on this page about the software's disk surface test: http://www.partition-tool.com/easeus-partition-manager/disk-surface-test.htm and here for download link: http://www.partition-tool.com/landing/home-download.htm (big green button at bottom of page).

Specifically, it says on the disk surface test page:

When it finds bad sectors, it will mark those sectors as bad with red color so that the system knows not to use them. It may allow them to be read, in case the data stored on the bad sector is still accessible, but they cannot be written to.

so I think this may just be what you're looking for.

  • This looks promising. I'll give one a try and let you know. – Mxx Jan 9 '14 at 5:08
  • 3
    Didn't know that bad sectors can have different colors... – Thomas Weller Jan 10 '14 at 11:52
  • 1
    Digitally speaking, colors are just bits and bytes too... – Caleb Xu Jan 10 '14 at 15:56
  • So I finally got around to trying this app and so far results are not much different. At about the same % its scan speed also slowed down to a crawl. I left it running overnight, but in the morning I couldn't get screen to turn on, so I had to powercycle it..Don't know what state it was in at that point. – Mxx Jan 15 '14 at 23:06
  • Oh well. Good luck with your drive though! – Caleb Xu Jan 16 '14 at 1:08
7

Linux includes a utility to do this for these bad blocks.

/sbin/badblocks -sn -b512 /dev/sda

For maximum speed, make sure the number after -b matches your disk sector size. 512 is a safe default.

-sn means a progress meter will be displayed and a non destructive read-write test will be performed.

As every block on the disk will be read and then written to, the drive's firmware will make note of any errors and will reallocate bad sectors accordingly.

  • 1
    Will it work if I point it to NTFS drive? – Mxx Jan 15 '14 at 23:08
  • 1
    Yes, it takes advantage of the drive's firmware, and does not depend on the file system. – Noishe Jan 16 '14 at 23:16
4

If chkdsk /r hung for hours, then your drive is likely severely damaged.

Assuming all of your data is backed up off the drive, perform a full zero/format of the drive. This will write to every sector of the drive, thereby reallocating any already-detected bad sectors. However, I would anticipate that the zeroing operation will hang as well, as there are likely hundreds/thousands of bad sectors already, and that number will rapidly increase. Your drive is dying, and it will likely be completely dead soon. You aren't going to get much further use out of it.

  • 1
    I appreciate your attempt, but it does not answer the question at hand. – Mxx Jan 9 '14 at 5:04
  • 3
    There's really no way to do what you're asking. A sector is marked as bad if a read attempt fails. It is reallocated when a write attempt is performed which also fails (during this process, the drive attempts to recover the data on that sector, which may cause the drive to hang. This is done at the firmware level of the drive). Assuming there was a way to force the drive to completely skip sectors after a failed read, there would be "holes" in your data, the filesystem structure would become unstable, and as I said in my answer, my money is on sudden, imminent, total failure of the drive. – Bigbio2002 Jan 9 '14 at 5:46
3

I'm looking for some tool that preferably non-destructively(to preserve current Windows/apps installs)

The problem is that some portion of your current Windows installation may be on those damaged sectors.

If Windows is forcing you to run CHKDSK on this during each boot, you can override that by clearing the "dirty" bit. This isn't supported by Windows (fsutil can set it but not clear it), so you will have to take the hard drive to another system and perform the steps here.

However your installation or some programs within will probably not be useable if CHKDSK /f found things to fix.

I dropped an old IDE 1GByte hard drive once. What happened after I reformatted it (not quick formatted) was that there was a big block of bad sectors in the middle of it. The space before and after was useable. So I partitioned accordingly, and was able to use the drive at a reduced capacity.

Since you backed up your important data anyway, if your first bad sector is somewhere in the middle of the drive, it may be best to reinstall Windows, and when formatting, make sure you partition just below that bad sector.

  • Windows is not prompting to run chkdsk on each boot and chkdsk /f finds no issues. Even if some Windows files will become damaged, as long as all bad sectors are marked, I can repair those files with install cd. – Mxx Jan 9 '14 at 5:05
  • 1
    I know it's not what you want to hear, but in my many years of IT experience, I've learned that when sectors are starting to go, it's usually only a matter of time before the hard-drive fails entirely. I'd recommend saving yourself the annoyance of sudden failure. Get yourself a new drive A.S.A.P. and don't look back. – oKtosiTe Jan 14 '14 at 13:53
2

Here are some more well-known disk-repair products that you could try :

HD Tune
HDDScan
PassMark DiskCheckup

I also advice you to have a look at the SMART data of the disk, if that old disk does support it.

You are getting these errors because the disk firmware has run out of spare sectors to replace the failing ones. Each disk has normally many thousands of such spare sectors, which means that your disk is really in a very sad state.

I strongly suggest that you replace the disk. If you wish to preserve your Windows installation and applications, I suggest the following :

  1. Take an image of the disk using a disk imaging program. Put the resulting image om another disk, internal or external.
  2. Replace the failing disk with a new one (save the old one).
  3. Replace no other components than the disk, or you might have a problem with Windows activation
  4. Boot the disk imaging program and restore the image from backup.

The disk imaging product should:

  • Be able to backup only used sectors
  • Be able to ignore bad sectors
  • Be able to restore an image to a disk with a different size than the original (if this is the case)
  • Have a boot CD

Windows Backup is not recommended.

  • 1
    I tried HDDScan. Strangely enough it does not mark bad sectors, only scans for them. – Mxx Jan 9 '14 at 13:53
  • See also this article. – harrymc Jan 9 '14 at 14:29
  • I'm aware of and already tried DTIData Windows Surface Scanner, but again, it only scans for bad sectors, not mark them. As for the other part of the article, I'm not interested in fixing bad sectors. As I mentioned in OQ I already ran SpinRite. – Mxx Jan 9 '14 at 15:40
  • Have you run the fast or deep scan of SpinRite? – harrymc Jan 9 '14 at 16:29
  • I ran it at "level 1" which is supposed to be the fastest. – Mxx Jan 9 '14 at 20:20
1

As someone pointed out, the HDD firmware will relocate sectors that go bad to a section of the cyclinder or sector especially left unused for this purpose. Once that sector is used up, it will go to the next, and so on. By the time you get to the point where any OS can detect a problem, a lot of sectors have been relocated. This may also have the side-effect of making defragmation nearly impossible. The drive is not only having to try to read the bad sectors, but then follow the chain of relocations. I can't imagine this being anything but slooooow. Not only are you risking immanent demise of the overworked disk, you are making the slowest part of your system even slower.

0

I choose a developer's way. I coded a little console utility which fills available space with files and then reads them. If the file was read successfully then we can delete it. And if not... we hit the bad block, just leave that file in the bad block placeholders folder forever. Cons: it'll test free space only.

The source code is available at github

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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