# Intel fakeraid problems with 3.3.8 and 3.4.9 [SOLVED]

## volumen1

I have an Intel SATA raid controller and it's working great under 3.2.12.  Here's the specifics:

```
00:1f.2 RAID bus controller: Intel Corporation 82801 SATA Controller [RAID mode] (rev 06)

        Subsystem: Dell Device 040d

        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 46

        I/O ports at cc00 [size=8]

        I/O ports at c880 [size=4]

        I/O ports at c800 [size=8]

        I/O ports at c480 [size=4]

        I/O ports at c400 [size=32]

        Memory at f9ff4000 (32-bit, non-prefetchable) [size=2K]

        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-

        Capabilities: [70] Power Management version 3

        Capabilities: [a8] SATA HBA v1.0

        Capabilities: [b0] PCI Advanced Features

        Kernel driver in use: ahci

        Kernel modules: ahci
```

This is the kind of fakeraid that uses mdadm to manage the array.  So, in my grub.conf I have this for 3.2.12:

```

title Gentoo Linux 3.2.12

root (hd0,0)

kernel /boot/kernel-genkernel-x86_64-3.2.12-gentoo real_root=/dev/md126p3 domdadm rootfstype=ext4

initrd /boot/initramfs-genkernel-x86_64-3.2.12-gentoo
```

Notice the "domdadm" part in there.

Anyway, I used genkernel to configure my kernel for 3.2.12 and I did the same for 3.3.8 and 3.4.9.  

```

genkernel --mdadm-config=/etc/mdadm.conf --mdadm --dmraid all
```

But, both kernels won't boot.  I get the error "Could not find the root block device".  When I drop to a shell and tyr to "cat /proc/mdstat" It shows the md127 device and it shows both disks as inactive.

When I do that same command under 3.2.12 I also see the md126 device, it looks like this:

```

# cat /proc/mdstat 

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 

md126 : active raid1 sda[1] sdb[0]

      1465136128 blocks super external:/md127/0 [2/2] [UU]

      [>....................]  resync =  0.9% (14422912/1465136260) finish=553.1min speed=43709K/sec

      

md127 : inactive sdb[1](S) sda[0](S)

      4514 blocks super external:imsm

       

unused devices: <none>
```

If I try to do "mdadm --assemble --scan" from 3.4.9 then I get a bunch of errors about how /dev/md/imsm0 and /dev/md/Raid1_0 "has no identity information".  Also there is an error that "mdadm: No arrays found in config file or automatically."

I can't cut and paste those, though, so I'm paraphrasing.

Anyway, has anyone else had success with Intel's fakeraid with 3.3.8 and 3.4.9 kernels?[/code]

----------

## vaxbrat

I briefly tried that bios based Intel junk a while back and never got it to work reliably.  I guess there's a reason they call those things "fake raids".  Since then, I've stuck to either high end stuff (ie HP smart array) or full blown software raid with mdadm.

----------

## volumen1

The version of card that I have actually uses mdadm.  It works great under 3.2.12, but not 3.3 or 3.4 kernels, at least not for me yet.

----------

## Jaglover

This is interesting, what do you mean by "it uses mdadm". AFAIK you can use mdadm on any fakeraid. Are you saying mdadm actually picks up the RAID configuration from BIOS?

----------

## volumen1

Yup, that's correct.  It's Intel's ISM fakeraid that uses mdadm.

----------

## danomac

 *Jaglover wrote:*   

> This is interesting, what do you mean by "it uses mdadm". AFAIK you can use mdadm on any fakeraid. Are you saying mdadm actually picks up the RAID configuration from BIOS?

 

Yes, Intel is officially supported mdraid as the preferred way to access imsm raids. It will read the BIOS configuration and you can use most mdadm commands to administer the array. I messed around a lot with this and even wrote a howto in the Documentation, Tips & Tricks forum. You do have to set up a script and modify a file in /etc/conf.d/ in order for the raid array to shut down cleanly. This isn't mdadm's fault, it's gentoo's fault. I've noted the solution in mentioned howto.

To the OP: I posted in the howto thread.

----------

## volumen1

I got this to work with danomac's help.  Basically, I replaced my existing /etc/genkernel.conf with the following

