1*0696600cSBjoern A. Zeeb#!/bin/sh 2*0696600cSBjoern A. Zeeb# 3*0696600cSBjoern A. Zeeb# $FreeBSD$ 4*0696600cSBjoern A. Zeeb# 5*0696600cSBjoern A. Zeeb 6*0696600cSBjoern A. Zeeb# PROVIDE: mountcritlocal 7*0696600cSBjoern A. Zeeb# REQUIRE: root hostid_save mdconfig 8*0696600cSBjoern A. Zeeb# KEYWORD: nojail shutdown 9*0696600cSBjoern A. Zeeb 10*0696600cSBjoern A. Zeeb. /etc/rc.subr 11*0696600cSBjoern A. Zeeb 12*0696600cSBjoern A. Zeebname="mountcritlocal" 13*0696600cSBjoern A. Zeebdesc="Mount critical local filesystems" 14*0696600cSBjoern A. Zeebstart_cmd="mountcritlocal_start" 15*0696600cSBjoern A. Zeebstop_cmd=sync 16*0696600cSBjoern A. Zeeb 17*0696600cSBjoern A. Zeebmountcritlocal_start() 18*0696600cSBjoern A. Zeeb{ 19*0696600cSBjoern A. Zeeb local err holders waited 20*0696600cSBjoern A. Zeeb 21*0696600cSBjoern A. Zeeb # Set up the list of network filesystem types for which mounting 22*0696600cSBjoern A. Zeeb # should be delayed until after network initialization. 23*0696600cSBjoern A. Zeeb case ${extra_netfs_types} in 24*0696600cSBjoern A. Zeeb [Nn][Oo]) 25*0696600cSBjoern A. Zeeb ;; 26*0696600cSBjoern A. Zeeb *) 27*0696600cSBjoern A. Zeeb netfs_types="${netfs_types} ${extra_netfs_types}" 28*0696600cSBjoern A. Zeeb ;; 29*0696600cSBjoern A. Zeeb esac 30*0696600cSBjoern A. Zeeb 31*0696600cSBjoern A. Zeeb # Mount everything except nfs filesystems. 32*0696600cSBjoern A. Zeeb check_startmsgs && echo -n 'Mounting local filesystems:' 33*0696600cSBjoern A. Zeeb mount_excludes='no' 34*0696600cSBjoern A. Zeeb for i in ${netfs_types}; do 35*0696600cSBjoern A. Zeeb fstype=${i%:*} 36*0696600cSBjoern A. Zeeb mount_excludes="${mount_excludes}${fstype}," 37*0696600cSBjoern A. Zeeb done 38*0696600cSBjoern A. Zeeb mount_excludes=${mount_excludes%,} 39*0696600cSBjoern A. Zeeb 40*0696600cSBjoern A. Zeeb mount -a -t ${mount_excludes} 41*0696600cSBjoern A. Zeeb err=$? 42*0696600cSBjoern A. Zeeb if [ ${err} -ne 0 ]; then 43*0696600cSBjoern A. Zeeb echo 'Mounting /etc/fstab filesystems failed,' \ 44*0696600cSBjoern A. Zeeb 'will retry after root mount hold release' 45*0696600cSBjoern A. Zeeb root_hold_wait 46*0696600cSBjoern A. Zeeb mount -a -t ${mount_excludes} 47*0696600cSBjoern A. Zeeb err=$? 48*0696600cSBjoern A. Zeeb fi 49*0696600cSBjoern A. Zeeb 50*0696600cSBjoern A. Zeeb check_startmsgs && echo '.' 51*0696600cSBjoern A. Zeeb 52*0696600cSBjoern A. Zeeb case ${err} in 53*0696600cSBjoern A. Zeeb 0) 54*0696600cSBjoern A. Zeeb ;; 55*0696600cSBjoern A. Zeeb *) 56*0696600cSBjoern A. Zeeb echo 'Mounting /etc/fstab filesystems failed,' \ 57*0696600cSBjoern A. Zeeb 'startup aborted' 58*0696600cSBjoern A. Zeeb stop_boot true 59*0696600cSBjoern A. Zeeb ;; 60*0696600cSBjoern A. Zeeb esac 61*0696600cSBjoern A. Zeeb} 62*0696600cSBjoern A. Zeeb 63*0696600cSBjoern A. Zeebload_rc_config $name 64*0696600cSBjoern A. Zeebrun_rc_command "$1" 65