mirror of
https://github.com/dracutdevs/dracut.git
synced 2024-10-27 17:55:47 +03:00
systemd: add missing dracut-mount.sh dracut-pre-mount.sh dracut.target
This commit is contained in:
parent
9dd9d81fc6
commit
510aecdbd8
41
modules.d/98systemd/dracut-mount.sh
Executable file
41
modules.d/98systemd/dracut-mount.sh
Executable file
@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
export DRACUT_SYSTEMD=1
|
||||
if [ -f /dracut-state.sh ]; then
|
||||
. /dracut-state.sh 2>/dev/null
|
||||
fi
|
||||
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||
|
||||
source_conf /etc/conf.d
|
||||
|
||||
make_trace_mem "hook mount" '1:shortmem' '2+:mem' '3+:slab'
|
||||
|
||||
getarg 'rd.break=mount' -d 'rdbreak=mount' && emergency_shell -n mount "Break mount"
|
||||
# mount scripts actually try to mount the root filesystem, and may
|
||||
# be sourced any number of times. As soon as one suceeds, no more are sourced.
|
||||
i=0
|
||||
while :; do
|
||||
if ismounted "$NEWROOT"; then
|
||||
usable_root "$NEWROOT" && break;
|
||||
umount "$NEWROOT"
|
||||
fi
|
||||
for f in $hookdir/mount/*.sh; do
|
||||
[ -f "$f" ] && . "$f"
|
||||
if ismounted "$NEWROOT"; then
|
||||
usable_root "$NEWROOT" && break;
|
||||
warn "$NEWROOT has no proper rootfs layout, ignoring and removing offending mount hook"
|
||||
umount "$NEWROOT"
|
||||
rm -f "$f"
|
||||
fi
|
||||
done
|
||||
|
||||
i=$(($i+1))
|
||||
[ $i -gt 20 ] && emergency_shell "Can't mount root filesystem"
|
||||
done
|
||||
|
||||
export -p > /dracut-state.sh
|
||||
|
||||
service="${0##*/}"
|
||||
cp "/etc/systemd/system/${service%.sh}.service" /run/systemd/system/
|
||||
exit 0
|
22
modules.d/98systemd/dracut-pre-mount.sh
Executable file
22
modules.d/98systemd/dracut-pre-mount.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
export DRACUT_SYSTEMD=1
|
||||
if [ -f /dracut-state.sh ]; then
|
||||
. /dracut-state.sh 2>/dev/null
|
||||
fi
|
||||
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||
|
||||
source_conf /etc/conf.d
|
||||
|
||||
make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab'
|
||||
# pre pivot scripts are sourced just before we doing cleanup and switch over
|
||||
# to the new root.
|
||||
getarg 'rd.break=pre-mount' 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount"
|
||||
source_hook pre-mount
|
||||
|
||||
export -p > /dracut-state.sh
|
||||
|
||||
service="${0##*/}"
|
||||
cp "/etc/systemd/system/${service%.sh}.service" /run/systemd/system/
|
||||
exit 0
|
11
modules.d/98systemd/dracut.target
Normal file
11
modules.d/98systemd/dracut.target
Normal file
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=dracut
|
||||
Requires=basic.target
|
||||
Conflicts=rescue.service rescue.target
|
||||
After=basic.target rescue.service rescue.target
|
||||
AllowIsolate=yes
|
||||
OnFailure=emergency.target
|
||||
OnFailureIsolate=yes
|
||||
|
||||
[Install]
|
||||
Alias=default.target
|
Loading…
Reference in New Issue
Block a user