178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $FreeBSD$ 478344Sobrien# 578344Sobrien 678344Sobrien# PROVIDE: mountcritlocal 7208307Sdougb# REQUIRE: root hostid_save mdconfig 8215824Sdougb# KEYWORD: nojail shutdown 978344Sobrien 1078344Sobrien. /etc/rc.subr 1178344Sobrien 1278344Sobrienname="mountcritlocal" 13298514Slmedesc="Mount critical local filesystems" 1478344Sobrienstart_cmd="mountcritlocal_start" 15215824Sdougbstop_cmd=sync 1678344Sobrien 1778344Sobrienmountcritlocal_start() 1878344Sobrien{ 19290197Strasz local err holders waited 20176873Smtm 21124618Smtm # Set up the list of network filesystem types for which mounting 22124618Smtm # should be delayed until after network initialization. 23124618Smtm case ${extra_netfs_types} in 24124618Smtm [Nn][Oo]) 25124618Smtm ;; 26124618Smtm *) 27124618Smtm netfs_types="${netfs_types} ${extra_netfs_types}" 28124618Smtm ;; 29124618Smtm esac 3078344Sobrien 31124618Smtm # Mount everything except nfs filesystems. 32298514Slme check_startmsgs && echo -n 'Mounting local filesystems:' 33124618Smtm mount_excludes='no' 34124618Smtm for i in ${netfs_types}; do 35124618Smtm fstype=${i%:*} 36124618Smtm mount_excludes="${mount_excludes}${fstype}," 37124618Smtm done 38124618Smtm mount_excludes=${mount_excludes%,} 39290197Strasz 40124618Smtm mount -a -t ${mount_excludes} 41176873Smtm err=$? 42294021Strasz if [ ${err} -ne 0 ]; then 43290197Strasz echo 'Mounting /etc/fstab filesystems failed,' \ 44290197Strasz 'will retry after root mount hold release' 45299349Strasz root_hold_wait 46290197Strasz mount -a -t ${mount_excludes} 47290197Strasz err=$? 48290197Strasz fi 49290197Strasz 50197947Sdougb check_startmsgs && echo '.' 5198184Sgordon 52176873Smtm case ${err} in 53124618Smtm 0) 5498184Sgordon ;; 55124618Smtm *) 56124618Smtm echo 'Mounting /etc/fstab filesystems failed,' \ 57290197Strasz 'startup aborted' 58169668Smtm stop_boot true 5998184Sgordon ;; 6098184Sgordon esac 6178344Sobrien} 6278344Sobrien 6378344Sobrienload_rc_config $name 6478344Sobrienrun_rc_command "$1" 65