svn commit: r196541 - stable/7/etc

Bruce M Simpson bms at FreeBSD.org
Tue Aug 25 13:39:15 UTC 2009


Author: bms
Date: Tue Aug 25 13:39:14 2009
New Revision: 196541
URL: http://svn.freebsd.org/changeset/base/196541

Log:
  MFC r179014:
   Add support for /conf/T/M/remount_optional.
  
   The rc.initdiskless functionality is used by NanoBSD to allow configuration
   files to live on a separate configuration slice, which acts as NVRAM, whilst
   the system image is mounted read-only.
  
   Normally, if the remount command fails during boot, this is regarded as
   a fatal error. If /conf/T/M/remount_optional is present, this error is
   non-fatal. If the file is not present, the default behaviour is unchanged.
  
   This is very useful for people building live CD images using FreeBSD,
   where the NVRAM lives somewhere completely differently from the system image,
   and may be present on removable media which is not present during the
   initial boot.

Modified:
  stable/7/etc/   (props changed)
  stable/7/etc/rc.initdiskless
  stable/7/etc/termcap.small   (props changed)

Modified: stable/7/etc/rc.initdiskless
==============================================================================
--- stable/7/etc/rc.initdiskless	Tue Aug 25 13:04:13 2009	(r196540)
+++ stable/7/etc/rc.initdiskless	Tue Aug 25 13:39:14 2009	(r196541)
@@ -69,6 +69,10 @@
 # 		/conf/1.2.3.4/foo/remount contains "mount -o ro /dev/ad0s3",
 #		then /dev/ad0s3 will be be mounted on /conf/1.2.3.4/foo/
 #
+# /conf/T/M/remount_optional
+#		If this file exists, then failure to execute the mount
+#		command contained in /conf/T/M/remount is non-fatal.
+#
 # /conf/T/M/diskless_remount
 #		The contents of the file points to an NFS filesystem,
 #		possibly followed by mount_nfs options. If the server name
@@ -147,8 +151,12 @@ log() {
 #
 #	checks error code and drops into shell on failure.
 #	if shell exits, terminates script as well as /etc/rc.
+#	if remount_optional exists under the mountpoint, skip this check.
 #
 chkerr() {
+    lastitem () ( n=$(($# - 1)) ; shift $n ; echo $1 )
+    mountpoint="$(lastitem $2)"
+    [ -r $mountpoint/remount_optional ] && ( echo "$2 failed: ignoring due to remount_optional" ; return )
     case $1 in
     0)
 	;;


More information about the svn-src-all mailing list