xfs
[Top] [All Lists]

Re: Recover a XFS on raid -1 (linear) when one disk is broken

To: linux-xfs@xxxxxxxxxxx
Subject: Re: Recover a XFS on raid -1 (linear) when one disk is broken
From: Jan Banan <b@xxxxxxxxxxxx>
Date: Sat, 31 Jul 2004 20:10:49 +0200
Cc: Chris Wedgwood <cw@xxxxxxxx>
In-reply-to: <20040731091220.GA6158@xxxxxxxxxxxxxxxxxxxxx>
References: <40F6DBC1.6050909@xxxxxxxxxxxx> <20040715205910.GA9948@xxxxxxxxxxxxxxxxxxxxx> <40F9321C.7060403@xxxxxxxxxxxx> <20040717203943.GL20260@xxxxxxxxxxxxxxx> <410ADC0A.6060100@xxxxxxxxxxxx> <20040731054924.GA4748@xxxxxxxxxxxxxxxxxxxxx> <410B4BC3.8000404@xxxxxxxxxxxx> <20040731091220.GA6158@xxxxxxxxxxxxxxxxxxxxx>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040116
This is the output from "smartctl":
# smartctl -a /dev/hdh
smartctl version 5.32 Copyright (C) 2002-4 Bruce Allen

[...]

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  
WHEN_FAILED RAW_VALUE
 3 Spin_Up_Time            0x0027   252   252   063    Pre-fail  Always       - 
      3089
 4 Start_Stop_Count        0x0032   253   253   000    Old_age   Always       - 
      14
 5 Reallocated_Sector_Ct   0x0033   109   109   063    Pre-fail  Always       - 
      1459

[...]

I suppose the value of Reallocated_Sector_Ct (1459) is not a good sign :-(

I also run "badblocks /dev/hdh" and it did find 593 bad blocks before the kernel crashed 
(I suppose) with (like it did with "dd"):

Jul 31 19:21:32 d kernel: hdh: dma_intr: status=0x51 { DriveReady SeekComplete 
Error }
Jul 31 19:21:32 d kernel: hdh: dma_intr: error=0x01 { AddrMarkNotFound}, 
LBAsect=28117754, high=1, low=11340538, sector=28117692
Jul 31 19:21:32 d kernel: hdg: DMA disabled
Jul 31 19:21:32 d kernel: hdh: DMA disabled
Jul 31 19:21:32 d kernel: PDC202XX: Secondary channel reset.
Jul 31 19:21:32 d kernel: ide3: reset: success

After that I rebooted the computer with the reset-button since it did no longer 
respond to anything.

Maybe I should continue with "dd" now like this (?):

# dd if=/dev/broken of=/dev/new bs=512 conv=sync,noerror seek=28117692
skip=28117692

I am a little bit confused if it is correct to give "seek" and "skip" the value of the last sector before the crash (28117692). 
According to the man-page of "dd" then "seek" and "skip" skips "ibs/obs-sized BLOCKS" and not 
"SECTORS". So am I typing the correct value (28117692)?

Best regards,
Jan



<Prev in Thread] Current Thread [Next in Thread>