badblocks, e2fsck, and disk error
Hello. I started getting a disk error on my Maxtor 17.2 GB disk tonight.
It's been running fine for over 2 months, and my current uptime is 63 days
with no apparent disk problems.
Here's how I have my disk partitioned:
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/hda2 15885614 2988782 12069945 20% /
/dev/hda1 14607 6293 7560 45% /boot
/dev/hda3 208349 147517 50072 75%
/usr/local/squid/cache
I was actually playing an MP3 when it (the mp3) stopped, at which point
this appeared in my syslog:
Dec 1 01:50:01 kernel: hda: read_intr: status=0x59 { DriveReady
SeekComplete DataRequest Error }
Dec 1 01:50:01 kernel: hda: read_intr: error=0x40 {
UncorrectableError }, LBAsect=32357292, sector=32327053
Dec 1 01:50:01 kernel: end_request: I/O error, dev 03:02 (hda),
sector 32327053
Those lines appeared 3 times, as though it was re-trying (and continuing
to fail to read) the file.
Anyway, I went to single-user mode, unmounted all the disks, and
re-mounted the root partition as read-only.
Then I ran e2fsck -c /dev/hda2, which -- while scanning for bad blocks --
produced an error corresponding to what you see in the syslog excerpt
above.
It re-scanned the disk with a "Dupe/bad block pass" and found blocks that
appeared to be duplicates. It said the inode # for the mp3 was shared
with "inode #1, the bad blocks inode." I'm not sure what this means; does
that indicate that the bad blocks list is stored in inode #1?
At any rate, it asked me if I wanted to clone the blocks. I wasn't sure
what to answer, and the default was Yes, so I chose yes. After a few
seconds, I got the same error as before, and I was asked if I wanted to
ignore the error. The default was Yes, but this time I chose No. It then
did a few more things (which I can't remember, and couldn't copy/paste
since gpm wasn't running) and wrote a few more lines of output. When all
this was done, I re-mounted all my disks.
I then tried to play that mp3 again, and unfortunately, I'm right back
where I started. :-\
At which point did I make the wrong choice? Is inode #1 where the bad
blocks list is stored? Any theories on how an inode can become shared
between two different files? And does a duplicate block qualify as a
"bad" block, or is this a non-defect?
Appreciate the help! This is my first disk failure under *nix so I'm a
little uncertain of how to approach it. :)
Reply to: