[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <44EDC135.4080007@linux-grotto.org.uk>
Date: Thu, 24 Aug 2006 16:09:41 +0100
From: Johan Groth <johan.groth@...ux-grotto.org.uk>
To: Mark Lord <lkml@....ca>
CC: linux-kernel@...r.kernel.org
Subject: Re: Scsi errors with Megaraid 300-8x
Mark Lord wrote:
> Johan Groth wrote:
>> Justin Piszcz wrote:
>>> Run badblocks in r+w mode on the bad disk and it will force the disk
>>> to re-allocate the bad sector if it can.
>>>
>>> Justin.
>>
>> Is that possible to do in a non-destructive way? I don't want to loose
>> all data and apparently I can't back it up either :(.
>
> Yes, it is perfectly doable, but I don't think anyone has yet bothered
> to release a utility that actually does it.
>
> OPPORTUNITY FOR FAME AND FORTUNE! (okay, maybe just some fame):
> =================================
> Hack the existing smartctl code to read out the failed sector numbers,
> and then issue single-sector read-overwrite to each of those bad sectors.
>
> Very simple code. I'll do it myself eventually, but please beat me to it!
Authors of badblocks already has with the -n option :). When I ran
badblocks on the entire partition it wanted to check over 210 million
blocks and when it finally came to the bad sector parts the controller
lost the drive and the kernel started to spit out scsi errors! Buggy
driver, hardware error? God knows. Unfortunately I don't have a log to
show you as I was in single user mode.
I would like to run badblocks again but only around the damaged part.
Thing is that I know which sector the kernel thinks is bad but badblocks
wants to know which block to start and end at. How do I convert a sector
number to block number. The partition is a standard XFS partition, ie I
haven't made any changes to block sizes when I formatted it.
Got this from xfs_info:
meta-data=/dev/sda7 isize=256 agcount=16, agsize=3433014
blks
= sectsz=512 attr=1
data = bsize=4096 blocks=54928224, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal bsize=4096 blocks=26820, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0
There's another thing I would like know. How do I find out what file a
sector belongs to?
Regards,
Johan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists