From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter =?utf-8?q?M=C3=BCller?= To: development@lists.ipfire.org Subject: Re: [PATCH] Core Update 167: Replace /etc/mtab by symlink to /proc/self/mounts Date: Wed, 13 Apr 2022 09:26:43 +0000 Message-ID: <4a32044d-d489-a166-2981-3a3bb01eef4b@ipfire.org> In-Reply-To: <22E9E77B-27A4-4D86-86B3-D9582E2B2BF0@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5276125903417048612==" List-Id: --===============5276125903417048612== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hello Michael, thanks for reporting this. I'll investigate and get back to you later, if necessary. Thanks, and best regards, Peter M=C3=BCller > Hello, >=20 > I just installed the latest nightly build from the ISO image and /etc/mtab = is a regular file. >=20 > Please see the attached screenshot. >=20 >=20 >=20 > -Michael >=20 >> On 12 Apr 2022, at 13:13, Michael Tremer wro= te: >> >> Hello, >> >>> On 12 Apr 2022, at 13:01, Peter M=C3=BCller = wrote: >>> >>> Hello Michael, >>> >>>> Hello, >>>> >>>>> On 11 Apr 2022, at 20:14, Peter M=C3=BCller wrote: >>>>> >>>>> 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=C3=BCller >>>>> --- >>>>> config/rootfiles/core/167/update.sh | 4 ++++ >>>>> lfs/cdrom | 4 ++-- >>>>> lfs/stage2 | 3 ++- >>>>> src/initscripts/system/mountfs | 6 ------ >>>>> src/initscripts/system/partresize | 6 ------ >>>>> 5 files changed, 8 insertions(+), 15 deletions(-) >>>>> >>>>> diff --git a/config/rootfiles/core/167/update.sh b/config/rootfiles/cor= e/167/update.sh >>>>> index fdcb843cf..a9be60a1d 100644 >>>>> --- a/config/rootfiles/core/167/update.sh >>>>> +++ b/config/rootfiles/core/167/update.sh >>>>> @@ -337,6 +337,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 >>>> >>>> Okay. This would work. >>> >>> this sounds like you would have done that in another way... >> >> No, I just wanted to say something positive and as you know I don=E2=80=99= t do this very often, so I am not very good at it :) >> >> This is the way to go. >> >>>> >>>>> + >>>>> # Rebuild IPS rules >>>>> perl -e "require '/var/ipfire/ids-functions.pl'; &IDS::oinkmaster();" >>>>> /etc/init.d/suricata reload >>>>> diff --git a/lfs/cdrom b/lfs/cdrom >>>>> index f35ff6a35..d84f8c23c 100644 >>>>> --- a/lfs/cdrom >>>>> +++ b/lfs/cdrom >>>>> @@ -1,7 +1,7 @@ >>>>> #######################################################################= ######## >>>>> # # >>>>> # IPFire.org - A linux based firewall # >>>>> -# Copyright (C) 2007-2021 IPFire Team # >>>>> +# Copyright (C) 2007-2022 IPFire Team # >>>>> # # >>>>> # This program is free software: you can redistribute it and/or modify # >>>>> # it under the terms of the GNU General Public License as published by # >>>>> @@ -149,7 +149,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) >>>>> >>>>> # Clear mtab (prevents .journal problems) >>>>> rm -vf /etc/mtab >>>>> - echo > /etc/mtab >>>>> + ln -s /proc/self/mounts /etc/mtab >>>> >>>> This however should not be required. >>> >>> Where does the symlink then come from on new installations? >> >> It will be part of the regular image like all the other symlinks, too. >> >> -Michael >> >>> >>> Thanks, and best regards, >>> Peter M=C3=BCller >>> >>>> >>>> Shipping the symlink should be enough. It would be great to get rid of h= acks like these. >>>> >>>>> # Create filelist for packaging. >>>>> BUILDTARGET=3D"$(BUILDTARGET)" BUILD_ARCH=3D"$(BUILD_ARCH)" KVER=3D"$(= KVER)" \ >>>>> diff --git a/lfs/stage2 b/lfs/stage2 >>>>> index 9f93babe2..39697a848 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)/c= onfig/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 "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D" >> /etc/issue >>>>> echo "\n running on \s \r \m" >> /etc/issue >>>>> diff --git a/src/initscripts/system/mountfs b/src/initscripts/system/mo= untfs >>>>> index b1533d6a2..81ed729c1 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=3D1 >>>>> - (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 7605b9e2b..147405e1e 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=3D1 >>>>> - (exit ${failed}) >>>>> - evaluate_retval >>>>> - >>>>> # check if serial console enabled >>>>> scon=3D"off"; >>>>> if [ ! "$(grep "console=3DttyS0" /proc/cmdline)" =3D=3D "" ]; then >>>>> --=20 >>>>> 2.34.1 >=20 >=20 --===============5276125903417048612==--