cgdroot.rc revision 1.4
1#	$NetBSD: cgdroot.rc,v 1.4 2018/12/29 13:09:35 alnsn Exp $
2#
3# Copyright (c) 2013 Pierre Pronchery <khorben@defora.org>
4# All rights reserved.
5# 
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12#    notice, this list of conditions and the following disclaimer in the
13#    documentation and/or other materials provided with the distribution.
14# 
15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
26PATH=/sbin:/usr/sbin:/bin:/usr/bin
27export PATH
28TERM=wsvt25
29export TERM
30HOME=/
31export HOME
32BLOCKSIZE=1k
33export BLOCKSIZE
34EDITOR=ed
35export EDITOR
36
37umask 022
38
39mounted=
40for dev in NAME=cgd.conf /dev/wd0a /dev/ld0a ; do
41	if mount -o ro $dev /etc/cgd 2>/dev/null ; then
42		mounted=$dev
43		break
44	fi
45done
46if [ -z "$mounted" ]; then
47	echo "Could not mount the boot partition" 1>&2
48	exit 2
49fi
50/sbin/wsconsctl -d -w splash.enable=0 > /dev/null 2>&1
51cgdconfig -C
52if [ $? -ne 0 ]; then
53	echo "Could not decrypt the encrypted volume" 1>&2
54	umount /etc/cgd
55	exit 2
56fi
57mount -o ro /dev/cgd0a /altroot
58if [ $? -ne 0 ]; then
59	echo "Could not mount the root partition" 1>&2
60	cgdconfig -U
61	umount /etc/cgd
62	exit 2
63fi
64umount /etc/cgd
65/sbin/wsconsctl -d -w splash.enable=1 > /dev/null 2>&1
66sysctl -w init.root=/altroot
67