summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2005-03-02 00:58:05 +0000
committerbrooks <brooks@FreeBSD.org>2005-03-02 00:58:05 +0000
commite0e77927b6fd2967770e6421074ce27caca8c0f3 (patch)
tree72b9da1e79114e363a6a36ff2f1a0dadc18658bd /etc
parentd7036279051677c0eef0f014f0115f935b01e15b (diff)
downloadFreeBSD-src-e0e77927b6fd2967770e6421074ce27caca8c0f3.zip
FreeBSD-src-e0e77927b6fd2967770e6421074ce27caca8c0f3.tar.gz
If we don't have /usr/sbin/mtree, try to mount /usr. We're only likely
to hit this case when /usr is remote and thus hasn't been mounted (since you're supposed to have /var before mounting remote file systems). Normal machines that don't have a /var for some reason will have /usr already available because it's local.
Diffstat (limited to 'etc')
-rw-r--r--etc/rc.d/var15
1 files changed, 12 insertions, 3 deletions
diff --git a/etc/rc.d/var b/etc/rc.d/var
index af6bb9c..3eb21e2 100644
--- a/etc/rc.d/var
+++ b/etc/rc.d/var
@@ -83,10 +83,19 @@ case "${populate_var}" in
*)
if [ -d /var/run -a -d /var/db -a -d /var/empty ] ; then
true
- elif [ ! -x /usr/sbin/mtree ] ; then
- false
- else
+ elif [ -x /usr/sbin/mtree ] ; then
_populate_var
+ else
+ # We need mtree to populate /var so try mounting /usr.
+ # If this does not work, we can not boot so it is OK to
+ # try to mount out of order.
+ mount /usr
+ if [ ! -x /usr/sbin/mtree ] ; then
+ exit 1
+ else
+ _populate_var
+ fi
+ else
fi
;;
esac
OpenPOWER on IntegriCloud