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