summaryrefslogtreecommitdiff
path: root/distrib/macppc/ramdisk/install.md
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2001-09-01 16:47:04 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2001-09-01 16:47:04 +0000
commit6045d5bb00b12a1d49c45cf8fc91d13b2ec1ab0d (patch)
tree15914a003f9e3260a244479c8057231d5f8456ba /distrib/macppc/ramdisk/install.md
parent5cd95bbee8e1e0fd211b3f68255c23edbc21b8e0 (diff)
Move the powerpc ramdisk building support from powerpc to macppc.
Diffstat (limited to 'distrib/macppc/ramdisk/install.md')
-rw-r--r--distrib/macppc/ramdisk/install.md439
1 files changed, 439 insertions, 0 deletions
diff --git a/distrib/macppc/ramdisk/install.md b/distrib/macppc/ramdisk/install.md
new file mode 100644
index 00000000000..8901dd45602
--- /dev/null
+++ b/distrib/macppc/ramdisk/install.md
@@ -0,0 +1,439 @@
+# $OpenBSD: install.md,v 1.1 2001/09/01 16:47:03 drahn Exp $
+#
+#
+# Copyright rc) 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
+MDSETS="kernel"
+ARCH=ARCH
+
+md_set_term() {
+ test -n "$TERM" && return
+ echo -n "Specify terminal type [vt220]: "
+ getresp vt220
+ TERM=$resp
+ export TERM
+}
+
+md_get_diskdevs() {
+ # return available disk devices
+ bsort `dmesg | egrep -a "^[sw]d[0-9]+ " | cutword 1`
+}
+
+md_get_cddevs() {
+ # return available CDROM devices
+ bsort `dmesg | egrep -a "^cd[0-9]+ " | cutword 1`
+}
+
+md_get_partition_range() {
+ # return range of valid partition letters
+ echo [a-p]
+}
+
+md_questions() {
+ :
+}
+
+md_installboot() {
+ if [[ $disklabeltype = "HFS" ]]
+ then
+ echo "the 'ofwboot' program needs to be copied to the first HFS partition"
+ echo "of the disk to allow booting of OpenBSD"
+ elif [[ $disklabeltype = "MBR" ]]
+ then
+ echo "Installing boot in the msdos partition /dev/${1}i"
+ if mount -t msdos /dev/${1}i /mnt2 ; then
+ cp /usr/mdec/ofwboot /mnt2
+ umount /mnt2
+ else
+ echo "Failed, you will not be able to boot from /dev/${1}."
+ fi
+ fi
+}
+
+md_native_fstype() {
+ echo "msdos"
+}
+
+md_native_fsopts() {
+ echo "ro"
+}
+
+md_init_mbr() {
+ # $1 is the disk to init
+ echo
+ echo "You will now be asked if you want to initialize the disk with a 1Mb"
+ echo "MSDOS partition. This is the recomended setup and will allow you to"
+ echo "store the boot and other interesting things here."
+ echo
+ echo "If you want to have a different setup, exit 'install' now and do"
+ echo "the MBR initialization by hand using the 'fdisk' program."
+ echo
+ echo "If you choose to manually setup the MSDOS partition, "
+ echo "consult your PowerPC OpenFirmware manual -and- the"
+ echo "PowerPC OpenBSD Installation Guide for doing setup this way."
+ echo
+ echo -n "Do you want to init the MBR and the MSDOS partition? [y] "
+ getresp "y"
+ case "$resp" in
+ n*|N*)
+ exit 0;;
+ *)
+ echo
+ echo "An MBR record with an OpenBSD usable partition table will now be copied"
+ echo "to your disk. Unless you have special requirements you will not need"
+ echo "to edit this MBR. After the MBR is copied an empty 1Mb MSDOS partition"
+ echo "will be created on the disk. You *MUST* setup the OpenBSD disklabel"
+ echo "to have a partition include this MSDOS partition."
+ echo "You will have an opportunity to do this shortly."
+ echo
+ echo "You will probably see a few '...: no disk label' messages"
+ echo "It's completely normal. The disk has no label yet."
+ echo "This will take a minute or two..."
+ sleep 2
+ echo -n "Creating Master Boot Record (MBR)..."
+ fdisk -i -f /usr/mdec/mbr $1
+ echo "..done."
+ echo -n "Copying 1MB MSDOS partition to disk..."
+ gunzip < /usr/mdec/msdos1mb.gz | dd of=/dev/r$1c bs=512 seek=1 >/dev/null 2>&1
+ echo "..done."
+ ;;
+ esac
+}
+
+md_init_hfs() {
+ pdisk /dev/${1}c
+}
+md_checkfordisklabel() {
+ # $1 is the disk to check
+ local rval
+
+ echo
+ echo "Apple systems have two methods to label/partition a boot disk."
+ echo "Either the disk can be partitioned with Apple HFS partition"
+ echo "tools to contain an \"Unused\" partition, or without any"
+ echo "MacOS tools, the disk can be labled using an MBR partition table"
+ echo "If the HFS (DPME) partition table is used, after the disk is"
+ echo "partitioned with the Apple software, the \"Unused\" section"
+ echo "must be changed to type \"OpenBSD\" name \"OpenBSD\" using the"
+ echo "pdisk tool contained on this ramdisk. The disklabel can"
+ echo "then be edited normally"
+ echo "WARNING: the MBR partitioning code will HAPPILY overwrite/destroy"
+ echo "any HFS partitions on the disk, including the partition table."
+ echo "Choose the MBR option carefully, knowing this fact."
+
+ echo -n "Do you want to choose (H)FS labeling or (M)BR labeling [H] "
+ getresp "h"
+ case "$resp" in
+ m*|M*)
+ export disklabeltype=MBR
+ md_checkforMBRdisklabel $1
+ rval=$?
+ ;;
+ *)
+ export disklabeltype=HFS
+ md_init_hfs $1
+ rval=$?
+ ;;
+ esac
+ return $rval
+}
+md_checkforMBRdisklabel() {
+
+ echo "You have chosen to put a MBR disklabel on the disk."
+ echo -n "Is this correct? [n] "
+ getresp "n"
+ case "$resp" in
+ n*|N*)
+ echo "aborting install"
+ exit 0;;
+ *)
+ ;;
+ esac
+
+ echo -n "Have you initialized an MSDOS partition using OpenFirmware? [n] "
+ getresp "n"
+ case "$resp" in
+ n*|N*)
+ md_init_mbr $1;;
+ *)
+ echo
+ echo "You may keep your current setup if you want to be able to use any"
+ echo "already loaded OS. However you will be asked to prepare an empty"
+ echo "partition for OpenBSD later. There must also be at least ~0.5Mb free space"
+ echo "in the boot partition to hold the OpenBSD bootloader."
+ echo
+ echo "Also note that the boot partition must be included as partition"
+ echo "'i' in the OpenBSD disklabel."
+ echo
+ echo -n "Do you want to keep the current MSDOS partition setup? [y]"
+ getresp "y"
+ case "$resp" in
+ n*|N*)
+ md_init_mbr $1;;
+ *)
+ ;;
+ esac
+ ;;
+ esac
+
+ disklabel -r $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_fdisk()
+{
+ local _disk
+ local _done
+
+ _disk=$1
+ echo
+ echo "This disk has not previously been used with OpenBSD. You may share"
+ echo "this disk with other operating systems. However, to be able to boot"
+ echo "the system you will need a small DOS partition in the beginning of"
+ echo "the disk to hold the kernel boot. OpenFirmware understands"
+ echo "how to read an MSDOS style format from the disk."
+ echo
+ echo "This DOS style partitioning has been taken care of if"
+ echo "you chose to do that initialization earlier in the install."
+ echo
+ echo "WARNING: Wrong information in the BIOS partition table might"
+ echo "render the disk unusable."
+
+ echo -n "Press [Enter] to continue "
+ getresp ""
+
+ echo
+ echo "Current partition information is:"
+ fdisk ${_disk}
+ echo -n "Press [Enter] to continue "
+ getresp ""
+
+ _done=0
+ while [ $_done = 0 ]; do
+ echo
+ cat << \__md_prep_fdisk_1
+
+An OpenBSD partition should have type (i.d.) of 166 (A6), and should be the
+only partition marked as active. Also make sure that the size of the partition
+to be used by OpenBSD is correct, otherwise OpenBSD disklabel installation
+will fail. Furthermore, the partitions must NOT overlap each others.
+
+The fdisk utility will be started update mode (interactive.)
+You will be able to add / modify this information as needed.
+If you make a mistake, simply exit fdisk without storing the new
+information, and you will be allowed to start over.
+__md_prep_fdisk_1
+ echo
+ echo -n "Press [Enter] to continue "
+ getresp ""
+
+ fdisk -e ${_disk}
+
+ echo
+ echo "The new partition information is:"
+ fdisk ${_disk}
+
+ echo
+ echo "(You will be permitted to edit this information again.)"
+ echo "-------------------------------------------------------"
+ echo -n "Is the above information correct? [n] "
+ getresp "n"
+
+ case "$resp" in
+ n*|N*) ;;
+ *) _done=1 ;;
+ esac
+ done
+
+ echo
+ echo "Please take note of the offset and size of the OpenBSD partition"
+ echo "*AND* the MSDOS partitions you may want to access from OpenBSD."
+ echo "At least the MSDOS partition used for booting must be accessible"
+ echo "by OpenBSD as partition 'i'. You may need this information to "
+ echo "fill in the OpenBSD disk label later."
+ echo -n "Press [Enter] to continue "
+ getresp ""
+}
+
+md_prep_disklabel()
+{
+ local _disk
+
+ _disk=$1
+ md_checkfordisklabel $_disk
+ case $? in
+ 0)
+ echo -n "Do you wish to edit the disklabel on $_disk? [y] "
+ ;;
+ 1)
+ md_prep_fdisk ${_disk}
+ echo "WARNING: Disk $_disk has no label"
+ echo -n "Do you want to create one with the disklabel editor? [y] "
+ ;;
+ 2)
+ echo "WARNING: Label on disk $_disk is corrupted"
+ echo -n "Do you want to try and repair the damage using the disklabel editor? [y] "
+ ;;
+
+ esac
+
+ getresp "y"
+ case "$resp" in
+ y*|Y*) ;;
+ *) return ;;
+ esac
+
+ # display example
+ cat << \__md_prep_disklabel_1
+
+Disk partition sizes and offsets are in sector (most likely 512 bytes) units.
+You may set these size/offset pairs on cylinder boundaries
+ (the number of sector per cylinder is given in )
+ (the `sectors/cylinder' entry, which is not shown here)
+Also, you *must* make sure that the 'i' partition points at the MSDOS
+partition that will be used for booting. The 'c' partition shall start
+at offset 0 and include the entire disk. This is most likely correct when
+you see the default label in the editor.
+
+Do not change any parameters except the partition layout and the label name.
+
+ [Here is an example of what the partition information may look like.]
+10 partitions:
+# size offset fstype [fsize bsize cpg]
+ a: 120832 10240 4.2BSD 1024 8192 16 # (Cyl. 11*- 142*)
+ b: 131072 131072 swap # (Cyl. 142*- 284*)
+ c: 6265200 0 unused 1024 8192 # (Cyl. 0 - 6809)
+ e: 781250 262144 4.2BSD 1024 8192 16 # (Cyl. 284*- 1134*)
+ f: 1205000 1043394 4.2BSD 1024 8192 16 # (Cyl. 1134*- 2443*)
+ g: 2008403 2248394 4.2BSD 1024 8192 16 # (Cyl. 2443*- 4626*)
+ h: 2008403 4256797 4.2BSD 1024 8192 16 # (Cyl. 4626*- 6809*)
+ i: 10208 32 MSDOS # (Cyl. 0*- 11*)
+[End of example]
+__md_prep_disklabel_1
+ echo -n "Press [Enter] to continue "
+ getresp ""
+ if [[ $disklabeltype = "HFS" ]]
+ then
+ disklabel -c -f /tmp/fstab.${_disk} -E ${_disk}
+ elif [[ $disklabeltype = "MBR" ]]
+ then
+ disklabel -W ${_disk}
+ disklabel ${_disk} >/tmp/label.$$
+ disklabel -r -R ${_disk} /tmp/label.$$
+ rm -f /tmp/label.$$
+ disklabel -f /tmp/fstab.${_disk} -E ${_disk}
+ else
+ echo "unknown disk label type"
+ fi
+}
+
+md_welcome_banner() {
+{
+ if [ "$MODE" = install ]; then
+ cat << __EOT
+Welcome to the OpenBSD/powerpc ${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
+Welcome to the OpenBSD/powerpc ${VERSION_MAJOR}.${VERSION_MINOR} 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. If you hit Control-C and restart the
+install, the install program will remember many of your old answers.
+
+__EOT
+} | more
+}
+
+md_not_going_to_install() {
+ cat << __EOT
+
+OK, then. Enter 'reboot' at the prompt to reset the machine. Once the machine
+has rebooted, use Open Firmware to load the 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 reboot at the command prompt. Once the machine
+has rebooted, use Open Firmware to boot into OpenBSD.
+
+__EOT
+}