<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


_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to