How do I find and handle bad sectors in a RAID 0 array?

I have an ASUS A8N-SLI Deluxe motherboard. I have a RAID 0 array of two Western Digital drives on the Silicon Image SATA controller.

I am running Windows XP Pro.

It's a long, long, story, but I think one of the drives has bad sectors.

I did a disk check (right click on the drive, tools, Error-Checking, Check Now, checked both boxes). After several hours passed, I gave up on waiting and went to bed :). When I woke up in the morning I was back in windows. So I don't know what the results of this check are. Are they logged anywhere? I'm not opposed to running it again, but whenever I do one of these reboot-check-disk type things, the information seems to scroll off the screen way before I get a chance to read it!

My concern is that windows won't properly handle the bad sectors. It thinks my RAID 0 array is one physical drive, after all, right? So can it be trusted to report and handle a physical characteristic like bad sectors when it doesn't even know I actually have two drives? I guess if it assumed any bad sectors were bad on BOTH disks, that would be a cool way to handle it.

So how can I determine whether I have bad sectors, and if so, which of the two drives has them? Is there a way to do it without putting the drives in another system? Maybe a freeware utility on a boot disk could figure out which disk had the bad sectors without corrupting my raid array? I'd also like to know which files occupy the bad sectors. I have a hunch my swap file runs through it because I have been getting memory-related crashes/errors according to windows but have done a ridiculous amount of ram troubleshooting already (that's part of the long, long, story) and determined that my ram is probably good. I am sure enough of this to at least try the bad-sector troubleshooting before going back to ram troubleshooting.

I have all the data backed up, so data recovery isn't an issue, but I would like to preserve this windows install just to save myself some effort, if this is possible.

Suppose I find out that one of the disks has bad sectors. Can I ghost it in another computer, put that image on a replacement drive, then stick the new drive into the array without my sata controller or windows ever knowing I did this? Then maybe I could re-scan for bad sectors, find that there are none, and continue on my merry way? :)
solidus667Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

willcompCommented:
I believe you can use WD Diagnostics to test the drives individually.  Have never tried it on a RAID 0 array, but works fine with a mirrored array.

http://support.wdc.com/download/index.asp?cxml=n&pid=2&swid=30

You should use DOS version.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
rindiCommented:
chkdsk doesn't test the physical drives, it just tests the partition for software errors. Sometimes after a chkdsk you can find files or directories starting with chk*. These are leftovers from chkdsks which have saved recovered bad data. These can usually be deleted, as they are often recovered temporary files which you don't need anyway, or they are parts of files which are then difficult to put together again to the correct file. The data will show you when chkdsk recovered these, so that would be some kind of "log".

I wouldn't try lowlevel diags on the disks except if you have a tool within the raid controller utility to do that. Raid 0 is a very unstable raid and if you mess up anything with it, you tend to loose all data. I don't advise using raid 0 at all, except for completely temporary data, but never use it for installations or the OS itself. It is better to run the OS off a separate disk, as the OS itself doesn't really get that much speed improvement if the disk runs faster.
solidus667Author Commented:
willcomp:

I am concerned about this throwing the drives out of synch. What if one drive has bad sectors, and the WD utility does its job and properly labels them? The next time I boot, the drives may look different than one-another and maybe the array will not be found?
Your Guide to Achieving IT Business Success

The IT Service Excellence Tool Kit has best practices to keep your clients happy and business booming. Inside, you’ll find everything you need to increase client satisfaction and retention, become more competitive, and increase your overall success.

willcompCommented:
The drives are different from one another since they aren't mirrored.  However, your concern is that changing drive could affect your striped array and I'm afraid I can't answer that one.  Believe you can test drives without allowing changes, and that would be prudent approach.

Like Rindi, I'm not a fan of striped arrays.  Since data is more important than speed to me, I use mirrored arrays, hence more familarity with RAID 1.
rindiCommented:
To be able to run those WD tool, you will probably have to break your array, and I'm not sure if you can thenget the array up again so that the data is accessible. Possibly if you run the tests in another PC and never turn on the raided system while the disks are out might keep your array intact.
willcompCommented:
Can't speak for sure about RAID 0, but WD tool runs in DOS and accesses physical drive, not logical drive, so should work.  Will work for mirrored drives without having to break array.
solidus667Author Commented:
rindi:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/chkdsk.mspx

The above url implies that chkdsk does do a physical check with the /r switch. By physical check, I mean it checks for bad sectors.

Does anyone know how this might affect a stripe array? Would it find these bad sectors and label them as unusable on each disk?

Also rindi, I appreciate your comments about RAID 0. This computer is a game machine so my goal was only that it be fast. My workstation is RAID 0+1, but this game box is [non]RAID 0. :) While none of the data is "crucial", being able to keep this array alive will save me the act of reinstalling tons of games and reconfiguring tons of profiles (for input devices, etc).
rindiCommented:
chkdsk can't run a real disk test. It needs a formatted system to do it etc. It may be able to find soft errors and mark those as bad, but you can't use it properly test the drive. It'll handle a striped array like it would any disk. If it finds any soft errors it will mark them as bad.

If i'm not mistaken, a gaming pc needs fast temporary access and also the pagefile should be fast, so I'd setup my gaming system with the OS and programs on a standard HD, and add a raid 0 array where all temporary folders and the pagefile sits on. If necessary some games may also be installed there.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Storage

From novice to tech pro — start learning today.