install:
mkdir -p $(DESTDIR)/usr/libexec/dracut
mkdir -p $(DESTDIR)/sbin
+ mkdir -p $(DESTDIR)/usr/libexec/dracut/pre-mount
+ mkdir -p $(DESTDIR)/usr/libexec/dracut/pre-udev
+ mkdir -p $(DESTDIR)/usr/libexec/dracut/pre-pivot
install -m 0755 dracut $(DESTDIR)/sbin/dracut
install -m 0755 init $(DESTDIR)/usr/libexec/dracut/init
install -m 0755 switch_root $(DESTDIR)/usr/libexec/dracut/switch_root
install -m 0755 echoer $(DESTDIR)/usr/libexec/dracut/echoer
mkdir $(DESTDIR)/usr/libexec/dracut/rules.d
for rule in rules.d/*.rules ; do install -m 0644 $$rule $(DESTDIR)/usr/libexec/dracut/rules.d ; done
-
+ for hooks in pre-*/* ; do install -m 0755 $$hook $(DESTDIR/usr/libexec/dracut ; done
clean:
rm -f *~
cp $initfile "$initdir/init"
cp $switchroot "$initdir/sbin/switch_root"
cp $echoer "$initdir/echoer"
+for hookdir in $hookdirs; do
+ for hook in "$dsrc/$hookdir"/*; do
+ [[ -f $hook ]] && inst "$hook" "/$hookdir/${hook##*/}"
+ done
+done
# and create some directory structure
for d in etc proc sys sysroot dev/pts; do mkdir -p "$initdir/$d"; done
source_all() {
local f
- [[ -d $1 ]] || return
- for f in "$d"/*; do; . "$f"; done
+ [[ $1 && -d /$1 ]] || return
+ for f in "/$1"/*; do [[ -f $f ]] && . "$f"; done
}
echo "Starting initrd..."
mknod /dev/tty1 c 4 1
mknod /dev/null c 1 3
+source_all pre-udev
+
# start up udev and trigger cold plugs
udevd --daemon
udevadm trigger >/dev/null 2>&1
tries=0
echo "Waiting up to 30 seconds for $root to become available"
udevadm settle --timeout=30
-source_all /pre-mount
+source_all pre-mount
echo "Trying to mount rootfs $root"
[[ -e $root ]] || emergency_shell
mount -t proc /proc $NEWROOT/proc
mount -t sysfs /sys $NEWROOT/sys
-# FIXME: load selinux policy. this should really be done after we switchroot
-if [ -x $NEWROOT/usr/sbin/load_policy ]; then
- chroot $NEWROOT /usr/sbin/load_policy -i
- if (($? == 3)); then
- echo "Initial SELinux policy load failed and enforcing mode requested."
- echo "Not continuing"
- sleep 100d
- exit 1
- fi
-fi
+source_all pre-pivot
# kill off udev
kill $(pidof udevd)
--- /dev/null
+#!/bin/bash
+# FIXME: load selinux policy. this should really be done after we switchroot
+[[ -x $NEWROOT/usr/sbin/load_policy ]] || return
+chroot $NEWROOT /usr/sbin/load_policy -i
+if (($? == 3)); then
+ echo "Initial SELinux policy load failed and enforcing mode requested."
+ echo "Not continuing"
+ sleep 100d
+ exit 1
+fi