On Sun, Apr 18, 2010 at 1:01 AM, Neil Bothwick <n...@digimed.co.uk> wrote: > On Sat, 17 Apr 2010 14:36:39 -0700, Mark Knecht wrote: > >> Empirically any way there doesn't seem to be a problem. I built the >> new kernel and it booted normally so I think I'm misinterpreting what >> was written in the Wiki or the Wiki is wrong. > > As long as /boot is not on RAID, or is on RAID1, you don't need an > initrd. I've been booting this system for years with / on RAID1 and > everything else on RAID5.
From my research on the topic (I also wanted to have both /boot and / on RAID1) there are the following traps: * there is an option for the kernel that must be enabled at compile time that enables automatic RAID detection and assembly by the kernel before mounting /, but it works only for MD metadata 0.96 (see [1]); * the default metadata for `mdadm` is 1.2 (see `man mdadm`, and search for `--metadata`), so when creating the RAID you must explicitly select the metadata you want; * indeed the preferred may to do it is using an initramfs; (I've posted below some shell snippets that create do exactly this: assemble my RAID); (the code snippets are between {{{...}}}, it's from a MoinMoin wiki page;) Also a question for about /boot on RAID1... I didn't manage to make it work... Could you Neil please tell me exactly how you did this? I'm most interested in how you've convinced Grub to work... Best, Ciprian. [1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/md.txt;h=188f4768f1d58c013d962f993ae36483195fd288;hb=HEAD ==== Init-ramfs preparation ==== {{{ mkdir -p /usr/src/initramfs cd /usr/src/initramfs mkdir /usr/src/initramfs/bin mkdir /usr/src/initramfs/dev mkdir /usr/src/initramfs/proc mkdir /usr/src/initramfs/rootfs mkdir /usr/src/initramfs/sys cp -a /bin/busybox /usr/src/initramfs/bin/busybox cp -a /sbin/mdadm /usr/src/initramfs/bin/mdadm cp -a /sbin/jfs_fsck /usr/src/initramfs/bin/jfs_fsck cp -a /dev/console /usr/src/initramfs/dev/console cp -a /dev/null /usr/src/initramfs/dev/null cp -a /dev/sda2 /usr/src/initramfs/dev/sda2 cp -a /dev/sdc2 /usr/src/initramfs/dev/sdc2 cp -a /dev/md127 /usr/src/initramfs/dev/md127 }}} {{{ cat >/usr/src/initramfs/init <<'EOS' #!/bin/busybox ash exec </dev/null >/dev/null 2>/dev/console exec 1>&2 /bin/busybox mount -n -t proc none /proc || exit 1 /bin/busybox mount -n -t sysfs none /sys || exit 1 /bin/mdadm -A /dev/md127 -R -a md /dev/sda2 /dev/sdc2 || exit 1 /bin/jfs_fsck -p /dev/md127 || true /bin/busybox mount -n -t jfs /dev/md127 /rootfs -o ro,exec,suid,dev,relatime,errors=remount-ro || exit 1 /bin/busybox umount -n /sys || exit 1 /bin/busybox umount -n /proc || exit 1 # /bin/busybox ash </dev/console >/dev/console 2>/dev/console || exit 1 exec /bin/busybox switch_root /rootfs /sbin/init || exit 1 exit 1 EOS chmod +x /usr/src/initramfs/init }}} {{{ ( cd /usr/src/initramfs ; find . | cpio --quiet -o -H newc | gzip -9 > /boot/initramfs ) }}}