Bug#840356: initscripts: mountkernfs.sh does not mount configfs
Dmitry Bogatov
KAction at debian.org
Thu Jul 25 20:08:02 BST 2019
control: tags -1 +patch
[ Sorry for late response ]
[2017-03-30 12:36] Harald Dunkel <harald.dunkel at aixigo.de>
> PS: Attached you can find a suggested fix.
>
> part 2 text/x-patch 334
> diff --git a/init.d/mountkernfs.sh b/init.d/mountkernfs.sh
> index e95cac3..56df7f9 100755
> --- a/init.d/mountkernfs.sh
> +++ b/init.d/mountkernfs.sh
> @@ -60,6 +60,7 @@ case "$1" in
> mount_filesystems mount_noupdate
> ;;
> start)
> + modprobe configfs || echo ignored
> mount_filesystems mount_noupdate
> ;;
> restart|reload|force-reload)
This patch loads `configfs' module, unconditionally. I find it
unfortunate.
I'd prefer to mount `configfs' after `kmod', if 'configfs' was loaded by
/etc/init.d/kmod; something like following. Opinions?
From 66fc843dc2c852fc47fe9cf1b671cf55d37ea62f Mon Sep 17 00:00:00 2001
From: Dmitry Bogatov <KAction at debian.org>
Date: Thu, 25 Jul 2019 06:28:29 +0000
Subject: [PATCH] Attempt to mount /sys/kernel/config after `kmod'
Currently, /etc/init.d/mountkernfs attempts to mount `configfs' before
apporiate kernel module could be loaded by `kmod' script. As such,
`configfs' is only mounted on systems where kernel module is loaded
by initramfs.
With this change `configfs' mount is tried in separate script after
`kmod'.
Closes: #840356
---
debian/initscripts.conffiles | 1 +
debian/initscripts.postinst | 2 +-
debian/initscripts.postrm | 2 +-
.../src/initscripts/etc/init.d/mount-configfs | 34 +++++++++++++++++++
.../src/initscripts/etc/init.d/mountkernfs.sh | 4 ---
5 files changed, 37 insertions(+), 6 deletions(-)
create mode 100644 debian/src/initscripts/etc/init.d/mount-configfs
diff --git a/debian/initscripts.conffiles b/debian/initscripts.conffiles
index 381e9f66..6d3fa7ec 100644
--- a/debian/initscripts.conffiles
+++ b/debian/initscripts.conffiles
@@ -22,6 +22,7 @@
/etc/init.d/umountnfs.sh
/etc/init.d/umountroot
/etc/init.d/urandom
+/etc/init.d/mount-configfs
/etc/default/devpts
/etc/default/halt
/etc/default/rcS
diff --git a/debian/initscripts.postinst b/debian/initscripts.postinst
index 82ab6a71..b1e3e6c2 100755
--- a/debian/initscripts.postinst
+++ b/debian/initscripts.postinst
@@ -45,7 +45,7 @@ make_rc_local_conffile
umask 022
-INITSCRIPTS="mountkernfs.sh brightness hostname.sh mountdevsubfs.sh checkroot.sh \
+INITSCRIPTS="mountkernfs.sh mount-configfs brightness hostname.sh mountdevsubfs.sh checkroot.sh \
checkroot-bootclean.sh checkfs.sh mountall.sh mountall-bootclean.sh \
mountnfs.sh mountnfs-bootclean.sh bootmisc.sh urandom halt reboot \
umountroot umountfs umountnfs.sh sendsigs killprocs single motd \
diff --git a/debian/initscripts.postrm b/debian/initscripts.postrm
index 6847f9ff..5e232568 100755
--- a/debian/initscripts.postrm
+++ b/debian/initscripts.postrm
@@ -5,7 +5,7 @@
set -e
-INITSCRIPTS="mountkernfs.sh brightness hostname.sh mountdevsubfs.sh checkroot.sh \
+INITSCRIPTS="mountkernfs.sh mount-configfs brightness hostname.sh mountdevsubfs.sh checkroot.sh \
checkroot-bootclean.sh checkfs.sh mountall.sh mountall-bootclean.sh \
mountnfs.sh mountnfs-bootclean.sh bootmisc.sh urandom halt reboot \
umountroot umountfs umountnfs.sh sendsigs killprocs single motd \
diff --git a/debian/src/initscripts/etc/init.d/mount-configfs b/debian/src/initscripts/etc/init.d/mount-configfs
new file mode 100644
index 00000000..6cfd16bf
--- /dev/null
+++ b/debian/src/initscripts/etc/init.d/mount-configfs
@@ -0,0 +1,34 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: mount-configfs
+# Required-Start: mountkernfs
+# Required-Stop:
+# Should-Start: kmod
+# Default-Start: S
+# Default-Stop:
+# Short-Description: Mount configfs kernel virtual file system.
+# Description: Mount configfs kernel virtual file system,
+# if "configfs" module is loaded.
+### END INIT INFO
+set -eu
+
+export PATH=/bin:/usr/bin
+
+case ${1:-missing} in
+(start|restart|force-reload)
+ readonly mountpoint='/sys/kernel/config'
+ # This directory exists only if "configfs" module was loaded by "kmod"
+ # script.
+ test -d "${mountpoint}" || exit 0
+ ! findmnt "${mountpoint}" >/dev/null || exit 0
+
+ mount none -t configfs "${mountpoint}"
+ ;;
+(stop)
+ # No-op
+ ;;
+(*)
+ echo "Usage: mount-configfs [start|stop]" >&2
+ exit 3
+ ;;
+esac
diff --git a/debian/src/initscripts/etc/init.d/mountkernfs.sh b/debian/src/initscripts/etc/init.d/mountkernfs.sh
index e95cac3a..146581a6 100755
--- a/debian/src/initscripts/etc/init.d/mountkernfs.sh
+++ b/debian/src/initscripts/etc/init.d/mountkernfs.sh
@@ -48,10 +48,6 @@ mount_filesystems () {
domount "$MNTMODE" pstore "" /sys/fs/pstore pstore ""
fi
- if [ -d /sys/kernel/config ]
- then
- domount "$MNTMODE" configfs "" /sys/kernel/config configfs ""
- fi
}
case "$1" in
--
Note, that I send and fetch email in batch, once in a few days.
Please, mention in body of your reply when you add or remove recepients.
More information about the Debian-init-diversity
mailing list