diff options
Diffstat (limited to 'distrib/hp300/ramdisk/install.md')
-rw-r--r-- | distrib/hp300/ramdisk/install.md | 242 |
1 files changed, 13 insertions, 229 deletions
diff --git a/distrib/hp300/ramdisk/install.md b/distrib/hp300/ramdisk/install.md index 72d6cf0267a..2490b55902b 100644 --- a/distrib/hp300/ramdisk/install.md +++ b/distrib/hp300/ramdisk/install.md @@ -1,6 +1,6 @@ #!/bin/sh # -# $OpenBSD: install.md,v 1.25 2002/04/21 17:09:18 deraadt Exp $ +# $OpenBSD: install.md,v 1.26 2002/04/25 21:28:13 miod Exp $ # $NetBSD: install.md,v 1.1.2.4 1996/08/26 15:45:14 gwr Exp $ # # Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -50,20 +50,6 @@ md_set_term() { getresp "hp300h" TERM="$resp" export TERM - # set screensize (i.e., for an xterm) - rows=`stty -a | grep rows | cutword 4` - columns=`stty -a | grep columns | cutword 6` - if [ "$rows" -eq 0 -o "$columns" -eq 0 ]; then - echo -n "Specify terminal rows [25]: " - getresp "25" - rows="$resp" - - echo -n "Specify terminal columns [80]: " - getresp "80" - columns="$resp" - - stty rows "$rows" columns "$columns" - fi } md_get_diskdevs() { @@ -112,208 +98,6 @@ md_checkfordisklabel() { return $rval } -hp300_init_label_scsi_disk() { - # $1 is the disk to label - - # Name the disks we install in the temporary fstab. - if [ "X${_disk_instance}" = "X" ]; then - _disk_instance="0" - else - _disk_instance=`expr $_disk_instance + 1` - fi - _cur_disk_name="install-disk-${_disk_instance}" - - # Get geometry information from the user. - less << \__scsi_label_1 - -You will need to provide some information about your disk's geometry. -Geometry info for SCSI disks was printed at boot time. If that information -is not available, use the information provided in your disk's manual. -Please note that the geometry printed at boot time is preferred. - -IMPORTANT NOTE: due to a limitation in the disklabel(8) program, the -number of cylinders on the disk will be increased by 1 so that the initial -label can be placed on disk for editing. When the disklabel editor appears, -make absolutely certain you subtract 1 from the total number of cylinders, -and adjust the size of partition 'c' such that: - - size = (sectors per track) * (tracks per cyl) * (total cylinders) - -Note that the disklabel editor will be run twice; once to set the size of -partition 'c' and correct the geometry, and again so that you may correctly -edit the partition map. This is to work around the afore mentioned -limitation in disklabel(8). Apologies offered in advance. - -__scsi_label_1 - - # Give the opportunity to review the boot messages. - echo -n "Review boot messages now? [y] " - getresp "y" - case "$resp" in - y*|Y*) dmesg | less -rsS - ;; - esac - - echo "" - echo -n "Number of bytes per disk sector? [512] " - getresp "512" - _secsize="$resp" - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of cylinders? " - getresp "" - done - _cylinders="$resp" - _fudge_cyl=`expr $_cylinders + 1` - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of tracks (heads)? " - getresp "" - done - _tracks_per_cyl="$resp" - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of disk sectors (blocks)? " - getresp "" - done - _nsectors="$resp" - - # Calculate some values we need. - _sec_per_cyl=`expr $_nsectors / $_cylinders` - _sec_per_track=`expr $_sec_per_cyl / $_tracks_per_cyl` - _new_c_size=`expr $_sec_per_track \* $_tracks_per_cyl \* $_cylinders` - - # Emit a disktab entry, suitable for getting started. - # What we have is a `c' partition with the total number of - # blocks, and an `a' partition with 1 sector; just large enough - # to open. Don't ask. - echo "" >> /etc/disktab - echo "# Created by install" >> /etc/disktab - echo "${_cur_disk_name}:\\" >> /etc/disktab - echo -n " :ty=winchester:ns#${_sec_per_track}:" >> /etc/disktab - echo "nt#${_tracks_per_cyl}:nc#${_fudge_cyl}:\\" >> /etc/disktab - echo " :pa#1:\\" >> /etc/disktab - echo " :pc#${_nsectors}:" >> /etc/disktab - - # Ok, here's what we need to do. First of all, we install - # this initial label by opening the `c' partition of the disk - # and using the `-r' flag for disklabel(8). However, because - # of limitations in disklabel(8), we've had to fudge the number - # of cylinders up 1 so that disklabel(8) doesn't complain about - # `c' running past the end of the disk, which can be quite - # common even with OEM HP drives! So, we've given ourselves - # an `a' partition, which is the minimum needed to open the disk - # so that we can perform the DIOCWDLABEL ioctl. So, once the - # initial label is installed, we open the `a' partition so that - # we can fix up the number of cylinders and make the size of - # `c' come out to (ncyl * ntracks_per_cyl * nsec_per_track). - # After that's done, we re-open `c' and let the user actually - # edit the partition table. It's horrible, I know. Bleh. - - disklabel -W ${1} - if ! disklabel -r -w ${1} ${_cur_disk_name}; then - echo "" - echo "ERROR: can't bootstrap disklabel!" - rval="1" - return - fi - - echo "" - echo "The disklabel editor will now start. During this phase, you" - echo "must reset the 'cylinders' value to ${_cylinders}, and adjust" - echo "the size of partition 'c' to ${_new_c_size}. Do not modify" - echo "the partition map at this time. You will have the opportunity" - echo "to do so in a moment." - echo "" - echo -n "Press <return> to continue. " - getresp "" - - disklabel -W ${1} - if ! disklabel -r -e /dev/r${1}a; then - echo "" - echo "ERROR: can't fixup geometry!" - rval="1" - return - fi - - cat << \__explain_motives_2 - -Now that you have corrected the geometry of your disk, you may edit the -partition map. Don't forget to fill in the fsize (frag size), bsize -(filesystem block size), and cpg (cylinders per group) values. If you -are unsure what these should be, use: - - fsize: 1024 - bsize: 4096 - cpg: 16 - -__explain_motives_2 - echo -n "Press <return> to continue. " - getresp "" - - rval="0" - return -} - -hp300_init_label_hpib_disk() { - # $1 is the disk to label - - # We look though the boot messages attempting to find - # the model number for the provided disk. - _hpib_disktype="" - if dmesg | egrep "${1}: " > /dev/null 2>&1; then - _hpib_disktype=HP`dmesg | egrep "${1}: " | sort -u | \ - cutword 2 ` - fi - if [ "X${_hpib_disktype}" = "X" ]; then - echo "" - echo "ERROR: $1 doesn't appear to exist?!" - rval="1" - return - fi - - # Peer through /etc/disktab to see if the disk has a "default" - # layout. If it doesn't, we have to treat it like a SCSI disk; - # i.e. prompt for geometry, and create a default to place - # on the disk. - if ! egrep "${_hpib_disktype}[:|]" /etc/disktab > /dev/null \ - 2>&1; then - echo "" - echo "WARNING: can't find defaults for $1 ($_hpib_disktype)" - echo "" - hp300_init_label_scsi_disk $1 - return - fi - - # We've found the defaults. Now use them to place an initial - # disklabel on the disk. - # XXX What kind of ugliness to we have to deal with to get around - # XXX stupidity on the part of disklabel semantics? - disklabel -W ${1} - if ! disklabel -r -w ${1} $_hpib_disktype; then - # Error message displayed by disklabel(8) - echo "" - echo "ERROR: can't install default label!" - echo "" - echo -n "Try a different method? [y] " - getresp "y" - case "$resp" in - y*|Y*) hp300_init_label_scsi_disk $1 - return - ;; - *) rval="1" - return - ;; - esac - fi - - rval="0" - return -} - md_prep_disklabel() { local _disk @@ -331,12 +115,12 @@ md_prep_disklabel() esac # display example - cat << \__md_prep_disklabel_1 + 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. -__md_prep_disklabel_1 +__EOT disklabel -W ${_disk} disklabel -f /tmp/fstab.${_disk} -E ${_disk} @@ -350,15 +134,15 @@ md_welcome_banner() { ( if [ "$MODE" = "install" ]; then echo "Welcome to the OpenBSD/hp300 ${VERSION_MAJOR}.${VERSION_MINOR} installation program." - cat << \__welcome_banner_1 + cat << __EOT This program is designed to help you put OpenBSD on your system in a simple and rational way. -__welcome_banner_1 +__EOT else echo "Welcome to the OpenBSD/hp300 ${VERSION_MAJOR}.${VERSION_MINOR} upgrade program." - cat << \__welcome_banner_2 + cat << __EOT This program is designed to help you upgrade your OpenBSD system in a simple and rational way. @@ -367,10 +151,10 @@ 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 +__EOT fi -cat << \__welcome_banner_3 +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 @@ -381,28 +165,28 @@ 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 +__EOT ) | less -E } md_not_going_to_install() { - cat << \__not_going_to_install_1 + 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. -__not_going_to_install_1 +__EOT } md_congrats() { - cat << \__congratulations_1 + cat << __EOT CONGRATULATIONS! You have successfully installed OpenBSD! To boot the installed system, enter halt at the command prompt. Once the system has halted, power-cycle the machine in order to load new boot code. Make sure you boot from the root disk. -__congratulations_1 +__EOT } md_native_fstype() { |