summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2003-02-16 23:16:45 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2003-02-16 23:16:45 +0000
commitc5389094369de507ed8c671e902ac0fecd86a2c6 (patch)
treecb541721f3e4a49e2e942ff10ec7503688f1c3f0
parentd8ccd6d8c087d397a8b9c6926dd1a6c00f818581 (diff)
Bring macppc install.md into the modern world.
deraadt@ drahn@ ok, miod@ ok a while ago. A few spelling tweeks, '{}' elimination, syntax error corrections after ok. Tested with HFS install and HFS upgrade. More testing, especially of MBR installs, would be good.
-rw-r--r--distrib/macppc/ramdisk/install.md256
1 files changed, 128 insertions, 128 deletions
diff --git a/distrib/macppc/ramdisk/install.md b/distrib/macppc/ramdisk/install.md
index c1abb52a124..d32d18dfd41 100644
--- a/distrib/macppc/ramdisk/install.md
+++ b/distrib/macppc/ramdisk/install.md
@@ -1,4 +1,4 @@
-# $OpenBSD: install.md,v 1.17 2002/12/04 13:11:22 miod Exp $
+# $OpenBSD: install.md,v 1.18 2003/02/16 23:16:44 krw Exp $
#
#
# Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -47,110 +47,117 @@ md_set_term() {
}
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
+ local _disk=$1
+
+ case $disklabeltype in
+ HFS) cat << __EOT
+The 'ofwboot' program needs to be copied to the first HFS partition of $_disk
+to allow booting of OpenBSD.
+__EOT
+ ;;
+
+ MBR) echo "Installing boot in the msdos partition $_disk"
+ if mount -t msdos /dev/$_disk /mnt2 ; then
cp /usr/mdec/ofwboot /mnt2
umount /mnt2
else
- echo "Failed, you will not be able to boot from /dev/${1}."
+ echo "Failed, you will not be able to boot from ${_disk}."
fi
- fi
+ ;;
+ esac
}
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 recommended 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
- ask "Do you want to init the MBR and the MSDOS partition?" 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."
- ;;
+ local _disk=$1
+
+ cat << __EOT
+
+You will now be asked if you want to initialize $_disk with a 1MB MSDOS
+partition. This is the recommended setup and will allow you to store the boot
+and other interesting things here.
+
+If you want to have a different setup, exit 'install' now and do the MBR
+initialization by hand using the 'fdisk' program.
+
+If you choose to manually setup the MSDOS partition, consult your PowerPC
+OpenFirmware manual -and- the PowerPC OpenBSD Installation Guide for doing
+setup this way.
+
+__EOT
+ ask "Do you want to initialize the MBR and the MSDOS partition?" y
+ case $resp in
+ n*|N*) exit 0 ;;
+ *) ;;
esac
-}
-md_init_hfs() {
- pdisk /dev/${1}c
+ cat << __EOT
+An MBR record with an OpenBSD usable partition table will now be copied to your
+disk. Unless you have special requirements, you will not need to edit this MBR.
+After the MBR is copied an empty 1MB MSDOS partition will be created on the
+disk. You *MUST* setup the OpenBSD disklabel to have a partition include this
+MSDOS partition. You will have an opportunity to do this shortly.
+
+You will probably see a few '...: no disk label' messages. It's completely
+normal. The disk has no label yet. This may take a minute or two...
+__EOT
+ sleep 2
+
+ echo -n "Creating Master Boot Record (MBR)..."
+ fdisk -i -f /usr/mdec/mbr $_disk
+ echo "done."
+
+ echo -n "Copying 1MB MSDOS partition to disk..."
+ gunzip < /usr/mdec/msdos1mb.gz | dd of=/dev/r${_disk}c bs=512 seek=1 >/dev/null 2>&1
+ echo "done."
}
md_checkfordisklabel() {
- # $1 is the disk to check
- local rval
+ local rval _disk=$1
cat << __EOT
Apple systems have two methods to label/partition a boot disk.
-Either the disk can be partitioned with Apple HFS partition tools to contain
-an "Unused" partition, or without any MacOS tools, the disk can be labled
-using an MBR partition table.
+Either the disk can be partitioned with Apple HFS partition tools to contain an
+"Unused" partition, or without any MacOS tools, the disk can be labeled using
+an MBR partition table.
+
If the HFS (DPME) partition table is used, after the disk is partitioned with
the Apple software, the "Unused" section must be changed to type "OpenBSD" name
"OpenBSD" using the pdisk tool contained on this ramdisk. The disklabel can
then be edited normally.
+
WARNING: the MBR partitioning code will HAPPILY overwrite/destroy any HFS
-partitions on the disk, including the partition table.
-Choose the MBR option carefully, knowing this fact.
+ partitions on the disk, including the partition table. Choose the
+ MBR option carefully, knowing this fact.
__EOT
- ask "Do you want to choose (H)FS labeling or (M)BR labeling" H
- case "$resp" in
+ ask "Do you want to use (H)FS labeling or (M)BR labeling" H
+ case $resp in
m*|M*) export disklabeltype=MBR
- md_checkforMBRdisklabel $1
+ md_checkforMBRdisklabel $_disk
rval=$?
;;
*) export disklabeltype=HFS
- md_init_hfs $1
+ pdisk /dev/${_disk}c
rval=$?
;;
esac
return $rval
}
+
md_checkforMBRdisklabel() {
+ local _disk=$1
- echo "You have chosen to put a MBR disklabel on the disk."
- ask "Is this correct?" n
- case "$resp" in
+ ask "Are you *sure* you want to put a MBR disklabel on the disk?" n
+ case $resp in
n*|N*) echo "aborting install"
exit 0;;
esac
ask "Have you initialized an MSDOS partition using OpenFirmware?" n
- case "$resp" in
- n*|N*) md_init_mbr $1;;
+ case $resp in
+ n*|N*) md_init_mbr $_disk;;
*) cat << __EOT
You may keep your current setup if you want to be able to use any already
loaded OS. However you will be asked to prepare an empty partition for OpenBSD
@@ -162,13 +169,13 @@ OpenBSD disklabel.
__EOT
ask "Do you want to keep the current MSDOS partition setup?" y
- case "$resp" in
- n*|N*) md_init_mbr $1;;
+ case $resp in
+ n*|N*) md_init_mbr $_disk;;
esac
;;
esac
- disklabel -r $1 > /dev/null 2> /tmp/checkfordisklabel
+ disklabel -r $_disk > /dev/null 2> /tmp/checkfordisklabel
if grep "no disk label" /tmp/checkfordisklabel; then
rval=1
elif grep "disk label corrupted" /tmp/checkfordisklabel; then
@@ -181,12 +188,9 @@ __EOT
return $rval
}
-md_prep_fdisk()
-{
- local _disk
- local _done
+md_prep_fdisk() {
+ local _disk=$1
- _disk=$1
cat << __EOT
This disk has not previously been used with OpenBSD. You may share this disk
@@ -195,83 +199,81 @@ need a small DOS partition in the beginning of the disk to hold the kernel
boot. OpenFirmware understands how to read an MSDOS style format from the disk.
This DOS style partitioning has been taken care of if you chose to do that
-initialization earlier in the install"
+initialization earlier in the install.
WARNING: Wrong information in the BIOS partition table might render the disk
-unusable.
+ unusable.
__EOT
ask "Press [Enter] to continue"
- echo
- echo "Current partition information is:"
- fdisk ${_disk}
+ echo "\nCurrent partition information is:"
+ fdisk $_disk
ask "Press [Enter] to continue"
- _done=0
- while [ $_done = 0 ]; do
- echo
+ while : ; do
cat << __EOT
-An OpenBSD partition should have type (i.d.) of 166 (A6), and should be the
+An OpenBSD partition should have a type (id) 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.
+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.
-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.
__EOT
- echo
ask "Press [Enter] to continue"
- fdisk -e ${_disk}
+ fdisk -e $_disk
+ cat << __EOT
+
+The new partition information is:
- echo
- echo "The new partition information is:"
- fdisk ${_disk}
+$(fdisk $_disk)
- echo
- echo "(You will be permitted to edit this information again.)"
- echo "-------------------------------------------------------"
+(You will be permitted to edit this information again.)
+-------------------------------------------------------
+__EOT
ask "Is the above information correct?" n
- case "$resp" in
+ case $resp in
n*|N*) ;;
- *) _done=1 ;;
+ *) break ;;
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."
+ cat << __EOT
+
+Please take note of the offset and size of the OpenBSD partition *AND* the
+MSDOS partitions you may want to access from OpenBSD. At least the MSDOS
+partition used for booting must be accessible by OpenBSD as partition 'i'. You
+may need this information to fill in the OpenBSD disklabel later.
+
+__EOT
ask "Press [Enter] to continue"
}
-md_prep_disklabel()
-{
- local _disk
+md_prep_disklabel() {
+ local _disk=$1
- _disk=$1
md_checkfordisklabel $_disk
case $? in
- 0) ask "Do you wish to edit the disklabel on $_disk?" y
+ 0) ask "Do you wish to edit the existing disklabel on $_disk?" y
;;
- 1) md_prep_fdisk ${_disk}
- echo "WARNING: Disk $_disk has no label"
+ 1) md_prep_fdisk $_disk
+ echo "WARNING: $_disk has no label"
ask "Do you want to create one with the disklabel editor?" y
;;
- 2) echo "WARNING: Label on disk $_disk is corrupted"
+ 2) echo "WARNING: The disklabel on $_disk is invalid."
ask "Do you want to try and repair the damage using the disklabel editor?" y
;;
esac
- case "$resp" in
+ case $resp in
y*|Y*) ;;
*) return ;;
esac
@@ -283,10 +285,10 @@ 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.
+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.
@@ -305,16 +307,14 @@ Do not change any parameters except the partition layout and the label name.
__EOT
ask "Press [Enter] to continue"
- 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.$$
+ 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}
+ disklabel -f /tmp/fstab.$_disk -E $_disk
else
echo "unknown disk label type"
fi
@@ -323,7 +323,7 @@ __EOT
md_congrats() {
cat << __EOT
-Once the machine has rebooted use Open Firmware to boot into OpenBSD,
-as described in the install document.
+Once the machine has rebooted use Open Firmware to boot into OpenBSD, as
+described in the install document.
__EOT
}