Tools for checking a new hard drive
I've got a new HD since my old one was starting to get crampy and I'm wondering if it'd be a good idea to do some sort of a check up before starting to use it. I intend to redo everything, GNU/Linux install, data partitions, even trying LVM (a friend on Libervis IRC actually offered to do a whole presentation showing how to install Intrepid from scratch with LVM set up
so that's something I can hardly refuse
).
When I was still choosing which to buy and reading some reviews I've seen some people running tests and checks on HD's to see if it's really ok. It works here (shows in cfdisk), but I'm thinking it wouldn't hurt to do a quick check up before I start pounding data on it.
So.. anyone recommends doing that and if yes, which tools would you recommend using?
Oh.. and if anyone's curios.. I got Western Digital Blue Caviar AAKS 640GB (new Seagates 7200.11 series were getting a little too many bad reviews for dieing lately so I decided to avoid that). 
Thanks










640GB... wow, mine is only 1/8 compared to that
one possible test may be just try formating the whole disk to see if there are bad clusters.
smartmontools could also be useful to check if the HD is used or has bad records, as well as some other info like the temperature, etc:
I'm not sure if this could be helpful, as I don't have much experience on hardware testing/benchmark/etc.
Thanks for pointing it out. I've since set everything up and so far the drive is working good, but as I've been doing this set up I fell into one of my paranoid frenzies about hardware health so I'm wondering about my old drive and the noises it's making.
It's been making a buzzing kinda fast rhythmic noise ever since I know about it (or at least probably in about a year) and it seems to have been working fine (and continues to) all along, but I don't get why it's making that noise and what it's doing. It doesn't relate to reads and writes because it does so even when completely idle.
Anyway, I ran smartctl on both drives and they both pass, and the values are good (as I've read elsewhere the "value" column must always be greater than the "threshold" column or else the drive may be failing.
I might decide to try and replace the old drive making a claim about those weird sounds just to be sure (as sure as one can be about hard drives anyway), because I want to use it for backups...
Thanks
This is quite interesting. I finally got to the bottom of this little thing I got obsessed about, that weird noise in my old Seagate drive. It's apparently a feature called "STIR" or "Seek To Increase Reliability". What it does is when the drive is idle it starts moving the head in a preprogrammed fashion in order to prevent it from heating while resting in a single place. This creates this "chirping" or buzzing noise heard when it's pretty quiet (and my box has mostly fairly silent coolers).
This also explains why I've seen this happen now more than before. I started using the old drive only for backup, no longer for main OS and so it's idle more often therefore making this "STIR" thing kick in more often.
At least it means there's nothing wrong with the drive, but to prevent the noise the solution is to write a script that writes something to disk every 40 seconds or so. This would basically achieve the same objective of STIR, but with much less noise.
Now I just need to figure out how to get bash to do something every 40 seconds by itself..
Why not just make a simple cron job that goes off every minute?
The STIR thing goes off every 40 seconds or even less. Sometimes it turns on even with this script running in background meaning it takes even less time so 1 minute cron probably wouldn't work.
I did this little script and it's working for days now.
#! /bin/sh# The purpose of this tiny script is to replace Seagate's STIR (Seek to Increase Reliability) feature with small write to disk.
cd /mnt/backup/.stopstir &&
until [ 6 -eq 9 ];
do echo $(date) > date;
sleep 1;
echo Stop stirring! >> date;
sleep 1;
echo $(date) >> date;
sleep 1;
echo Stop stirring! >> date;
sleep 1;
echo $(date) >> date;
sleep 30;
done
I put it to .stopstir directory in the old drive's partition and in /etc/rc.local so it starts on every boot.
So it writes to the "date" file every 30 seconds 5 times removed from each other by one second so it moves the head a little more than just enough to write once. I think that should substitute well for the STIR thing.