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 11:41:49 +0000 Message-ID: In-Reply-To: <4a32044d-d489-a166-2981-3a3bb01eef4b@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0877385987875181110==" List-Id: --===============0877385987875181110== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Well, the /etc/mtab part in the cdrom LFS file turns out to overwrite the sym= link created by stage2. Fixed in commit 9a271cf7a8886c09854bdd69e636f1ef56280b1d - as I to= ld you. :-) > Hello Michael, >=20 > thanks for reporting this. >=20 > I'll investigate and get back to you later, if necessary. >=20 > Thanks, and best regards, > Peter M=C3=BCller >=20 >=20 >> Hello, >> >> I just installed the latest nightly build from the ISO image and /etc/mtab= is a regular file. >> >> Please see the attached screenshot. >> >> >> >> -Michael >> >>> On 12 Apr 2022, at 13:13, Michael Tremer wr= ote: >>> >>> 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/co= re/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= =99t 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 = hacks 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)/= 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 "=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/m= ountfs >>>>>> 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/syste= m/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 >> >> --===============0877385987875181110==--