Is there a utility in DOS or Windows that is as thorough as badblocks on Linux?


The best tool I've ever encountered for testing a hard drive for bad sectors is called SpinRite:

  SpinRite 6

It was created by Steve Gibson (who writes most of his code in Assembler), and I remember using it back in the late 1980s on XT computers (with 4.77 MHz 8086/8088 processors) to recover bad sectors from failing hard drives.

The current version also works very well (and you also get the benefit of the many years of Steve Gibson's experience in maintaining this software to ensure it works reliably with all types of hard drives).

It is far more thorough than the ScanDisk or ChkDsk programs included with DOS and Windows.

enter image description here

enter image description here

enter image description here

enter image description here


To update these answers for anyone who finds this as of 2014:

chkdsk with either /r or /b switches is roughly equivalent to badblocks in the default read only mode

SpinRite has far better data recovery capability run at the default level 2

Run at level 4 it's equivalent to badblocks non-destructive read write mode, but with better data recovery capabilities.

However it falls over with divide overflows on modern huge drives, you'll need to wait for SpinRite 6.1 to fix this, development has started on 6.1 according to Steve Gibson on the Security Now netcast, but is suspended again while he completes another project.

Meanwhile, the nearest functional Windows based method to recreate the non destructive read/write badblocks mode for large drives requires owning storage equal to or greater than the drive being tested and would proceed thus:

  1. Download and install a disk image program (Macrium reflect free, Acronis True Image either the commercial or drive maker's free version, or some other)

  2. Create the WinPE recovery disk (you'll need later) and an image of the drive, with intelligent sector copy unchecked, and continue on finding bad sectors checked (both reverse of the default). This recreates the read pass.

  3. Use the drive maker's DOS tool to zero fill the drive (roughly equivalent to the write phase)

  4. Use the recovery CD to restore the image made in step 2 to restore the image you made to it's original location. (roughly equivalent to the write data back phase)

In the above scenario, or when using badblocks a modern drive's internal logic will handle remapping any bad sectors found when they're attempted to be written to.

To recreate the badblocks destructive test you'll need a commercial UK (not US) government approved drive wiping program and you'll need to run it at the higher security level, this will write patterns repeatedly to the drive and verify each pass much as badblocks does.

So until Spinrite 6.1 or later gets released, the question becomes, "Why would you want to do that?"

Downloading pretty much any Linux live CD/DVD will give you a bootable platform to run badblocks, which is cheaper, easier, and safer for your data, for any scenario where you need more than the read only test.

If you want the read only test, just run CHKDSK with the /r switch

If you want to run CHKDSK /R on your system drive under Vista note it will ignore that you told it to run and skip the test on reboot unless you also use FSUTIL to mark the filesystem as dirty.

  • 1
    CHKDSK = Read-only, CHKDSK /R = "R"ecovery, which is most definitely NOT read-only. :) Anyhow, to me, this answer is merely commenting on existing answers and is not actually providing a new/different answer. – Ƭᴇcʜιᴇ007 Apr 25 '14 at 16:36
  • CHKDSK /R certainly isn't read only I'll grant, but it does no write tests, in which sense you could call it an "only read" test, it only writes for error correction purposes, this has the limitation that it can't force a remap of a defective sector the way badblocks will in read write mode. – Beardy Apr 26 '14 at 5:09
  • Since the first answer only addresses how to test the first part of a large drive (owing to limitations of the software) What I've added is a method to force sector remaps further into such drives as badblocks can, using DOS/Windows methods, nobody sane is going to do it that way, but it's answered... – Beardy Apr 26 '14 at 5:16
  • @Beardy - I have the latest SpinRite - I guess 6.3 - Will have to check? I also have Linux bootable to run Badblocks / FS. I need to do a thorough pre-check for 2TB WD & 2 x 1TB Seagate drives. Should I use SR or BB or both.. if so in what order? I am wondering what kind of overlap in functionality they have? – Alex S Sep 24 '15 at 13:14
  • 1
    "chkdsk with either /r or /b switches is roughly equivalent to badblocks in the default read only mode" - Midleading statement, as was pointed out to you in comments, and as you've admitted in comments, but didn't update the post. Downvoted. – cp.engr Jan 16 '18 at 15:11

chkdsk with the appropriate switch

/R Locates bad sectors and recovers readable information

/b NTFS only: Clears the list of bad clusters on the volume and rescans all allocated and free clusters for errors. /b includes the functionality of /r. Use this parameter after imaging a volume to a new hard disk drive. Works only on vista or better.

See here for a more complete switch list


scandisk (DOS) / chkdsk (Windows) perhaps?

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.