Re: Manually hacking superblocks

2007-04-14 Thread Lasse Kärkkäinen

You will need a --create


This fixed the issue. So far, at least, I couldn't find any data 
corruption either :)


Thank you.

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Manually hacking superblocks

2007-04-13 Thread Lasse Kärkkäinen
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   330  active sync   /dev/sdc1
   1 1   001  faulty removed
   2 2   8   972  active sync   /dev/sdg1
   3 3   8  1293  active sync   /dev/sdi1
   4 4   004  faulty removed
   5 5   8   815  active sync   /dev/sdf1
   6 6   006  faulty removed
   7 7   8  1777  spare
   8 8   8  1618  spare
   9 9   8  1459  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?


-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Manually hacking superblocks

2007-04-13 Thread David Greaves
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   330  active sync   /dev/sdc1
1 1   001  faulty removed
2 2   8   972  active sync   /dev/sdg1
3 3   8  1293  active sync   /dev/sdi1
4 4   004  faulty removed
5 5   8   815  active sync   /dev/sdf1
6 6   006  faulty removed
7 7   8  1777  spare
8 8   8  1618  spare
9 9   8  1459  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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Manually hacking superblocks

2007-04-13 Thread Neil Brown
On Friday April 13, [EMAIL PROTECTED] wrote:
 Lasse Kärkkäinen wrote:
  
  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?
 
..
 
 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)

You will need a --create

--assemble ignores the order in which the devices are given.  It uses
the information on the drives.  Once you do a --add, you lose that
information.
It is good that you know the original order.  You --examine the
confirm the chunk size or any other details you might not be sure of
and recreate the array.  Leave one disk (the least likely to be
uptodate) as 'missing' and then try 'fsck -n' to ensure the data is
ok.

NeilBrown
-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html