diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 1998-11-09 06:16:14 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 1998-11-09 06:16:14 +0000 |
commit | cd9cd09c616d02984a3b79573f5a25a9d8386ca3 (patch) | |
tree | 8aca9db2c1aec321886ebb57e1fabcaa6dbb3aa6 /distrib/pmax/ramdisk/install.md | |
parent | 02efe713915f21e0eb51c69989cb8dd34d4ad234 (diff) |
pmax bsd.rd; not enabled yet as it has not been tested (though it compiles)
Diffstat (limited to 'distrib/pmax/ramdisk/install.md')
-rw-r--r-- | distrib/pmax/ramdisk/install.md | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/distrib/pmax/ramdisk/install.md b/distrib/pmax/ramdisk/install.md new file mode 100644 index 00000000000..9069df633f0 --- /dev/null +++ b/distrib/pmax/ramdisk/install.md @@ -0,0 +1,264 @@ +# $OpenBSD: install.md,v 1.1 1998/11/09 06:16:11 millert Exp $ +# +# Copyright (c) 1996 The NetBSD Foundation, Inc. +# All rights reserved. +# +# This code is derived from software contributed to The NetBSD Foundation +# by Jason R. Thorpe. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by the NetBSD +# Foundation, Inc. and its contributors. +# 4. Neither the name of The NetBSD Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# +# machine dependent section of installation/upgrade script. +# + +TMPWRITEABLE=/tmp/writeable +KERNFSMOUNTED=/tmp/kernfsmounted + +# Machine-dependent install sets +MDSETS="kernel" + +md_machine_arch() { + cat /kern/machine +} + +md_copy_kernel() { + check_kernel +} + +md_set_term() { + if [ ! -z "$TERM" ]; then + return + fi + echo -n "Specify terminal type [sun]: " + getresp "sun" + TERM="$resp" + export TERM +} + +md_get_msgbuf() { + # Only want to see one boot's worth of info + sed -n -f /dev/stdin /kern/msgbuf <<- OOF + /^Copyright (c)/h + /^Copyright (c)/!H + \${ + g + p + } + OOF +} + +md_get_diskdevs() { + md_get_msgbuf | egrep "^[sw]d[0-9]+ " | cutword 1 +} + +md_get_cddevs() { + md_get_msgbuf | egrep "^a?cd[0-9]+ " | cutword 1 +} + +md_get_partition_range() { + # return range of valid partition letters + echo "[a-p]" +} + +md_installboot() { + # $1 is the root disk + + echo -n "Installing boot block... " + disklabel -W ${1} + disklabel -W ${1} + disklabel -B ${1} + echo "done." +} + +md_checkfordisklabel() { + # $1 is the disk to check + local rval + + disklabel $1 >> /dev/null 2> /tmp/checkfordisklabel + if grep "no disk label" /tmp/checkfordisklabel; then + rval=1 + elif grep "disk label corrupted" /tmp/checkfordisklabel; then + rval=2 + else + rval=0 + fi + + rm -f /tmp/checkfordisklabel + return $rval +} + +md_prep_disklabel() +{ + local _disk + + _disk=$1 + md_checkfordisklabel $_disk + case $? in + 0) + ;; + 1) + echo "WARNING: Disk $_disk has no label. You will be creating a new one." + echo + ;; + 2) + echo "WARNING: Label on disk $_disk is corrupted. You will be repairing." + echo + ;; + esac + + # display example + cat << \__md_prep_disklabel_1 + +If you are unsure of how to use multiple partitions properly +(ie. separating /, /usr, /tmp, /var, /usr/local, and other things) +just split the space into a root and swap partition for now. +__md_prep_disklabel_1 + + disklabel -W ${_disk} + disklabel -E ${_disk} +} + +md_welcome_banner() { +{ + if [ "$MODE" = "install" ]; then + echo "Welcome to the OpenBSD/pmax ${VERSION_MAJOR}.${VERSION_MINOR} installation program." + cat << \__welcome_banner_1 + +This program is designed to help you put OpenBSD on your system in a +simple and rational way. +__welcome_banner_1 + + else + echo "Welcome to the OpenBSD/pmax ${VERSION_MAJOR}.${VERSION_MINOR} upgrade program." + cat << \__welcome_banner_2 + +This program is designed to help you upgrade your OpenBSD system in a +simple and rational way. + +As a reminder, installing the `etc' binary set is NOT recommended. +Once the rest of your system has been upgraded, you should manually +merge any changes to files in the `etc' set into those files which +already exist on your system. + +__welcome_banner_2 + fi + +cat << \__welcome_banner_3 + +As with anything which modifies your disk's contents, this program can +cause SIGNIFICANT data loss, and you are advised to make sure your +data is backed up before beginning the installation process. + +Default answers are displayed in brackets after the questions. You +can hit Control-C at any time to quit, but if you do so at a prompt, +you may have to hit return. Also, quitting in the middle of +installation may leave your system in an inconsistent state. + +__welcome_banner_3 +} | more +} + +md_not_going_to_install() { + cat << \__not_going_to_install_1 + +OK, then. Enter `halt' at the prompt to halt the machine. Once the +machine has halted, power-cycle the system to load new boot code. + +__not_going_to_install_1 +} + +md_congrats() { + local what; + if [ "$MODE" = "install" ]; then + what="installed"; + else + what="upgraded"; + fi + cat << __congratulations_1 + +CONGRATULATIONS! You have successfully $what OpenBSD! +To boot the installed system, enter halt at the command prompt. Once the +system has halted, reset the machine and boot from the disk. + +__congratulations_1 +} + +md_native_fstype() { +} +md_native_fsopts() { +} + +md_makerootwritable() { + # 2048 is the size in DEV_BIZE blocks + + if [ -e ${TMPWRITEABLE} ] + then + md_mountkernfs + return + fi + umount /tmp >> /dev/null 2>&1 + if ! mount -t ffs -u /dev/rd0a / ; then + cat << \__rd0_failed_1 + +FATAL ERROR: Can't mount the ram filesystem. + +__rd0_failed_1 + exit + fi + + # Bleh. Give mount_mfs a chance to DTRT. + sleep 2 + > ${TMPWRITEABLE} + + md_mountkernfs +} +md_mountkernfs() { + if [ -e ${KERNFSMOUNTED} ] + then + return + fi + if ! mount -t kernfs /kern /kern + then + cat << \__kernfs_failed_1 +FATAL ERROR: Can't mount kernfs filesystem +__kernfs_failed_1 + exit + fi + > ${KERNFSMOUNTED} +} + +hostname() { + case $# in + 0) cat /kern/hostname ;; + 1) echo "$1" > /kern/hostname ;; + *) echo "usage: hostname [name-of-host]" + esac +} |