Thread (12 messages) flat view 12 messages, 4 authors, 2021-05-19

Re: My superblocks have gone missing, can't reassemble raid5

From: Leslie Rhorer <hidden>
Date: 2021-05-19 14:49:15


On 5/16/2021 11:16 PM, Christopher Thomas wrote:
Hi all,

I've updated my system & migrated my 3 raid5 component drives from the
old to the new, but now can't reassemble the array - mdadm just
doesn't recognize that these belong to an array at all.

The scenario:
For many years, I've run a raid5 array on a virtual Linux server
(Ubuntu 12.04) in VirtualBox on a Windows 10 host, with 3 2.7TB drives
attached to the virt in "Raw Disk" mode, and assembled into an array.
I recently upgraded to a completely different physical machine, but
still running Windows 10 and VirtualBox.  I'm reasonably sure that the
last time I shut it down, the array was clean.  Or at they very least,
the drives had superblocks.  I plugged the old drives into it,
migrated the virtual machine image to the new system, and attached
them as raw disks, just as in the old system.  And they show up as
/dev/sd[b-d], as before.  However, it's not recognized automatically
as an array at boot, and manual attempts to assemble & start the array
fail with 'no superblock'

The closest I've found online as a solution is to --create the array
again using the same parameters.  But it sounds like if I don't get
the drive order exactly the same, I'll lose the data.  Other solutions
hint at playing with the partition table, but I'm equally nervous
about that.  So I thought it was a good time to stop & ask for advice.

The details:

Here's my arrangement of disks now, where sd[bcd] are the components:

==========
chris@ursula:~$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0 20.1G  0 disk
├─sda1   8:1    0 19.2G  0 part /
├─sda2   8:2    0    1K  0 part
└─sda5   8:5    0  976M  0 part [SWAP]
sdb      8:16   0  2.7T  0 disk
└─sdb1   8:17   0  128M  0 part
sdc      8:32   0  2.7T  0 disk
└─sdc1   8:33   0  128M  0 part
sdd      8:48   0  2.7T  0 disk
└─sdd1   8:49   0  128M  0 part
sr0     11:0    1 1024M  0 rom
	The first thing you need to do is copy those drives into safety media. 
  I know this means a new drive, but an 8T drive is not that expensive. 
  I would format the drive and mount it to some directory:

mkfs /dev/sdX
mkdir /Safety
mount /dev/sdX /Safety
cd /Safety
ddrescue /dev/sdb disk1 /Safety/disk1-map
ddrescue /dev/sdc disk2 /Safety/disk2-map
ddrescue /dev/sdd disk3 /Safety/disk3-map

	As mentioned earlier in this thread, you can create overlays of the 
original disks.  That, or you can make loops of the backup files. 
Actually, if it were me, I would create two sets of backups and work on 
the second set, but then I am hyper-anal about such things.  I don't 
just employ a belt and suspenders.  I use a belt, suspenders, large 
numbers of staples, super glue, and a braided steel strap welded in 
place.  Use whatever level of redundancy with which you feel 
comfortable, but I *DEFINITELY* do not recommend working with the 
original media.  Indeed, I do not recommend attempting to recover the 
original media, at all.  Once you have a solution identified, I would 
employ new drives, keeping the old as backups.  (Which rather begs the 
question, "Why don't you have backups of the data, so you could simply 
create an entirely new empty array and copy the data to the new array 
from the backup?")

	I would then create a loopfile from each backup file:

losetup -fP disk1
losetup -fP disk2
losetup -fP disk3

	Then I would try recreating the RAID based upon the earlier Examine report:

mdadm -C -f -n 3 -l 5 -e 1.2 -c 512 -p ls /dev/md99 /dev/loop2 
/dev/loop0 /dev/loop1

	You may notice some of the command switches are defaults.  Remember 
what I said about a belt and suspenders?  Personally, in such a case I 
would not rely on defaults.

	Now try running a check on the assembled array:
fsck /dev/md99

	If that fails, shutdown the array with

mdadm -S /dev/md99

	and then try creating the array with a different drive order.  There 
are only two other possible permutations of three disks.  If none of 
those work, you have some more serious problems.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help