scanning for bad blocks before install

mgmcomm at hotmail.com mgmcomm at hotmail.com
Sun Jan 11 08:21:03 PST 2004


<disclaimer-rant>
I have read many messages concerning the topic of bad blocks...most of them 
more than 4 years old and quite obsolete now.  And I have read the faq and 
understand about "modern" ide drives and the automatic block mapping and the 
fact that my drive in question is quite possible past saving. 
</disclaimer-rant>

What I need to know is how to detect a drive with bad blocks before I put it 
into service.

Here is what just happened to me...and could possible happen again.
I took an old 10GB drive off the shell that has been unused for some time 
because I needed some quick temp storage while I move files around other 
drives.  I used the sysinstall utility to fdisk in DD mode and create a 
single slice covering the entire drive....pretty much standard for any 
freebsd disks I employ now a days.  everything went perfect and no error 
were indicated whatsoever.

I began coping file...about 9.5 gigs to free up some space on another drive 
so I can continue downloads.  My intention is to move all these downloaded 
to cdr eventually.

I began to test these files on the 10gb drive since there are video fansubs 
(usually avi files) and I wanted to ensure there were no errors or bad 
encoding since I was getting these from gnutella.

it was during these tests that I discovered quite a few corrupted 
files....and for one such group of files I had an sfv file to check against. 
  But upon using gsfv the system bogs down to the point where I have to hard 
reset to recover.  Thinking gsfv is doing something bad I try chsfv and then 
I see the hard disk errors.  Aparently quite a few bad blocks on this 10GB 
drive exist and there was no indication of a problem until an actual read 
was attempted.

Now what is wrong with this scenario is this.  Why doesn't fdisk and or 
bsdlabel do some sort of bad black scan before allowing a user to put a 
drive into service.  I cant even find an option to do this manually in 
either fdisk or fsck.

I have read many archived messages were people want a way to mark bad blocks 
as unusable and there is apparently no way to do this other than badsect(8). 
  So far I cant find a successful method of finding the exact block or 
sector number to feed to badsect(8).  I have read that dd if=/dev/ad1s1a 
of=/dev/null will print errors with sector numbers as it finds one it cat 
read.  But all this produced was hard read errors that said nothing about 
the location the failed read.  Understanding this drive is a lost cause I 
would like to see if I can make use of it for at least the next week or so 
until I can get start getting this data to cdr.  Luckily for me nothing put 
on this drive is critical....it all can be refetched if needed.

Anyhow there is my rant for the month.  Anyone shed some light on how I 
might avoid a similar situation in the future?  This isn't the first time I 
was burned this way.  If nothing else I would settle for someone giving me a 
good port program to do surface scans with. To keep me abreast of drives 
beginning to fail I might like to surface scan entire disks every couple 
months...especially since many of my drives are over 3 years old and I am 
typically put them through some brutal workloads occasionally.

Jason Cribbins

oh and sorry about the hotmail.  I hope it formats correctly.  I am 
switching over to a real pop3 mail server soon, which will allow me to use a 
decent email client eventually.

Please reply to or cc me as hotmail fills up way to fast to subscribe this 
email to the list.

_________________________________________________________________
Add photos to your messages with MSN 8. Get 2 months FREE*. 
http://join.msn.com/?page=features/featuredemail



More information about the freebsd-questions mailing list