10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# $FreeBSD$ 40696600cSBjoern A. Zeeb# 50696600cSBjoern A. Zeeb 60696600cSBjoern A. Zeeb# PROVIDE: mountcritlocal 7*f1602affSCy Schubert# REQUIRE: root hostid_save mdconfig 80696600cSBjoern A. Zeeb# KEYWORD: nojail shutdown 90696600cSBjoern A. Zeeb 100696600cSBjoern A. Zeeb. /etc/rc.subr 110696600cSBjoern A. Zeeb 120696600cSBjoern A. Zeebname="mountcritlocal" 130696600cSBjoern A. Zeebdesc="Mount critical local filesystems" 140696600cSBjoern A. Zeebstart_cmd="mountcritlocal_start" 150696600cSBjoern A. Zeebstop_cmd=sync 160696600cSBjoern A. Zeeb 170696600cSBjoern A. Zeebmountcritlocal_start() 180696600cSBjoern A. Zeeb{ 190696600cSBjoern A. Zeeb local err holders waited 200696600cSBjoern A. Zeeb 210696600cSBjoern A. Zeeb # Set up the list of network filesystem types for which mounting 220696600cSBjoern A. Zeeb # should be delayed until after network initialization. 230696600cSBjoern A. Zeeb case ${extra_netfs_types} in 240696600cSBjoern A. Zeeb [Nn][Oo]) 250696600cSBjoern A. Zeeb ;; 260696600cSBjoern A. Zeeb *) 270696600cSBjoern A. Zeeb netfs_types="${netfs_types} ${extra_netfs_types}" 280696600cSBjoern A. Zeeb ;; 290696600cSBjoern A. Zeeb esac 300696600cSBjoern A. Zeeb 310696600cSBjoern A. Zeeb # Mount everything except nfs filesystems. 320696600cSBjoern A. Zeeb check_startmsgs && echo -n 'Mounting local filesystems:' 330696600cSBjoern A. Zeeb mount_excludes='no' 340696600cSBjoern A. Zeeb for i in ${netfs_types}; do 350696600cSBjoern A. Zeeb fstype=${i%:*} 360696600cSBjoern A. Zeeb mount_excludes="${mount_excludes}${fstype}," 370696600cSBjoern A. Zeeb done 380696600cSBjoern A. Zeeb mount_excludes=${mount_excludes%,} 390696600cSBjoern A. Zeeb 400696600cSBjoern A. Zeeb mount -a -t ${mount_excludes} 410696600cSBjoern A. Zeeb err=$? 420696600cSBjoern A. Zeeb if [ ${err} -ne 0 ]; then 430696600cSBjoern A. Zeeb echo 'Mounting /etc/fstab filesystems failed,' \ 440696600cSBjoern A. Zeeb 'will retry after root mount hold release' 450696600cSBjoern A. Zeeb root_hold_wait 460696600cSBjoern A. Zeeb mount -a -t ${mount_excludes} 470696600cSBjoern A. Zeeb err=$? 480696600cSBjoern A. Zeeb fi 490696600cSBjoern A. Zeeb 500696600cSBjoern A. Zeeb check_startmsgs && echo '.' 510696600cSBjoern A. Zeeb 520696600cSBjoern A. Zeeb case ${err} in 530696600cSBjoern A. Zeeb 0) 540696600cSBjoern A. Zeeb ;; 550696600cSBjoern A. Zeeb *) 560696600cSBjoern A. Zeeb echo 'Mounting /etc/fstab filesystems failed,' \ 570696600cSBjoern A. Zeeb 'startup aborted' 580696600cSBjoern A. Zeeb stop_boot true 590696600cSBjoern A. Zeeb ;; 600696600cSBjoern A. Zeeb esac 610696600cSBjoern A. Zeeb} 620696600cSBjoern A. Zeeb 630696600cSBjoern A. Zeebload_rc_config $name 640696600cSBjoern A. Zeebrun_rc_command "$1" 65