Browse Source

Create a self-contained structure for dracut modules

All modules now live in a subdirectory /modules.d.  Each module is
self-contained -- it should contain everything that it will install
on the initrd.  All modules must include a script named install, which
will be sourced by dracut.  This script should do the actual file installation
using inst methods.  The moddir variable will point to the full path to the
module dracut is currently working on.

As usual, this patch series applies on top of my previous patch series,
and is available as normalize-modules from http://git.fnordovax.org/dracut.
master
Victor Lowther 15 years ago committed by Harald Hoyer
parent
commit
20abd91484
  1. 8
      dracut
  2. 0
      modules.d/00dash/install
  3. 0
      modules.d/10redhat-i18n/install
  4. 0
      modules.d/40network/60-net.rules
  5. 0
      modules.d/40network/dhclient-script
  6. 0
      modules.d/40network/ifup
  7. 8
      modules.d/40network/install
  8. 0
      modules.d/40network/kill-dhclient.sh
  9. 0
      modules.d/40network/run-dhclient.sh
  10. 0
      modules.d/90crypt/63-luks.rules
  11. 0
      modules.d/90crypt/cryptroot.sh
  12. 4
      modules.d/90crypt/install
  13. 0
      modules.d/90kernel-modules/install
  14. 0
      modules.d/90lvm/64-lvm.rules
  15. 3
      modules.d/90lvm/install
  16. 0
      modules.d/95debug/install
  17. 0
      modules.d/95terminfo/install
  18. 0
      modules.d/95udev-rules/install
  19. 0
      modules.d/99base/init
  20. 8
      modules.d/99base/install
  21. 0
      modules.d/99base/mount-partition.sh
  22. 0
      modules.d/99base/resume.sh
  23. 0
      modules.d/99base/selinux-loadpolicy.sh
  24. 0
      modules.d/99base/switch_root
  25. 8
      modules/40network.sh
  26. 4
      modules/90crypt.sh
  27. 3
      modules/90lvm.sh
  28. 8
      modules/99base.sh

8
dracut

@ -52,12 +52,14 @@ for d in bin sbin usr/bin usr/sbin usr/lib etc proc sys sysroot dev/pts; do @@ -52,12 +52,14 @@ for d in bin sbin usr/bin usr/sbin usr/lib etc proc sys sysroot dev/pts; do
done

# source all our modules
for f in "$dsrc/modules"/*.sh; do
mod=${f##*/}; mod=${mod#[0-9][0-9]}; mod=${mod%.sh}
for moddir in "$dsrc/modules.d"/*; do
[[ -d $moddir || -L $moddir ]] || continue
mod=${moddir##*/}; mod=${mod#[0-9][0-9]};
if [[ $dracutmodules = all ]] || strstr "$dracutmodules" "$mod"; then
[[ -x $f ]] && . "$f"
[[ -x $moddir/install ]] && . "$moddir/install"
fi
done
unset moddir

## final stuff that has to happen


0
modules/00dash.sh → modules.d/00dash/install

0
modules/10redhat-i18n.sh → modules.d/10redhat-i18n/install

0
rules.d/60-net.rules → modules.d/40network/60-net.rules

0
dhclient-script → modules.d/40network/dhclient-script

0
ifup → modules.d/40network/ifup

8
modules.d/40network/install

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
#!/bin/bash
dracut_install ip dhclient
inst "$moddir/ifup" "/sbin/ifup"
inst "$moddir/dhclient-script" "/sbin/dhclient-script"
instmods =networking ecb arc4
inst_rules "$moddir/60-net.rules"
inst_hook pre-pivot 10 "$moddir/kill-dhclient.sh"
inst_hook pre-mount 70 "$moddir/run-dhclient.sh"

0
hooks/kill-dhclient.sh → modules.d/40network/kill-dhclient.sh

0
hooks/run-dhclient.sh → modules.d/40network/run-dhclient.sh

0
rules.d/63-luks.rules → modules.d/90crypt/63-luks.rules

0
hooks/cryptroot.sh → modules.d/90crypt/cryptroot.sh

4
modules.d/90crypt/install

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
#!/bin/bash
inst cryptsetup
inst_rules "$moddir/63-luks.rules"
inst_hook mount 10 "$moddir/cryptroot.sh"

0
modules/90kernel-modules.sh → modules.d/90kernel-modules/install

0
rules.d/64-lvm.rules → modules.d/90lvm/64-lvm.rules

3
modules.d/90lvm/install

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
#!/bin/bash
inst lvm
inst_rules "$moddir/64-lvm.rules"

0
modules/95debug.sh → modules.d/95debug/install

0
modules/95terminfo.sh → modules.d/95terminfo/install

0
modules/95udev-rules.sh → modules.d/95udev-rules/install

0
init → modules.d/99base/init

8
modules.d/99base/install

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
#!/bin/bash
dracut_install mount mknod mkdir modprobe pidof sleep chroot echo sed sh ls
# install our scripts and hooks
inst "$moddir/init" "/init"
inst "$moddir/switch_root" "/sbin/switch_root"
inst_hook pre-pivot 50 "$moddir/selinux-loadpolicy.sh"
inst_hook mount 90 "$moddir/resume.sh"
inst_hook mount 99 "$moddir/mount-partition.sh"

0
hooks/mount-partition.sh → modules.d/99base/mount-partition.sh

0
hooks/resume.sh → modules.d/99base/resume.sh

0
hooks/selinux-loadpolicy.sh → modules.d/99base/selinux-loadpolicy.sh

0
switch_root → modules.d/99base/switch_root

8
modules/40network.sh

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
#!/bin/bash
dracut_install ip dhclient
inst "$dsrc/ifup" "/sbin/ifup"
inst "$dsrc/dhclient-script" "/sbin/dhclient-script"
instmods =networking ecb arc4
inst_rules "$dsrc/rules.d/60-net.rules"
inst_hook pre-pivot 10 "$dsrc/hooks/kill-dhclient.sh"
inst_hook pre-mount 70 "$dsrc/hooks/run-dhclient.sh"

4
modules/90crypt.sh

@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
#!/bin/bash
inst cryptsetup
inst_rules "$dsrc/rules.d/63-luks.rules"
inst_hook mount 10 "$dsrc/hooks/cryptroot.sh"

3
modules/90lvm.sh

@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
#!/bin/bash
inst lvm
inst_rules "$dsrc/rules.d/64-lvm.rules"

8
modules/99base.sh

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
#!/bin/bash
dracut_install mount mknod mkdir modprobe pidof sleep chroot echo sed sh ls
# install our scripts and hooks
inst "$initfile" "/init"
inst "$switchroot" "/sbin/switch_root"
inst_hook pre-pivot 50 "$dsrc/hooks/selinux-loadpolicy.sh"
inst_hook mount 90 "$dsrc/hooks/resume.sh"
inst_hook mount 99 "$dsrc/hooks/mount-partition.sh"
Loading…
Cancel
Save