On Thu, 31 Dec 2009 09:03 -0500, "Scott McEachern" <[email protected]> wrote:
> I've been using dd to test some of my hard drives and just ran into the
> oddest of coincidences.
>
> I used this command (or variation without the time command)
>
> # time dd if=/dev/rwd0c of=/dev/null
>
> on three machines with three HDD's of sizes 40GB SATA, 40GB IDE and 30GB
> IDE, one of those 40GB (SATA) drives was in my workstation. The result
> is basically the same: x number of bytes transferred, etc. with no
> problems. They are all a few years old. I bought a brand-new Seagate
> Barracuda SATA/1.5TB/7200/32MB, installed it into my workstation and ran
> the same test to get this:
>
> # dd if=/dev/rwd0c of=/dev/null
> dd: /dev/rwd0c: Input/output error
> 268435455+0 records in
> 268435455+0 records out
> 137438952960 bytes transferred in 23763.827 secs (5783536 bytes/sec)
>
> What got me doing that in the first place was my workstation locking up
> hard 3 times in the past few weeks. I have no idea why, nothing in the
> system logs, etc, and the only change was the HDD. I figured the drive
> was defective, ran the above test, and returned it for a replacement.
> While there, I also picked up a WD 500GB SATA drive and installed that
> in my workstation (to be pre-built and installed in another PC), which
> gave this result:
>
> # time dd if=/dev/rwd0c of=/dev/null
> 976773168+0 records in
> 976773168+0 records out
> 500107862016 bytes transferred in 93283.067 secs (5361186 bytes/sec)
> 1554m43.06s real (etc)
>
> No I/O error, so it should be good. That's 2 drives ok (40 and 500 GB)
> and 1 drive bad in the same PC, now for the 2nd new 1.5TB drive:
>
> dd: /dev/rwd0c: Input/output error
> 268435455+0 records in
> 268435455+0 records out
> 137438952960 bytes transferred in 23740.766 secs (5789154 bytes/sec)
> 395m40.76s real (etc)
>
> Oh, another crappy drive, I guess I have bad luck. Probably from a bad
> batch or something. But wait...
>
> Look at the amounts transferred. Exactly the same for both of the 1.5TB
> drives, and I assure you it's not accidentally the same drive, just the
> exact same make / model. The cables / connections are good on known
> good hardware, plus two other different drives were fine. It can't be
> some odd variable limit (or similar thing) because the 500GB values went
> well beyond where the 1.5TB drives crapped out.
>
> I don't believe it's the hardware (other than the drive), nor the
> software, but seeing those numbers being identical down to the byte is
> either incredibly coincidental or .. ? I'm going to run the test again,
> but as you can see from the time it won't be done for another 6.5
> hours. Betcha it'll be the same.
>
> Can anyone think of a plausible explanation for this, other than maybe a
> bad batch where the drives are all equally defective at the exact same
> spot? While I'm here, can anyone recommend another tool than dd for
> testing drives? Seems to me with those numbers, to finish a 1.5TB drive
> it'll take around 76 hours. I don't mind the time, I need
> thoroughness. It's better than having a workstation (or server)
> mysteriously lock up after the 30-day return/exchange is over.
You can speed dd up considerably by setting bs to a larger size, by default
it's 512 bytes. Although this may interfere with the accuracy of your testing.
Here's an example:
# time dd if=/dev/rsd1c of=/dev/null
494079+0 records in
494079+0 records out
252968448 bytes transferred in 371.001 secs (681852 bytes/sec)
6m11.00s real 0m0.11s user 0m6.36s system
# time dd if=/dev/rsd1c of=/dev/null bs=4m
60+1 records in
60+1 records out
252968448 bytes transferred in 23.160 secs (10922468 bytes/sec)
0m23.16s real 0m0.00s user 0m0.00s system