```

OLDCONFIG="yes"

MENUCONFIG="yes"

CLEAN="yes"

MRPROPER="yes"

MOUNTBOOT="yes"

SAVE_CONFIG="yes"

USECOLOR="yes"

MDADM="yes"

DISKLABEL="yes"

GK_SHARE="${GK_SHARE:-/usr/share/genkernel}"

CACHE_DIR="/var/cache/genkernel"

DISTDIR="${CACHE_DIR}/src"

LOGFILE="/var/log/genkernel.log"

LOGLEVEL=1

DEFAULT_KERNEL_SOURCE="/usr/src/linux"

BUSYBOX_VER="1.20.1"

BUSYBOX_SRCTAR="${DISTDIR}/busybox-${BUSYBOX_VER}.tar.bz2"

BUSYBOX_DIR="busybox-${BUSYBOX_VER}"

BUSYBOX_BINCACHE="%%CACHE%%/busybox-${BUSYBOX_VER}-%%ARCH%%.tar.bz2"

DEVICE_MAPPER_VER="1.02.22"

DEVICE_MAPPER_DIR="device-mapper.${DEVICE_MAPPER_VER}"

DEVICE_MAPPER_SRCTAR="${DISTDIR}/device-mapper.${DEVICE_MAPPER_VER}.tgz"

DEVICE_MAPPER_BINCACHE="%%CACHE%%/device-mapper-${DEVICE_MAPPER_VER}-%%ARCH%%.tar.bz2"

LVM_VER="2.02.88"

LVM_DIR="LVM2.${LVM_VER}"

LVM_SRCTAR="${DISTDIR}/LVM2.${LVM_VER}.tgz"

LVM_BINCACHE="%%CACHE%%/LVM2.${LVM_VER}-%%ARCH%%.tar.bz2"

MDADM_VER="3.2.3"

MDADM_DIR="mdadm-${MDADM_VER}"

MDADM_SRCTAR="${DISTDIR}/mdadm-${MDADM_VER}.tar.bz2"

MDADM_BINCACHE="%%CACHE%%/mdadm-${MDADM_VER}-%%ARCH%%.tar.bz2"

DMRAID_VER="1.0.0.rc14"

DMRAID_DIR="dmraid/${DMRAID_VER}"

DMRAID_SRCTAR="${DISTDIR}/dmraid-${DMRAID_VER}.tar.bz2"

DMRAID_BINCACHE="%%CACHE%%/dmraid-${DMRAID_VER}-%%ARCH%%.tar.bz2"

ISCSI_VER="2.0-872"

ISCSI_DIR="open-iscsi-${ISCSI_VER}"

ISCSI_SRCTAR="${DISTDIR}/open-iscsi-${ISCSI_VER}.tar.gz"

ISCSI_BINCACHE="%%CACHE%%/iscsi-${ISCSI_VER}-%%ARCH%%.bz2"

E2FSPROGS_VER="1.42"

E2FSPROGS_DIR="e2fsprogs-${E2FSPROGS_VER}"

E2FSPROGS_SRCTAR="${DISTDIR}/e2fsprogs-${E2FSPROGS_VER}.tar.gz"

BLKID_BINCACHE="%%CACHE%%/blkid-${E2FSPROGS_VER}-%%ARCH%%.bz2"

FUSE_VER="2.8.6"

FUSE_DIR="fuse-${FUSE_VER}"

FUSE_SRCTAR="${DISTDIR}/fuse-${FUSE_VER}.tar.gz"

FUSE_BINCACHE="%%CACHE%%/fuse-${FUSE_VER}-%%ARCH%%.tar.bz2"

UNIONFS_FUSE_VER="0.24"

UNIONFS_FUSE_DIR="unionfs-fuse-${UNIONFS_FUSE_VER}"

UNIONFS_FUSE_SRCTAR="${DISTDIR}/unionfs-fuse-${UNIONFS_FUSE_VER}.tar.bz2"

UNIONFS_FUSE_BINCACHE="%%CACHE%%/unionfs-fuse-${UNIONFS_FUSE_VER}-%%ARCH%%.bz2"

GPG_VER="1.4.11"

GPG_DIR="gnupg-${GPG_VER}"

GPG_SRCTAR="${DISTDIR}/gnupg-${GPG_VER}.tar.bz2"

GPG_BINCACHE="%%CACHE%%/gnupg-${GPG_VER}-%%ARCH%%.bz2" 

```

Then I ran genkernel like so

```

genkernel --install --no-dmraid --dmadm all

```

Genkernel then complained because I didn't have mdadm 3.2.3 in /var/cache/genkernel/src (nor did I have it emerged, I was still on 3.1.4).  So, I emerged it and then copied the tarball from /usr/portage/distfiles to /var/cache/genkernel/src

After genkernel built the kernel, modules and initramfs I made the following entry in my grub.conf

```

root (hd0,0)

kernel /boot/kernel-genkernel-x86_64-3.5.7-gentoo real_root=/dev/md126p3 nodmraid domdadm rootfstype=ext4

initrd /boot/initramfs-genkernel-x86_64-3.5.7-gentoo

```

All is now well with the universe.

----------

