Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Feb 2006 10:47:49 -0700 (MST)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        bakul@bitblocks.com
Cc:        hackers@freebsd.org
Subject:   Re: Bad block -> file mapping 
Message-ID:  <20060218.104749.104696960.imp@bsdimp.com>
In-Reply-To: <200602181735.k1IHZOuj040864@gate.bitblocks.com>
References:  <20060218.102145.26324437.imp@bsdimp.com> <200602181735.k1IHZOuj040864@gate.bitblocks.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <200602181735.k1IHZOuj040864@gate.bitblocks.com>
            Bakul Shah <bakul@bitblocks.com> writes:
: > I have a hard disk that's been in service a long time.  I recently
: > installed the SMART monitoring tools.  On occasion, I get reports of
: > LBAs it can't read.  I'd like to map the LBA to an actual file in the
: > file system, if possible.  Does anybody have any tools that can help
: > me with this?
: > 
: > I know I need to get a new disk.  In the mean time, I need to cope
: > with these errors in a sane manner...
: > 
: > Warner
: > 
: > P.S.  Here's a sample report:
: > 
: > Num  Test_Description    Status           LifeTime(hours)  LBA_of_first_error
: > # 1  Extended offline    Completed: read failure     8949         65818210
: > # 2  Short offline       Completed without error     8948         -
: 
: Wouldn't bad block forwarding by the disk take care of this?
: Generally you want the read of a bad block to return an error
: but if you write the block the disk will automatically remap
: this block to one of the spare blocks.

Correct.  That's exactly what I'm trying to do.

: What exactly are you trying to do by mapping a bad block to a
: file?  Nevertheless may be fsdb will help?  You still need to
: map LBA to the slice/partition offset.

Right, I've mapped the lba to a partition, and used badsect to request
that at the next fsck the file that contains the bad block be removed
and replaced with the file in BAD.  However, I'd kinda like to know
which file that is.  If it is a boring file (foo.o, say), I'd dd the
bad block with 0's and then remove it.  If it is a non-boring file,
I'd try to recover it a couple of times, etc.

Once I have the file in BAD, I'd planned on overwriting it with 0's
and then removing it if I could read the block again.

Maybe there's a better way to cope, maybe not.  I don't know.  Hence
my question :-).

This is with an ata disk, btw.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060218.104749.104696960.imp>