2 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
3 # ex: ts=8 sw=4 sts=4 et filetype=sh
6 [[ $mount_needs ]] && return 1
7 if [[ -x $systemdutildir/systemd ]]; then
21 # SYSTEMD_VERSION=$($systemdutildir/systemd --version | { read a b a; echo $b; })
22 # if (( $SYSTEMD_VERSION < 198 )); then
23 # dfatal "systemd version $SYSTEMD_VERSION is too low. Need at least version 198."
27 if strstr "$prefix" "/run/"; then
28 dfatal "systemd does not work with a prefix, which contains \"/run\"!!"
33 $systemdutildir/systemd \
34 $systemdutildir/systemd-cgroups-agent \
35 $systemdutildir/systemd-shutdown \
36 $systemdutildir/systemd-reply-password \
37 $systemdutildir/systemd-fsck \
38 $systemdutildir/systemd-udevd \
39 $systemdutildir/systemd-journald \
40 $systemdutildir/systemd-sysctl \
41 $systemdutildir/systemd-modules-load \
42 $systemdutildir/system-generators/systemd-fstab-generator \
43 $systemdsystemunitdir/cryptsetup.target \
44 $systemdsystemunitdir/emergency.target \
45 $systemdsystemunitdir/sysinit.target \
46 $systemdsystemunitdir/basic.target \
47 $systemdsystemunitdir/halt.target \
48 $systemdsystemunitdir/kexec.target \
49 $systemdsystemunitdir/initrd.target \
50 $systemdsystemunitdir/initrd-fs.target \
51 $systemdsystemunitdir/initrd-root-fs.target \
52 $systemdsystemunitdir/local-fs.target \
53 $systemdsystemunitdir/local-fs-pre.target \
54 $systemdsystemunitdir/remote-fs.target \
55 $systemdsystemunitdir/remote-fs-pre.target \
56 $systemdsystemunitdir/network.target \
57 $systemdsystemunitdir/nss-lookup.target \
58 $systemdsystemunitdir/nss-user-lookup.target \
59 $systemdsystemunitdir/poweroff.target \
60 $systemdsystemunitdir/reboot.target \
61 $systemdsystemunitdir/rescue.target \
62 $systemdsystemunitdir/rpcbind.target \
63 $systemdsystemunitdir/shutdown.target \
64 $systemdsystemunitdir/final.target \
65 $systemdsystemunitdir/sigpwr.target \
66 $systemdsystemunitdir/sockets.target \
67 $systemdsystemunitdir/swap.target \
68 $systemdsystemunitdir/timers.target \
69 $systemdsystemunitdir/paths.target \
70 $systemdsystemunitdir/systemd-ask-password-console.path \
71 $systemdsystemunitdir/systemd-udevd-control.socket \
72 $systemdsystemunitdir/systemd-udevd-kernel.socket \
73 $systemdsystemunitdir/systemd-ask-password-plymouth.path \
74 $systemdsystemunitdir/systemd-journald.socket \
75 $systemdsystemunitdir/systemd-ask-password-console.service \
76 $systemdsystemunitdir/systemd-modules-load.service \
77 $systemdsystemunitdir/systemd-halt.service \
78 $systemdsystemunitdir/systemd-poweroff.service \
79 $systemdsystemunitdir/systemd-reboot.service \
80 $systemdsystemunitdir/systemd-kexec.service \
81 $systemdsystemunitdir/systemd-fsck@.service \
82 $systemdsystemunitdir/systemd-udevd.service \
83 $systemdsystemunitdir/systemd-udev-trigger.service \
84 $systemdsystemunitdir/systemd-udev-settle.service \
85 $systemdsystemunitdir/systemd-ask-password-plymouth.service \
86 $systemdsystemunitdir/systemd-journald.service \
87 $systemdsystemunitdir/systemd-vconsole-setup.service \
88 $systemdsystemunitdir/systemd-random-seed-load.service \
89 $systemdsystemunitdir/sysinit.target.wants/systemd-modules-load.service \
90 $systemdsystemunitdir/sysinit.target.wants/systemd-ask-password-console.path \
91 $systemdsystemunitdir/sysinit.target.wants/systemd-journald.service \
92 $systemdsystemunitdir/sockets.target.wants/systemd-udevd-control.socket \
93 $systemdsystemunitdir/sockets.target.wants/systemd-udevd-kernel.socket \
94 $systemdsystemunitdir/sockets.target.wants/systemd-journald.socket \
95 $systemdsystemunitdir/sysinit.target.wants/systemd-udevd.service \
96 $systemdsystemunitdir/sysinit.target.wants/systemd-udev-trigger.service \
98 $systemdsystemunitdir/ctrl-alt-del.target \
99 $systemdsystemunitdir/syslog.socket \
100 $systemdsystemunitdir/initrd-switch-root.target \
101 $systemdsystemunitdir/initrd-switch-root.service \
102 $systemdsystemunitdir/initrd-cleanup.service \
103 $systemdsystemunitdir/initrd-udevadm-cleanup-db.service \
104 $systemdsystemunitdir/initrd-parse-etc.service \
106 $systemdsystemunitdir/umount.target \
108 $systemdsystemunitdir/system.slice
110 journalctl systemctl echo swapoff systemd-cgls
113 /usr/lib/modules-load.d/*.conf \
114 /usr/lib/sysctl.d/*.conf
118 for i in "$1"/*.conf; do
119 [[ -f $i ]] || continue
133 _mods=$(modules_load_get /usr/lib/modules-load.d)
134 [[ $_mods ]] && instmods $_mods
136 if [[ $hostonly ]]; then
138 /etc/systemd/journald.conf \
139 /etc/systemd/system.conf \
144 /etc/modules-load.d/*.conf \
145 /etc/sysctl.d/*.conf \
148 _mods=$(modules_load_get /etc/modules-load.d)
149 [[ $_mods ]] && instmods $_mods
151 if ! [[ -e "$initdir/etc/machine-id" ]]; then
152 > "$initdir/etc/machine-id"
156 # install adm user/group for journald
157 dracut_install nologin
158 egrep '^systemd-journal:' "$initdir/etc/passwd" 2>/dev/null >> "$initdir/etc/passwd"
159 egrep '^systemd-journal:' /etc/group >> "$initdir/etc/group"
161 ln -fs $systemdutildir/systemd "$initdir/init"
162 ln -fs $systemdutildir/systemd "$initdir/sbin/init"
164 inst_script "$moddir/dracut-emergency.sh" /bin/dracut-emergency
165 inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/emergency.service
166 inst_simple "$moddir/dracut-emergency.service" ${systemdsystemunitdir}/dracut-emergency.service
167 inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/rescue.service
169 ln -fs initrd.target "${initdir}${systemdsystemunitdir}/default.target"
171 inst_script "$moddir/dracut-cmdline.sh" /bin/dracut-cmdline
172 inst_script "$moddir/dracut-pre-udev.sh" /bin/dracut-pre-udev
173 inst_script "$moddir/dracut-pre-trigger.sh" /bin/dracut-pre-trigger
174 inst_script "$moddir/dracut-initqueue.sh" /bin/dracut-initqueue
175 inst_script "$moddir/dracut-pre-mount.sh" /bin/dracut-pre-mount
176 inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount
177 inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot
179 inst_rules 99-systemd.rules
183 dracut-emergency.service \
185 systemd-ask-password-console.service \
186 systemd-ask-password-plymouth.service \
188 mkdir -p "${initdir}${systemdsystemunitdir}/${i}.wants"
189 ln_r "${systemdsystemunitdir}/systemd-vconsole-setup.service" \
190 "${systemdsystemunitdir}/${i}.wants/systemd-vconsole-setup.service"
193 mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants"
195 dracut-cmdline.service \
196 dracut-initqueue.service \
197 dracut-mount.service \
198 dracut-pre-mount.service \
199 dracut-pre-pivot.service \
200 dracut-pre-trigger.service \
201 dracut-pre-udev.service \
203 inst_simple "$moddir/${i}" "$systemdsystemunitdir/${i}"
204 ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/initrd.target.wants/${i}"
207 mkdir -p "$initdir/etc/systemd"
208 # turn off RateLimit for journal
211 echo "RateLimitInterval=0"
212 echo "RateLimitBurst=0"
213 } >> "$initdir/etc/systemd/journald.conf"