diff options
| -rw-r--r-- | NEWS.md | 23 | ||||
| -rw-r--r-- | conf.d/Makefile | 2 | ||||
| -rw-r--r-- | conf.d/mtab | 5 | ||||
| -rw-r--r-- | init.d/mtab.in | 15 | 
4 files changed, 37 insertions, 8 deletions
@@ -3,6 +3,29 @@  This file will contain a list of notable changes for each release. Note  the information in this file is in reverse order. +## OpenRC-0.18.3 + +Modern Linux systems expect /etc/mtab to be a symbolic link to +/proc/self/mounts. Reasons for this change include support for mount +namespaces, which will not work if /etc/mtab is a file. +By default, the mtab service enforces this on each reboot. + +If you find that this breaks your system in some way, please do the +following: + +- Set mtab_is_file=yes in /etc/conf.d/mtab. + +- Restart mtab. This will recreate the /etc/mtab file. + +- Check for an issue on https://github.com/openrc/openrc/issues +  explaining why you need /etc/mtab to be a file. If there isn't one, +  please open one and explain in detail why you need this to be a file. +  If there is one, please add your comments to it. Please give concrete +  examples of why  it is important that /etc/mtab be a file instead of a +  symbolic link. Those comments will be taken into consideration for how +  long to keep supporting mtab as a file or when the support can be +  removed. +  ## OpenRC-0.18  The behaviour of localmount and netmount in this version is changing. In diff --git a/conf.d/Makefile b/conf.d/Makefile index 93476fc2..34a3b070 100644 --- a/conf.d/Makefile +++ b/conf.d/Makefile @@ -15,7 +15,7 @@ include ${MK}/os.mk  CONF-FreeBSD=	ipfw moused powerd rarpd savecore syscons -CONF-Linux=	consolefont devfs dmesg hwclock keymaps killprocs modules +CONF-Linux=	consolefont devfs dmesg hwclock keymaps killprocs modules mtab  CONF-NetBSD=	moused rarpd savecore diff --git a/conf.d/mtab b/conf.d/mtab new file mode 100644 index 00000000..9e16d9b3 --- /dev/null +++ b/conf.d/mtab @@ -0,0 +1,5 @@ +# This setting controls whether /etc/mtab is a file or symbolic link. +# Most of the time, you shouldn't touch this. However, if the default +# breaks your system in some way, please see the NEWS.md file that comes +# with OpenRC for the actions to take. +# mtab_is_file=no diff --git a/init.d/mtab.in b/init.d/mtab.in index 1442ffd6..4deaba61 100644 --- a/init.d/mtab.in +++ b/init.d/mtab.in @@ -14,16 +14,17 @@ start()  {  	local rc=0  	ebegin "Updating /etc/mtab" -	if [ -L /etc/mtab ] ; then -		ewarn "/etc/mtab is a symlink, not updating." -		ewarn "FYI - You can safely remove mtab from your runlevels." -	elif ! checkpath -W /etc; then +	if ! checkpath -W /etc; then  		rc=1 -	elif [ ! -e /etc/mtab ]; then -		einfo "Creating mtab symlink" +	elif ! yesno ${mtab_is_file:-no}; then +		[ ! -L /etc/mtab ] && [ -f /etc/mtab] && +			ewarn "Removing /etc/mtab file" +		einfo "Creating mtab symbolic link"  		ln -snf /proc/self/mounts /etc/mtab  	else -		einfo "Updating mtab file" +		[ -L /etc/mtab ] && ewarn "Removing /etc/mtab symbolic link" +		rm -f /etc/mtab +		einfo "Creating mtab file"  		# With / as tmpfs we cannot umount -at tmpfs in localmount as that  		# makes / readonly and dismounts all tmpfs even if in use which is  		# not good. Luckily, umount uses /etc/mtab instead of /proc/mounts  | 
