# A broken hard drive in a RAID 1 array



## semionlaptev (Apr 25, 2012)

Hi all,
I have a server with SuperMicro X8STE motherboard with a fake-RAID controller. The system is freebsd FreeBSD 8. Two Seagate hard drives are set up in a RAID 1. Yesterday the server crashed and failed to boot. When booting RAID controller shows that the first hard drive is "offline" so the RAID was degraded:
https://www.dropbox.com/s/r96hg5zzxbq9osd/2012-04-25 20.53.48.jpg

Freebsd FreeBSD continues booting and when it comes to detecting hard drives it crashes with a message as on this picture I took:
https://www.dropbox.com/s/p8z26yz44boxthb/2012-04-25 18.08.17.jpg

So, my questions:

Why the system can't boot from the second drive? Isn't RAID 1 supposed to do that?
Now I should place a new hard drive instead of the broken one and it all will be ok? Am I right?
Is there the way to back up the stored on the second drive data? E.g. by mounting the drive in a live CD? I managed to mount some of the partitions in linux live CD by /dev/dm-* devices, but the partition I need is totally corrupted and gives many I/O errors. Could I mount ones from the second drive only? There are no /dev/sdb* devices, only /dev/sda and /dev/sdb that are my Seagates. *fdisk* shows partition tables on both disks.

Thank you in advance.


----------



## wblock@ (Apr 25, 2012)

1.  Unknown.  FreeBSD might be getting the wrong device, trying to mount the raw drive instead of the RAID.  The controller may have metadata on the drive, and FreeBSD would see that data which is normally hidden.  Or maybe it would be accessible with graid(8) through a live CD or mfsBSD.

2.  That's how a mirror is supposed to work, yes.  But it's also supposed to work in the degraded state.

3.  Do not mount the drive until you have a backup.  For that matter, Linux may not be able to deal well with a UFS filesystem.  See what mfsBSD thinks of it.


----------



## semionlaptev (Apr 26, 2012)

The tip with mfsBSD worked. I managed to mount the second hard drive from mfsBSD. I unplugged the corrupted disk and mfsBSD detected the second as a usual hard drive with partitions. The root partition couldn't be mounted because I think it stored RAID metadata, but the rest of the partitions were being mounted without problems and I was able to backup my files. So the job is half done.
Thanks for help!


----------



## wblock@ (Apr 26, 2012)

If you can find out exactly how big the metadata is, gnop(8) has an offset option which could skip over it.


----------



## jamengual (Apr 26, 2012)

Intel Raid Matrix RAIDs are the worst, I had exactly the same problem as you and after the reinstall I start using gmirror.

I remember that I manage to boot up using the livecd.


----------



## mav@ (Apr 30, 2012)

Intel Matrix RAIDs are the best of BIOS RAIDs existing. Without additional information I can't say why exactly it crashed, but suppose it may be an ataraid(4) bug. I would recommend you to not assume that old ataraid(4) and new graid(8) are the same. In fact they have almost no shared code. I am personally using graid(8) volumes with Intel metadata on several production hosts and very satisfied by it. Note that on FreeBSD 8.x ataraid(4) is a part of GENERIC kernel, so to use graid you should remove first from kernel first.

Yes, gmirror is viable solution for boot disk, but proper BIOS RAID cooperation with graid(8) should make booting more reliable.


----------

