Re: Starting dmraid in initrd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



What does it say when you run dmraid -ay from the prompt?  Is the mapper device module loaded at that point?

I wrote up a howto for ubuntu at https://wiki.ubuntu.com/FakeRaidHowto.  You might want to take a look at that, but the idea is that I simply added a script to the proper location that directs mkinitramfs to include dmraid in the image and run it after loading the mapper module. 

Andre Hasekamp wrote:
Hi,

This must be a straightforward one for all you people booting from a disk array with the support of
dmraid.

The issue is simply this. When I do:

dmraid -ay
dmraid -sa

in a running non-RAID system, everything is fine, the second command shows my RAID set is active.
Now, when I give the same 2 commands in init on initrd, my RAID set is not active (or, dmraid -si
then indeed shows that my RAID set is not active).

Hopefully someone can give me a tip that helps me get dmraid started on initrd.

Next follows a detailed description of my environment. Detailed, because after what I've been
through until now, it can only be the "little" things that make the "big" difference.

Since I stumble over this problem for a while now, I can say that I tried with different SuSe Linux
distributions and with different dmraid versions. At the moment I use SuSe 10.0 (kernel 2.6.13.15-
smp) and dmraid 1.0.0.rc9. My RAID controller is a Promise FastTrak S150 TX4 with 2 SATA disks
connected to it in RAID 0 mode. The dmraid device name for the FastTrak controller becomes
pdc_dbhbgbjdgi.

Eventually, of course, I'm trying to do something like Lin, Weichuan described in the thread "How-to
for dmraid OS drive(s)?" in this discussion group. This thread had been started on 2005-08-22.

So, first I made a static link of dmraid and tested it in the running system where I set PATH="", to
make sure I used the right dmraid.

Then I see that everyone modifies mkinitrd. Unfortunately for this problem, mkinitrd is different for
different distributions, so I cannot simply adopt what others in this discussion group publish. To keep
things as simple as possible, I decided to go "back to the basics" and I simply unzipped and un-cpio-
ed the SuSe initrd and modified that one. By now (version 10.0) SuSe has had good reasons
(probably in the context of migrating to udev) to replace "linuxrc" by "init", but for this description, we
can consider them to be one and the same thing.

Still, after writing the previous paragraph, it is my feeling that this is the first and I'm afraid only
discussion group to try and not the SuSe discussion groups. In the SuSe discussion groups, they only
discuss software RAID whenever they use RAID. So far I have not seen any reference to dmraid.

My addition to init on initrd consists of the following statements:

echo "Creating dmraid control device"
# Create /dev/mapper like in /sbin/devmap_mknod.sh
mkdir -p –mode=755 /dev/mapper
# Create /dev/mapper/control like in /sbin/devmap_mknod.sh
# with the same numbers I always see in my running system
mknod –mode=600 /dev/mapper/control c 10 63
echo "Activating RAID sets"
# Saw that someone else used –ignorelocking. Not documented in dmraid -h.
# Eventually added –ignorelocking.
dmraid -ay –ignorelocking
echo "dmraid shows active RAID sets"
dmraid -sa
echo "dmraid shows inactive RAID sets"
dmraid -si

These statements are added as late as possible in the init script (after "udevstart", after modprobe
sata_promise and after modprobe reiserfs(probably not necessary)), but just before the script starts
to discover the root device.

Then I cpio and gzip the initrd and copy it with an appropriate name to /boot.

The relevant entry of /boot/grub/menu.lst looks as follows:

###Don't change this comment - YaST2 identifier: Original name: dmraid###
title SUSE LINUX 10.0 dmraid
root (hd0,0)
kernel /vmlinuz root=/dev/mapper/pdc_dbhbgbjdgi8 vga=0x31a selinux=0
resume=/dev/mapper/pdc_dbhbgbjdgi9 splash=silent showopts
initrd /initrd-2.6.13-15-smp-dmraid

So, in the step-by-step approach, this is the "intermediate" situation where /boot is still on the non-
RAID disk and the root (/) is on the RAID system.

/boot/grub/device.map looks as follows:

(fd0) /dev/fd0
(hd1) /dev/sda
(hd2) /dev/sdb
(hd0) /dev/hda

And then I boot. The last things I see on screen during booting, using this initrd are the echos and
messages from dmraid and finally, not surprising because the dmraid set is not active:

Waiting for device /dev/mapper/pdc_dbhbgbjdgi8 to appear: ............... not found – exiting to /bin/sh

Following this exit, you still have limited shell functionality (those functions which are on initrd). No ls.
So, what I do to check:

cd /dev/mapper
mknod control ... (the node is already there)
rm pdc* (response: no such file or directory)

So the dmraid control device is there. The pdc devices are not there, but we knew that already from
dmraid -si. Doing dmraid -ay at this stage also does not help, the RAID set will not activate.

Before considering more drastic measures, I thought I'd try this discussion group.


_______________________________________________

Ataraid-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/ataraid-list


_______________________________________________

Ataraid-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/ataraid-list

[Index of Archives]     [Linux RAID]     [Linux Device Mapper]     [Linux IDE]     [Linux SCSI]     [Kernel]     [Linux Books]     [Linux Admin]     [GFS]     [RPM]     [Yosemite Campgrounds]     [AMD 64]

  Powered by Linux