From: David Greaves <david@dgreaves.com>
To: "Lasse Kärkkäinen" <tronic+owm8@trn.iki.fi>
Cc: linux-raid@vger.kernel.org
Subject: Re: Manually hacking superblocks
Date: Fri, 13 Apr 2007 11:23:28 +0100 [thread overview]
Message-ID: <461F5A20.4010203@dgreaves.com> (raw)
In-Reply-To: <461F3B2B.4030006@trn.iki.fi>
Lasse Kärkkäinen wrote:
> I managed to mess up a RAID-5 array by mdadm -adding a few failed disks
> back, trying to get the array running again. Unfortunately, -add didn't
> do what I expected, but instead made spares out of the failed disks. The
> disks failed due to loose SATA cabling and the data inside should be
> fairly consistent. sdh failed a bit earlier than sdd and sde, so I
> expect to be able to revocer by building a degraded array without sdh
> and then syncing.
>
> The current situation looks like this:
> Number Major Minor RaidDevice State
> 0 0 8 33 0 active sync /dev/sdc1
> 1 1 0 0 1 faulty removed
> 2 2 8 97 2 active sync /dev/sdg1
> 3 3 8 129 3 active sync /dev/sdi1
> 4 4 0 0 4 faulty removed
> 5 5 8 81 5 active sync /dev/sdf1
> 6 6 0 0 6 faulty removed
> 7 7 8 177 7 spare
> 8 8 8 161 8 spare
> 9 9 8 145 9 spare
>
> ... and before any of this happened, the configuration was:
>
> disk 0, o:1, dev:sdc1
> disk 1, o:1, dev:sde1
> disk 2, o:1, dev:sdg1
> disk 3, o:1, dev:sdi1
> disk 4, o:1, dev:sdh1
> disk 5, o:1, dev:sdf1
> disk 6, o:1, dev:sdd1
>
> I gather that I need a way to alter the superblocks of sde and sdd so
> that they seem to be clean up-to-date disks, with their original disk
> numbers 1 and 6. A hex editor comes to mind, but are there any better
> tools for that?
You don't need a tool.
mdadm --force will do what you want.
Read the archives and the man page.
You are correct to assemble the array with a missing disk (or 2 missing disks
for RAID6) - this prevents the kernel from trying to sync. Not syncing is good
because if you do make a slight error in the order, you can end up syncing bad
data over good.
I *THINK* you should try something like (untested):
mdadm --assemble /dev/md0 --force /dev/sdc1 /dev/sde1 /dev/sdg1 /dev/sdi1
missing /dev/sdf1 /dev/sdf1
The order is important and should match the original order.
There's more you could do by looking at device event counts (--examine)
Also you must do a READ-ONLY mount the first time you mount the array - this
will check the consistency and avoid corruption if you get the order wrong.
I really must get around to setting up a test environment so I can check this
out and update the wiki...
I have to go out or a couple of hours. Let me know how it goes if you can't wait
for me to get back.
David
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2007-04-13 10:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-13 8:11 Manually hacking superblocks Lasse Kärkkäinen
2007-04-13 10:23 ` David Greaves [this message]
2007-04-13 12:17 ` Neil Brown
2007-04-14 15:17 ` Lasse Kärkkäinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=461F5A20.4010203@dgreaves.com \
--to=david@dgreaves.com \
--cc=linux-raid@vger.kernel.org \
--cc=tronic+owm8@trn.iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.