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