#!/bin/sh # make sure we are being run in the right directory... if [ -f mkinitramfs ] then : else echo >&2 mkinitramfs must be run from the mdadm source directory. exit 1 fi if [ -f /bin/busybox ] then : good, it exists case `file /bin/busybox` in *statically* ) : good ;; * ) echo >&2 mkinitramfs: /bin/busybox is not statically linked: cannot proceed. exit 1 esac else echo >&2 "mkinitramfs: /bin/busybox doesn't exist - please install it statically linked." exit 1 fi rm -rf initramfs mkdir initramfs mkdir initramfs/bin make mdadm.static cp mdadm.static initramfs/bin/mdadm cp /bin/busybox initramfs/bin/busybox ln initramfs/bin/busybox initramfs/bin/sh cat <<- END > initramfs/init #!/bin/sh echo 'Auto-assembling boot md array' mkdir /proc mount -t proc proc /proc if [ -n "$rootuuid" ] then arg=--uuid=$rootuuid elif [ -n "$mdminor" ] then arg=--super-minor=$mdminor else arg=--super-minor=0 fi echo "Using $arg" mdadm -Acpartitions $arg --auto=part /dev/mda cd / mount /dev/mda1 /root || mount /dev/mda /root umount /proc cd /root exec chroot . /sbin/init < /dev/console > /dev/console 2>&1 END chmod +x initramfs/init (cd initramfs find init bin | cpio -o -H newc | gzip --best ) > init.cpio.gz rm -rf initramfs ls -l init.cpio.gz