diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2000-06-20 21:29:37 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2000-06-20 21:29:37 +0000 |
commit | 12731475bb206924559e5b30cd974c17b0f3ef2f (patch) | |
tree | e7832074d411305845647edad32f42eaa1bce1ff /distrib/sun3/install.md | |
parent | dfb6cdf05cd442974db17293a1d23209cf1c7b71 (diff) |
Completely new ramdisk stuff, inspired by the existing sparc ramdisk.
Diffstat (limited to 'distrib/sun3/install.md')
-rw-r--r-- | distrib/sun3/install.md | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/distrib/sun3/install.md b/distrib/sun3/install.md new file mode 100644 index 00000000000..eacc2d89fd4 --- /dev/null +++ b/distrib/sun3/install.md @@ -0,0 +1,269 @@ +# $OpenBSD: install.md,v 1.1 2000/06/20 21:29:03 miod 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. +# + +# Machine-dependent install sets +MSGBUF=/kern/msgbuf +HOSTNAME=/kern/hostname +MDSETS="kernel" + +# an alias for hostname(1) +hostname() { + if [ -x /bin/hostname ]; then + /bin/hostname $1 + else + if [ -z "$1" ]; then + cat $HOSTNAME + else + echo $1 > $HOSTNAME + fi + fi +} + +md_set_term() { + test -n "$TERM" && return + echo -n "Specify terminal type [sun]: " + getresp sun + TERM=$resp + export TERM +} + +md_makerootwritable() { + # Was: do_mfs_mount "/tmp" "2048" + # /tmp is the mount point + # 2048 is the size in DEV_BIZE blocks + + if [ ! -w /tmp ]; then + umount /tmp > /dev/null 2>&1 + if ! mount_mfs -s 2048 swap /tmp ; then + cat << __EOT + +FATAL ERROR: Can't mount the memory filesystem. + +__EOT + exit + fi + + # Bleh. Give mount_mfs a chance to DTRT. + sleep 2 + fi +} + +md_get_msgbuf() { + # Only want to see one boot's worth of info + sed -n -f /dev/stdin $MSGBUF <<- OOF + /^OpenBSD /h + /^OpenBSD /!H + \${ + g + p + } + OOF +} + +md_machine_arch() { + cat /kern/machine +} + +md_get_diskdevs() { + # return available disk devices + md_get_msgbuf | sed -n -e '/^sd[0-9] /{s/ .*//;p;}' \ + -e '/^x[dy][0-9] /{s/ .*//;p;}' +} + +md_get_cddevs() { + # return available CDROM devices + md_get_msgbuf | sed -n -e '/^cd[0-9] /{s/ .*//;p;}' +} + +md_get_partition_range() { + # return range of valid partition letters + echo [a-p] +} + +md_questions() { + : +} + +md_installboot() { + local _rawdev _prefix + + if [ -z "$1" ]; then + echo No disk device specified, you must run installboot manually. + return + fi + _rawdev=/dev/r${1}c + + # use extracted mdec if it exists (may be newer) + if [ -e /mnt/usr/mdec/ufsboot ]; then + _prefix=/mnt/usr/mdec + elif [ -e /usr/mdec/ufsboot ]; then + _prefix=/usr/mdec + else + echo No boot block prototypes found, you must run installboot manually. + return + fi + + echo Installing boot block... + cp ${_prefix}/ufsboot /mnt/boot + sync; sync; sync + installboot -v /mnt/boot ${_prefix}/bootxx ${_rawdev} +} + +md_native_fstype() { + : +} + +md_native_fsopts() { + : +} + +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=$1 + + md_checkfordisklabel $_disk + case $? in + 0) + ;; + 1) + echo WARNING: Label on 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 << __EOT +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. + +__EOT + disklabel -W ${_disk} + disklabel -f /tmp/fstab.${_disk} -E ${_disk} +} + +md_welcome_banner() { +{ + if [ "$MODE" = install ]; then + cat << __EOT +Welcome to the OpenBSD/sun3 ${VERSION_MAJOR}.${VERSION_MINOR} installation program. + +This program is designed to help you put OpenBSD on your disk in a simple and +rational way. + +__EOT + + else + cat << __EOT +echo Welcome to the OpenBSD/sun3 ${VERSION} upgrade program. + +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. + +__EOT + fi + +cat << __EOT + +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. + +__EOT +} | more +} + +md_not_going_to_install() { + cat << __EOT + +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. + +__EOT +} + +md_congrats() { + local what; + if [ "$MODE" = install ]; then + what=installed + else + what=upgraded + fi + cat << __EOT + +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. + +__EOT +} |