From: Peter Müller Date: Mon, 11 Apr 2022 19:14:43 +0000 (+0000) Subject: Core Update 167: Replace /etc/mtab by symlink to /proc/self/mounts X-Git-Tag: v2.27-core167~3^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cad2ce78dde6d3df70c1bbde011bb677b8df9ae4;p=ipfire-2.x.git Core Update 167: Replace /etc/mtab by symlink to /proc/self/mounts mount, as updated via util-linux, no longer writes /etc/mtab, causing programs to rely on this file's content (such as the check_disk Nagios plugin) to stop working. /proc/self/mounts contains all the necessary information, so it is fine to replace /etc/mtab by a symlink to it. Fixes: #12843 Signed-off-by: Peter Müller --- diff --git a/config/rootfiles/core/167/filelists/files b/config/rootfiles/core/167/filelists/files index 9f9ba5c345..18f533e932 100644 --- a/config/rootfiles/core/167/filelists/files +++ b/config/rootfiles/core/167/filelists/files @@ -1,7 +1,9 @@ etc/collectd.conf etc/inittab.d etc/rc.d/init.d/firewall +etc/rc.d/init.d/mountfs etc/rc.d/init.d/pakfire +etc/rc.d/init.d/partresize etc/sysctl.conf lib/udev/network-hotplug-bridges srv/web/ipfire/cgi-bin/connections.cgi diff --git a/config/rootfiles/core/167/update.sh b/config/rootfiles/core/167/update.sh index 0a647eb985..0f98f17579 100644 --- a/config/rootfiles/core/167/update.sh +++ b/config/rootfiles/core/167/update.sh @@ -386,6 +386,10 @@ hardlink -c -vv /lib/firmware # Regenerate all initrds dracut --regenerate-all --force +# Replace /etc/mtab by symlink as mount no longer writes it +rm -vf /etc/mtab +ln -vs /proc/self/mounts /etc/mtab + # Export the location database again and reload the firewall engine /usr/local/bin/update-location-database diff --git a/lfs/stage2 b/lfs/stage2 index 9f93babe2f..39697a848d 100644 --- a/lfs/stage2 +++ b/lfs/stage2 @@ -87,7 +87,8 @@ endif cp -rvf $(DIR_SRC)/config/etc/* /etc; [ ! -d "$(DIR_SRC)/config/etc-$(BUILD_ARCH)" ] || cp -rvf $(DIR_SRC)/config/etc-$(BUILD_ARCH)/* /etc cp -rvf $(DIR_SRC)/config/lib/* /lib; - touch /etc/{fs,m}tab + touch /etc/fstab + ln -s /proc/self/mounts /etc/mtab echo "$(NAME) v$(VERSION) - $(SLOGAN)" > /etc/issue echo "===============================" >> /etc/issue echo "\n running on \s \r \m" >> /etc/issue diff --git a/src/initscripts/system/mountfs b/src/initscripts/system/mountfs index b1533d6a28..81ed729c10 100644 --- a/src/initscripts/system/mountfs +++ b/src/initscripts/system/mountfs @@ -31,12 +31,6 @@ case "${1}" in # Remove fsck-related file system watermarks. rm -f /fastboot /forcefsck - boot_mesg "Create /etc/mtab..." - > /etc/mtab - mount -f / || failed=1 - (exit ${failed}) - evaluate_retval - # This will mount all filesystems that do not have _netdev in # their option list. _netdev denotes a network filesystem. boot_mesg "Mounting remaining file systems..." diff --git a/src/initscripts/system/partresize b/src/initscripts/system/partresize index 7605b9e2b1..147405e1e4 100644 --- a/src/initscripts/system/partresize +++ b/src/initscripts/system/partresize @@ -30,12 +30,6 @@ case "${1}" in mount -o remount,rw / > /dev/null evaluate_retval - boot_mesg "Create /etc/mtab..." - > /etc/mtab - mount -f / || failed=1 - (exit ${failed}) - evaluate_retval - # check if serial console enabled scon="off"; if [ ! "$(grep "console=ttyS0" /proc/cmdline)" == "" ]; then