summaryrefslogtreecommitdiffstats
path: root/etc/etc.i386/inst1.install
diff options
context:
space:
mode:
Diffstat (limited to 'etc/etc.i386/inst1.install')
-rwxr-xr-xetc/etc.i386/inst1.install1042
1 files changed, 0 insertions, 1042 deletions
diff --git a/etc/etc.i386/inst1.install b/etc/etc.i386/inst1.install
deleted file mode 100755
index 395928e..0000000
--- a/etc/etc.i386/inst1.install
+++ /dev/null
@@ -1,1042 +0,0 @@
-#!/bin/sh
-# install1.fs disk 'install'
-#
-# Currently, no method for checking to see if the designated disk type is
-# already in /etc/disktab. You can edit it out of the file after installation.
-#
-PATH=/sbin:/bin:/usr/bin:/usr/sbin:.
-export PATH
-
-OPSYSTEM=FreeBSD
-OPSYSID=165
-ROOTMIN=8
-SWAPMIN=8
-USRMIN=7
-DISKMIN=`expr $ROOTMIN + $SWAPMIN + 1`
-DEFBLOCKING=2
-DEFSECT=17
-DEFHEAD=12
-DEFCYLN=1024
-RUN_FDISK=""
-
-DOS1_ID=1
-DOS2_ID=4
-DOS3_ID=6
-
-set_arbitrary_defaults() {
-cyls_per_disk=$DEFCYLN
-tracks_per_cyl=$DEFHEAD
-sects_per_track=$DEFSECT
-unused_last_part=3
-part_cnt=4
-}
-
-
-get_fdisk_data() {
-cyls_per_disk=
-part_id=
-got_sysid=
-part_cnt=0
-sysid_cnt=0
-have_opsys_part=
-have_dos_part=
-unused_last_part=
-extent_max=0
-extent_max_part=
-
-fdisk /dev/r${drivename}d >fdisk.out 2>fdisk.err
-if [ $? -gt 0 ]; then
- echo "Can't open /dev/r${drivename}d for reading!"
- set_arbitrary_defaults
- >fdisk.out
- >fdisk.err
- return 2
-elif [ -s fdisk.err ]; then
- echo "Disk doesn't appear to be initialized..."
- no_part_table=1
-fi
-while read data; do
- if [ ! "$cyls_per_disk" ]; then
- cyls_per_disk=`expr "$data" : '[^=]*=\([0-9]*\)'`
- tracks_per_cyl=`expr "$data" : '[^=]*=[^=]*=\([0-9]*\)'`
- sects_per_track=`expr "$data" : '[^=]*=[^=]*=[^=]*=\([0-9]*\)'`
- continue
- fi
- if [ "$got_sysid" ]; then
- start_part=`expr "$data" : '[^0-9]*\([0-9]*\)'`
- size_part=`expr "$data" : '[^0-9]*[0-9]*[^0-9]*\([0-9]*\)'`
- extent_part=`expr $start_part + $size_part`
- if [ $extent_part -gt $extent_max ]; then
- extent_max=$extent_part
- extent_max_part=$part_id
- fi
- eval start${part_id}=$start_part
- eval size${part_id}=$size_part
- sysid_cnt=`expr $sysid_cnt + 1`
- got_sysid=
- part_id=
- elif [ "$part_id" ]; then
- sysid=`expr "$data" : 'sysid \([0-9]*\)'`
- sysname=`expr "$data" : 'sysid[^(]*(\([^)]*\)'`
- if [ "$no_part_table" -o "$sysid" = "0" -o \
- "$(expr "$data" : '\(<UNUSED>\)')" = "<UNUSED>" ]; then
- unused_last_part=$part_id
- part_id=
- continue
- fi
- if [ "$sysid" = "$OPSYSID" ]; then
- have_opsys_part=$part_id
- elif [ ! "$have_dos_part" -a \( "$sysid" = "$DOS1_ID" -o \
- "$sysid" = "$DOS2_ID" -o "$sysid" = "$DOS3_ID" \) ]; then
- have_dos_part=$part_id
- fi
- eval sysid${part_id}=$sysid
- eval sysname${part_id}=\"$sysname\"
- got_sysid=1
- else
- part_id=`expr "$data" : 'The data[^0-9]*\([0-9]*\)'`
- beg_cyl=`expr "$data" : '[ ]*beg[^0-9]*\([0-9]*\)'`
- end_cyl=`expr "$data" : '[ ]*end[^0-9]*\([0-9]*\)'`
- if [ "$part_id" ]; then
- part_cnt=`expr $part_cnt + 1`
- elif [ "${beg_cyl}" -gt "${cyls_per_disk}" -o \
- "${end_cyl}" -gt "${cyls_per_disk}" ]; then
- no_part_table=1
- sysid_cnt=0
- have_opsys_part=0
- unused_last_part=`expr $part_cnt - 1`
- fi
- fi
-done <fdisk.out
-if [ ! "$cyls_per_disk" ]; then
- set_arbitrary_defaults
- return 2
-fi
->fdisk.out
->fdisk.err
-return 0
-}
-
-set_existing_part() {
-# Set existing partiton values as default (adjusting to cylinder boundaries)
-eval opsys_size=\$size${opsys_part}
-eval opsys_start=\$start${opsys_part}
-[ $opsys_size -eq 50000 ] && opsys_size=$disksize
-opsys_off=`expr $opsys_start / $cylindersize`
-opsys_adjusted=`expr $opsys_off \* $cylindersize`
-if [ $opsys_adjusted -lt $opsys_start -o $opsys_off -eq 0 ]; then
- opsys_off=`expr $opsys_off + 1`
- opsys_adjusted=`expr $opsys_off \* $cylindersize`
- opsys_size=`expr $opsys_size - $opsys_adjusted + $opsys_start`
-fi
-cyls_per_opsys=`expr $opsys_size / $cylindersize`
-RUN_FDISK="fdisk -u"
-}
-
-
-set_overwrite_part() {
-while :; do
- echo
- echo -n "Please specify partition to overwrite: [3] "
- read resp junk
- opsys_part=${resp:-3}
- if [ "$opsys_part" -ge 0 -a "$opsys_part" -le 3 ]; then
- break
- else
- echo
- echo "Partition must be in the range [0-3]"
- fi
-done
-set_existing_part
-}
-
-analyze_fdisk_data() {
-if [ "$part_cnt" -gt 0 ]; then
- echo
- echo "Partition Offset* Size* Name"
- echo "--------- ------ ---- ----"
- i=0
- while [ $i -lt $part_cnt ]; do
- pcyls=
- poff=
- eval psize=\$size${i}
- eval pstart=\$start${i}
- eval pname=\$sysname${i}
- [ "$psize" -eq 50000 ] && psize=$disksize
- if [ "$psize" ]; then
- poff=`expr $pstart / $cylindersize`
- padjusted=`expr $poff \* $cylindersize`
- if [ "$padjusted" -lt "$pstart" ]; then
- poff=`expr $poff + 1`
- padjusted=`expr $poff \* $cylindersize`
- psize=`expr $psize - $padjusted + $pstart`
- fi
- pcyls=`expr $psize / $cylindersize`
- fi
- echo -n "${i}"
- echo -n " ${poff:-0}"
- echo -n " ${pcyls:-0}"
- echo " ${pname:-(Unused)}"
- i=`expr $i + 1`
- done
- echo "* Sizes and offsets are in units of cylinders."
-fi
-# Case I: >1024 cylinders
-force_offset=
-if [ $cyls_per_disk -gt 1024 ]; then
- echo
- echo " WARNING: >1024 cylinders. On some hardware, this prevents"
- echo " ${OPSYSTEM} from sharing the disk with other operating systems."
- echo -n "Install ${OPSYSTEM} on entire disk, overwriting existing partitions? [n] "
- read resp junk
- case "$resp" in
- y*|Y*)
- RUN_FDISK=""
- force_offset=1
- opsys_off=0
- cyls_per_opsys=${cyls_per_disk}
- opsys_part=${unused_last_part:-3}
- return 0
- ;;
- *)
- echo
- echo "If the number of disk cylinders does not exceed 1024, then ${OPSYSTEM}"
- echo "can be installed alongside other operating systems on a single disk."
- echo "Otherwise, it is system-dependent whether this will work or not."
- echo "In the worst case, ${OPSYSTEM} MUST be installed at the beginning of"
- echo "the disk, and existing partitions will be lost."
- echo
- echo "For now, we will assume that >1024 cylinders creates no problems..."
- # FALL THROUGH
- ;;
- esac
-fi
-# Case II: no partitions used
-if [ $sysid_cnt -eq 0 ]; then
- echo
- echo " WARNING: partition table is either missing or corrupt."
- echo " Existing partitions will be lost."
- part_cnt=${part_cnt:-4}
- RUN_FDISK="overwrite"
- opsys_off=1
- cyls_per_opsys=`expr ${cyls_per_disk} - 1`
- opsys_part=${unused_last_part:-3}
- return 0
-# Case IIIa: overwrite an existing 386BSD/NetBSD/FreeBSD partition
-elif [ "$have_opsys_part" ]; then
- echo
- echo "386/Net/FreeBSD partition already exists!"
- echo "${OPSYSTEM} cannot be installed alongside an existing BSD partition."
- echo -n "Overwrite existing partition? [y] "
- read resp junk
- case "${resp:-y}" in
- y*|Y*)
- opsys_part=${have_opsys_part}
- set_existing_part
- return 0
- ;;
- *)
- echo
- echo "Installation aborted. Enter \`halt' to halt the machine."
- echo "Once the machine has halted, remove the floppy,"
- echo "and press any key to reboot."
- exit
- ;;
- esac
-fi
-
-# Case IIIb: no partitions available
-if [ $sysid_cnt -eq $part_cnt -a ! "$have_opsys_part" ]; then
- echo
- echo "No unused partitions."
- echo -n "Install $OPSYSTEM and overwrite the entire disk? [n] "
- read resp junk
- case "$resp" in
- y*|Y*)
- # don't use first cylinder!
- opsys_off=1
- cyls_per_opsys=`expr $cyls_per_disk - 1`
- opsys_part=${unused_last_part}
- RUN_FDISK="overwrite"
- ;;
- *)
- set_overwrite_part
- ;;
- esac
- return 0
-fi
-
-
-# *** CAVEAT ***
-# $OPSYSTEM installs at the end of the disk. If the
-# beginning of the disk is free but not the end, install fails!
-
-# Assume `fdisk -u' to add $OPSYSTEM in last unused partition for remaining cases
-opsys_part=${unused_last_part}
-RUN_FDISK="fdisk -u"
-mb_sect=`expr 1024 \* 1024 / $bytes_per_sect`
-disk_minimum=`expr $DISKMIN \* $mb_sect`
-
-# Case IV: No room (at end of disk) for mininal install
-[ $extent_max -eq 50000 ] && extent_max=$disksize
-disk_remaining=`expr $disksize - $extent_max`
-if [ $disk_remaining -lt $disk_minimum ]; then
- echo
- echo "Not enough space ($DISKMIN Mb) at end of disk to install $OPSYSTEM."
- echo -n "Install FreeBSD and overwrite the entire disk? [n] "
- read resp junk
- case "$resp" in
- y*|Y*)
- # don't use first cylinder!
- opsys_off=1
- cyls_per_opsys=`expr $cyls_per_disk - 1`
- opsys_part=${unused_last_part}
- RUN_FDISK="overwrite"
- ;;
- *)
- echo
- echo -n "Overwrite an existing partition? [n] "
- read resp junk
- case "$resp" in
- y*|Y*)
- set_overwrite_part
- ;;
- *)
- echo
- echo " WARNING: To install ${OPSYSTEM}, you're on your own in figuring"
- echo " out where on the disk it will fit without overwriting another"
- echo " partition..."
- # Set defaults assuming there is only one partition at end of disk
- eval start=\$start${extent_max_part}
- # don't use first cylinder!
- opsys_off=1
- cyls_per_opsys=`expr $start / $cylindersize - 1`
- [ $cyls_per_opsys -lt 0 ] && cyls_per_opsys=0
- ;;
- esac
- ;;
- esac
- return 0
-fi
-
-# Case V: Room for $OPSYSTEM and partition data okay
-opsys_off=`expr $extent_max / $cylindersize`
-opsys_extent=`expr $opsys_off \* $cylindersize`
-[ $opsys_extent -lt $extent_max ] && opsys_off=`expr $opsys_off + 1`
-cyls_per_opsys=`expr $cyls_per_disk - $opsys_off`
-return 0
-}
-
-put_fdisk_data() {
-start=$root_offset
-size=$partition
-
-if [ "$RUN_FDISK" = "overwrite" ]; then
- # How do you overwrite without explicitly editing each entry?
- (
- echo y
- echo $cyls_per_disk
- echo $tracks_per_cyl
- echo $sects_per_track
- echo y
- ) >fdisk.script
- i=0
- n=`expr ${part_cnt:-4} - 1`
- while [ $i -lt $n ]; do
- echo y
- echo 0
- echo 0
- echo 0
- echo n
- echo y
- i=`expr $i + 1`
- done >>fdisk.script
- ( echo y
- echo ${OPSYSID}
- echo ${start}
- echo ${size}
- echo n
- echo y
- echo y
- echo ${n}
- echo y
- echo y
- ) >>fdisk.script
- fdisk -u /dev/r${drivename}d <fdisk.script >/dev/null 2>&1
-elif [ "$RUN_FDISK" ]; then
- $RUN_FDISK -${opsys_part:-${unused_last_part:-3}} /dev/r${drivename}d <<-EOF >/dev/null 2>&1
- y
- $cyls_per_disk
- $tracks_per_cyl
- $sects_per_track
- y
- y
- ${OPSYSID}
- ${start}
- ${size}
- n
- y
- y
- ${opsys_part:-${unused_last_part:-3}}
- y
- y
- EOF
-fi
-
-}
-
-echo
-echo
-echo "Welcome to ${OPSYSTEM}."
-echo
-echo "This program is designed to help put ${OPSYSTEM} on a hard disk with"
-echo "at least $DISKMIN Megabytes of free space."
-echo
-echo "Before starting, it is important to know your hard disk's geometry"
-echo "(i.e., number of cylinders, heads and sectors/track). If installing"
-echo "${OPSYSTEM} on the same disk as another operating system, then the"
-echo "two systems should use the same geometry. In particular, ${OPSYSTEM}'s"
-echo "default geometry is inappropriate for MS-DOS. So in this case, the"
-echo "DOS geometry should be used instead."
-echo
-echo "As with anything which modifies a hard drive's contents, this program"
-echo "can cause SIGNIFICANT data loss. We strongly recommend making sure"
-echo "that the hard drive is backed up before going further with the"
-echo "installation process."
-echo
-echo -n "Proceed with installation? [y] "
-read resp junk
-resp=${resp:-y}
-case "$resp" in
-y*|Y*)
- echo
- echo "Cool! Let's get to it..."
- echo
- echo "If a mistake is made along the way, don't bail out."
- echo "At the end, you have the option of redoing the configuration."
- echo "If you really must quit at some point, type <CTRL>+C and"
- echo "enter \`halt' at the command prompt, \`#'."
- ;;
-*)
- echo
- echo "Installation aborted. Enter \`halt' to halt the machine."
- echo "Once the machine has halted, remove the floppy,"
- echo "and press any key to reboot."
- exit
- ;;
-esac
-
-mount -u /dev/fd0 / || {
- if mount -u /dev/fd1 / ; then
- echo "[Please ignore the above error message, that's normal.]"
- else
- echo "Oh boy, we're in trouble here: Could not mount floppy read-write."
- exit 1
- fi
-}
-sync
-verified_install=""
-while [ ! "$verified_install" ]; do # Begin of Big Loop
-
-rotdelay="-d 0 -n 1"
-drivename=wd0
-drivetype=wd
-sect_fwd=""
-echo
-echo "First, we need to know the drive type. This can be can be one of"
-echo "ESDI, SCSI, ST506, or IDE."
-echo -n "Drive type? [${type:-IDE}] "
-read resp junk
-type=${resp:-${type:-IDE}}
-case "$type" in
-e*|E*|st*|ST*)
- echo -n "Does it support AUTOMATIC sector remapping? [y] "
- read remap junk
- case "$remap" in
- n*|N*)
- sect_fwd="sf:"
- ;;
- esac
- case "$type" in
- e*|E*)
- DEFSECT=36
- ;;
- esac
- ;;
-i*|I*)
- type=ST506
- ;;
-sc*|SC*)
- drivename=sd0
- drivetype=sd
- type=SCSI
- DEFSECT=32
- DEFHEAD=64
- ;;
-*)
- echo "Unknown type. Assuming ST506 with automatic sectoring..."
- type=ST506
- ;;
-esac
-echo
-echo -n "Install onto which drive [$drivename] "
-read resp junk
-drivename=${resp:-${drivename}}
-echo
-echo "Disk $drivename is of device type $drivetype."
-if [ ! "$partition" ]; then
- echo
- echo "Examining device /dev/r${drivename}d..."
- get_fdisk_data
- if [ $? -gt 1 ]; then
- echo "Hm - we can't seem to read that drive."
- echo
- echo -n "Are you sure that $type is the correct type? [n] "
- read resp
- case "$resp" in
- y*|Y*)
- echo
- echo "Well, since we can't even open it, there isn't much"
- echo "hope for writing a label on it. But you're free"
- echo "to give it a try. You need to specify the geometry."
- ;;
- *)
- echo
- echo "Oops. Let's start again from the top."
- continue
- ;;
- esac
- fi
-fi
-echo
-echo "Now we want to build a data base entry in /etc/disktab describing"
-echo "the geometry of the /dev/$drivename disk. The name of the entry"
-echo "should be descriptive of the disk's type and model. For example,"
-echo "a Maxtor IDE, model 7080 disk might be named \`maxtor7080'."
-echo -n "Disk label name (one word, please)? [${name:-mfr_model}] "
-read resp junk
-name=${resp:-${name:-mfr_model}}
-echo
-echo "${OPSYSTEM} should use the same hard disk geometry as used by other"
-echo "operating systems on the hard disk."
-echo -n "Number of bytes per disk sector? [${bytes_per_sect:-512}] "
-read resp junk
-bytes_per_sect=${resp:-${bytes_per_sect:-512}}
-echo
-echo -n "Total number of disk cylinders? [${cyls_per_disk:-${DEFCYLN}}] "
-read resp junk
-cyls_per_disk=${resp:-${cyls_per_disk:-${DEFCYLN}}}
-echo
-echo -n "Number of disk heads (i.e., tracks/cylinder)? [${tracks_per_cyl:-${DEFHEAD}}] "
-read resp junk
-tracks_per_cyl=${resp:-${tracks_per_cyl:-${DEFHEAD}}}
-echo
-echo -n "Number of disk sectors (i.e., sectors/track)? [${sects_per_track:-${DEFSECT}}] "
-read resp junk
-sects_per_track=${resp:-${sects_per_track:-${DEFSECT}}}
-cylindersize=`expr $sects_per_track \* $tracks_per_cyl`
-disksize=`expr $cylindersize \* $cyls_per_disk`
-mb_sect=`expr 1024 \* 1024 / $bytes_per_sect`
-mb_per_disk=`expr $disksize / $mb_sect`
-opsys_cyls_min=`expr $DISKMIN \* $mb_sect / $cylindersize`
-analyze_fdisk_data
-if [ $? -eq 0 ]; then
- partition=`expr $cyls_per_opsys \* $cylindersize`
- part_offset=`expr $opsys_off \* $cylindersize`
-fi
-echo
-echo "Disk has a total of $mb_per_disk Mb."
-echo "The size of the ${OPSYSTEM} portion of the disk must be at least"
-echo "${opsys_cyls_min} cylinders, and should not exceed $(expr $cyls_per_disk - 1) cylinders."
-echo "The offset of ${OPSYSTEM} from the beginning of the disk should be at"
-echo "least 1 cylinder."
-echo
-echo "For efficiency, partitions begin and end on cylinder boundaries."
-echo "If you know the size NN in Megabytes (Mb) of a partition you want, then"
-echo "use the following formula to determine the number NC of cylinders to use:"
-echo " NC = integer { ( NN * $mb_sect ) / $cylindersize }"
-while :; do
- echo -n "Total size of the ${OPSYSTEM} portion of the disk (in cylinders)? [${cyls_per_opsys:-`expr ${cyls_per_disk} - 1`}] "
- read resp junk
- cyls_per_opsys=${resp:-${cyls_per_opsys:-`expr ${cyls_per_disk} - 1`}}
- partition=`expr $cyls_per_opsys \* $cylindersize`
- if [ $cyls_per_opsys -lt $cyls_per_disk -a ! "$force_offset" ]; then
- echo
- echo -n "Offset of ${OPSYSTEM} from beginning of disk (in cylinders)? [${opsys_off:-1}] "
- read resp junk
- opsys_off=${resp:-${opsys_off:-1}}
- else
- echo
- echo " WARNING: Existing partitions will be lost. In addition,"
- echo " installing at cylinder 0 may cause problems for some disk"
- echo " controllers. If the filesystem is corrupted or install"
- echo " fails, install at cylinder 1."
- RUN_FDISK=""
- cyls_per_opsys=$cyls_per_disk
- partition=$disksize
- opsys_off=0
- fi
- part_offset=`expr $opsys_off \* $cylindersize`
- opsys_extent=`expr $opsys_off + $cyls_per_opsys`
- if [ ${opsys_extent} -gt ${cyls_per_disk} ]; then
- echo
- echo "${OPSYSTEM} Size + Offset cannot exceed ${cyls_per_disk} cylinders."
- elif [ ${cyls_per_opsys} -lt ${opsys_cyls_min} ]; then
- echo
- echo "${OPSYSTEM} requires at least ${opsys_cyls_min} cylinders to install."
- else break
- fi
-done
-badspacesec=0
-if [ "$sect_fwd" = "sf:" ]; then
- badspacecyl=`expr $sects_per_track + 126`
- badspacecyl=`expr $badspacecyl + $cylindersize - 1`
- badspacecyl=`expr $badspacecyl / $cylindersize`
- badspacesec=`expr $badspacecyl \* $cylindersize`
- echo
- echo -n "Using $badspacesec sectors ($badspacecyl cylinders) for the "
- echo "bad144 bad block table"
-fi
-whats_left=`expr $partition - $badspacesec`
-cyl_left=`expr $whats_left / $cylindersize`
-mb_left=`expr $whats_left / $mb_sect`
-swap_cyls_min=`expr $SWAPMIN \* $mb_sect / $cylindersize`
-root_cyls_max=`expr ${cyl_left} - ${swap_cyls_min}`
-root_cyls_min=`expr $ROOTMIN \* $mb_sect / $cylindersize`
-echo
-echo "There are $mb_left Mb ($cyl_left cylinders) to allocate."
-echo
-echo "The $OPSYSTEM portion of the disk must itself be divided into at least"
-echo "two partitions: one for the root filesystem and one for swap. It is a"
-echo "good idea to have at least a third (large) $OPSYSTEM partition for the /usr"
-echo "filesystem."
-echo
-echo "The root partition cannot exceed ${root_cyls_max} cylinders. It is usually"
-echo "no larger than about 15 Mb ($(expr 15 \* $mb_sect / $cylindersize) cylinders), and sometimes"
-echo "as small as $ROOTMIN Mb ($root_cyls_min cylinders)."
-if [ ! "$cyls_per_root" ]; then
- # set default root partition to 15MB
- cyls_per_root=`expr \( 15 \* $mb_sect \) / $cylindersize`
- usr_cyls_max=`expr ${root_cyls_max} - ${cyls_per_root}`
- mb_usr=`expr ${usr_cyls_max} \* $cylindersize / $mb_sect`
- [ $cyls_per_root -gt $root_cyls_max -o $mb_usr -lt $USRMIN ] &&
- cyls_per_root=$root_cyls_max
-fi
-while :; do
- echo -n "Root partition size (in cylinders)? [${cyls_per_root}] "
- read resp junk
- cyls_per_root=${resp:-${cyls_per_root}}
- root=`expr $cyls_per_root \* $cylindersize`
- if [ ${cyls_per_root} -gt ${root_cyls_max} ]; then
- echo
- echo "The root partition size cannot exceed $root_cyls_max cylinders."
- elif [ ${cyls_per_root} -lt ${root_cyls_min} ]; then
- echo
- echo "The root partition size must be at least $root_cyls_min cylinders."
- else
- part_used=`expr $root + $badspacesec`
- break
- fi
-done
-root_offset=$part_offset
-whats_left=`expr $partition - $part_used`
-cyl_left=`expr $whats_left / $cylindersize`
-mb_left=`expr $whats_left / $mb_sect`
-echo
-# DO NOT USE DIFFERENT BLOCKING FACTORS FOR EACH PARITION.. IT TRASHES THE
-# VM SYSTEM! When that gets fixed this can go back the way it was...
-#
-echo "We can build the filesystems with block/fragment sizes of either"
-echo " 1) 4k/512, to save disk space at the expense of speed, or"
-echo " 2) 8k/1k for speed at the expense of disk space."
-echo -n "Which blocking factor should we use for the filesystems? "
-echo -n "[${blocking_factor:-${DEFBLOCKING}}] "
-read resp junk
-blocking_factor=${resp:-${blocking_factor:-${DEFBLOCKING}}}
-fragsize=`expr $bytes_per_sect \* $blocking_factor`
-blocksize=`expr $bytes_per_sect \* $blocking_factor \* 8`
-echo
-echo "$mb_left Mb ($cyl_left cylinders) remaining in ${OPSYSTEM} portion of disk."
-echo
-echo "Minimum swap space is ${swap_cyls_min} cylinders."
-echo "For running X, if your RAM size is NR Mb, then the recomended swap"
-echo "size NS (in cylinders) is:"
-echo " NS = integer { ( NR x `expr 21 \* $mb_sect / 10` ) / ${cylindersize} }"
-if [ ! "$swap_cyl" ]; then
- # guess memory size
- mb_ram=16
- swap_cyl=`expr \( 21 \* $mb_ram \* $mb_sect \) / 10`
- swap_cyl=`expr $swap_cyl / ${cylindersize}`
-
- # but not swap size more than 10% of disk size...
- swap_quot=`expr $mb_left / $mb_ram`
- if [ $swap_quot -lt 10 ]; then
- swap_cyl=$swap_cyls_min
- fi
-fi
-while :; do
- echo -n "Swap partition size (in cylinders)? [${swap_cyl}] "
- read resp junk
- swap_cyl=${resp:-${swap_cyl}}
- swap=`expr $swap_cyl \* $cylindersize`
- if [ ${swap_cyl} -gt ${cyl_left} ]; then
- echo
- echo "Swap size cannot exceed $cyl_left cylinders."
- elif [ ${swap_cyl} -lt ${swap_cyls_min} ]; then
- echo
- echo "Swap size must be at least ${swap_cyls_min} cylinders."
- else
- break
- fi
-done
-swap_offset=`expr $root_offset + $root`
-part_used=`expr $part_used + $swap`
-echo "" >/etc/disktab
-echo "$name|${OPSYSTEM} installation generated:\\" >>/etc/disktab
-echo " :dt=${type}:ty=winchester:\\" >>/etc/disktab
-echo -n " :nc#${cyls_per_disk}:ns#${sects_per_track}" >>/etc/disktab
-echo ":nt#${tracks_per_cyl}:\\" >>/etc/disktab
-echo " :se#${bytes_per_sect}:${sect_fwd}\\" >>/etc/disktab
-echo -n " :pa#${root}:oa#${root_offset}" >>/etc/disktab
-echo ":ta=4.2BSD:ba#${blocksize}:fa#${fragsize}:\\" >>/etc/disktab
-echo " :pb#${swap}:ob#${swap_offset}:tb=swap:\\" >>/etc/disktab
-echo " :pc#${partition}:oc#${part_offset}:\\" >>/etc/disktab
-ename="";fname="";gname="";hname=""
-if [ $part_used -lt $partition ]; then
- echo
- echo "Now we enter information about any other partitions and filesystems"
- echo "to be created in the ${OPSYSTEM} portion of the disk. This process"
- echo "is complete when we've filled up all remaining space in the ${OPSYSTEM}"
- echo "portion of the disk."
-fi
-while [ $part_used -lt $partition ]; do
- part_size=0
- whats_left=`expr $partition - $part_used`
- cyl_left=`expr $whats_left / $cylindersize`
- mb_left=`expr $whats_left / $mb_sect`
- echo
- echo "$mb_left Mb ($cyl_left cylinders) remaining in ${OPSYSTEM} portion of disk."
- echo
- while :; do
- echo -n "Next partition size (in cylinders)? [${cyl_left}] "
- read resp junk
- part_size=${resp:-${cyl_left}}
- part_size=`expr $part_size \* $cylindersize`
- total=`expr $part_used + $part_size`
- if [ $total -gt $partition ]; then
- echo
- echo "Partition size cannot exceed ${cyl_left} cylinders."
- else
- part_used=$total
- part_name=""
- while [ "$part_name" = "" ]; do
- echo
- echo -n "On which directory should this filesystem be mounted? [usr] "
- read resp junk
- part_name=${resp:-usr}
- part_name=`expr X"$part_name" : 'X/*\(.*\)'`
- done
- break
- fi
- done
- if [ ! "$ename" ]; then
- ename=$part_name
- offset=`expr $part_offset + $root + $swap`
- echo -n " :pe#${part_size}:oe#${offset}" >>/etc/disktab
- echo ":te=4.2BSD:be#${blocksize}:fe#${fragsize}:\\" >>/etc/disktab
- offset=`expr $offset + $part_size`
- elif [ ! "$fname" ]; then
- fname=$part_name
- echo -n " :pf#${part_size}:of#${offset}" >>/etc/disktab
- echo ":tf=4.2BSD:bf#${blocksize}:ff#${fragsize}:\\" >>/etc/disktab
- offset=`expr $offset + $part_size`
- elif [ ! "$gname" ]; then
- gname=$part_name
- echo -n " :pg#${part_size}:og#${offset}" >>/etc/disktab
- echo ":tg=4.2BSD:bg#${blocksize}:fg#${fragsize}:\\" >>/etc/disktab
- offset=`expr $offset + $part_size`
- elif [ ! "$hname" ]; then
- hname=$part_name
- echo -n " :ph#${part_size}:oh#${offset}" >>/etc/disktab
- echo ":th=4.2BSD:bh#${blocksize}:fh#${fragsize}:\\" >>/etc/disktab
- part_used=partition
- fi
-done
-if [ "$have_dos_part" -a "$have_dos_part" != "$opsys_part" -a \
- "$RUN_FDISK" != "" -a "$RUN_FDISK" != "overwrite" -a ! "$hname" ]; then
- echo
- echo "There appears to be a MS-DOS filesystem on the hard disk."
- echo -n "Make this be accessible from ${OPSYSTEM}? [y] "
- read resp junk
- case "${resp:-y}" in
- y*|Y*)
- part_name=""
- while [ "$part_name" = "" ]; do
- echo
- echo -n "On which directory should this filesystem be mounted? [dos] "
- read resp junk
- part_name=${resp:-dos}
- part_name=`expr X"$part_name" : 'X/*\(.*\)'`
- done
- hname=$part_name
- eval offset=\$start${have_dos_part}
- eval part_size=\$size${have_dos_part}
- echo -n " :ph#${part_size}:oh#${offset}" >>/etc/disktab
- echo ":th=MSDOS:\\" >>/etc/disktab
- part_used=partition
- ;;
- *)
- have_dos_part=""
- ;;
- esac
-else
- have_dos_part=""
-fi
-echo " :pd#${disksize}:od#0:" >>/etc/disktab
-sync
-
-# cat /etc/disktab
-OIFS=$IFS
-IFS='
-'
-while read data; do
- echo $data
-done < /etc/disktab
-IFS=$OIFS
-
-echo
-echo -n "Verbose installation? [n] "
-read resp
-
-case $resp in
-y*)
- cpioverbose=v
- ;;
-*)
- cpioverbose=
- ;;
-esac
-
-
-echo
-echo "THIS IS THE LAST CHANCE!!! Data on the hard disk will be lost!"
-echo -n "Are you sure you want to install on the hard drive? (yes/no) "
-resp=""
-while [ ! "$resp" ]; do
- read resp junk
- case "$resp" in
- Yes|yes|YES)
- verified_install=1
- echo
- echo "Here we go..."
- ;;
- No|no|NO)
- echo
- echo -n "Would you like to change the configuration? [y] "
- read resp junk
- resp=${resp:-y}
- case "$resp" in
- y*|Y*)
- ;;
- *)
- echo
- echo "Installation aborted. Enter 'halt' to halt the machine."
- echo "Once the machine has halted, remove the floppy,"
- echo "and press any key to reboot."
- exit
- ;;
- esac
- ;;
- *)
- echo "Please spell out either of \`yes' or \`no'..."
- echo -n "Install on the hard disk? (yes/no) "
- resp=
- ;;
- esac
-done
-done # End of Big Loop
-
-put_fdisk_data
-
-echo
-echo -n "Labelling disk..."
-echo y |
-/sbin/disklabel -w -r -B ${drivename}c $name
-# >/dev/null 2>&1
-echo " done."
-
-# XXX - Do it again, incase we disklabeled sector 0!
-# XXX - this is not working for some reason, need to look at it closer!
-put_fdisk_data
-
-if [ "$sect_fwd" = "sf:" ]; then
- echo -n "Initializing bad144 badblock table..."
- bad144 $drivename 0
- echo " done."
- echo "Updating badblock table..."
- # `2>&1 >/dev/null' filters stdout and leaves only stderr...
- badlist=$(bad144 -s $drivename 2>&1 >/dev/null |
- while read data; do
- bad_seek=$(expr "$data" : '[^(]*(seek)[^0-9]*\([0-9]*\)')
- bad_read=$(expr "$data" : '[^(]*(read)[^0-9]*\([0-9]*\)')
- [ "$bad_seek" -o "$bad_read" ] && echo -n "$bad_seek $bad_read "
- done)
- [ "$badlist" ] && bad144 -a -c $drivename $badlist
- echo " done."
-fi
-
-echo "Initializing root filesystem, and mounting..."
-newfs ${rotdelay} /dev/r${drivename}a $name
-mount -v /dev/${drivename}a /mnt
-if [ "$ename" != "" ]; then
- echo
- echo "Initializing $ename filesystem, and mounting..."
- newfs ${rotdelay} /dev/r${drivename}e $name
- mkdir -p /mnt/$ename
- mount -v /dev/${drivename}e /mnt/$ename
-fi
-if [ "$fname" != "" ]; then
- echo
- echo "Initializing $fname filesystem, and mounting..."
- newfs ${rotdelay} /dev/r${drivename}f $name
- mkdir -p /mnt/$fname
- mount -v /dev/${drivename}f /mnt/$fname
-fi
-if [ "$gname" != "" ]; then
- echo
- echo "Initializing $gname filesystem, and mounting..."
- newfs ${rotdelay} /dev/r${drivename}g $name
- mkdir -p /mnt/$gname
- mount -v /dev/${drivename}g /mnt/$gname
-fi
-if [ "$hname" != "" ]; then
- echo
- if [ ! "$have_dos_part" ]; then
- echo "Initializing $hname filesystem, and mounting..."
- newfs ${rotdelay} /dev/r${drivename}h $name
- else
- echo "Preparing for $hname filesystem, and mounting..."
- fi
- mkdir -p /mnt/$hname
- [ ! "$have_dos_part" ] &&
- mount -v /dev/${drivename}h /mnt/$hname
-fi
-
-echo
-echo -n "Copying to disk... "
-cd /
-cpio -pdamu${cpioverbose} /mnt <filelist
-echo -n "Copying more to disk... "
-cd /mnt
-gzcat < /inst1.cpio.gz | cpio -idmu${cpioverbose}
-
-echo -n "Building /etc/fstab... "
-echo "proc /proc procfs rw 0 0" >etc/fstab
-echo "/dev/${drivename}b none swap sw 0 0" >>etc/fstab
-echo "/dev/${drivename}a / ufs rw 1 1" >>etc/fstab
-if [ "$ename" != "" ]; then
- echo "/dev/${drivename}e /$ename ufs rw 1 2" >>etc/fstab
-fi
-if [ "$fname" != "" ]; then
- echo "/dev/${drivename}f /$fname ufs rw 1 3" >>etc/fstab
-fi
-if [ "$gname" != "" ]; then
- echo "/dev/${drivename}g /$gname ufs rw 1 4" >>etc/fstab
-fi
-if [ "$hname" != "" ]; then
- if [ ! "$have_dos_part" ]; then
- echo "/dev/${drivename}h /$hname ufs rw 1 5" >>etc/fstab
- else
- echo "/dev/${drivename}h /$hname pcfs ro 0 0" >>etc/fstab
- fi
-fi
-
-# cat /etc/disktab >etc/disktab.install
-OIFS=$IFS
-IFS='
-'
-while read data; do
- echo $data
-done </etc/disktab >etc/disktab.install
-IFS=$OIFS
-echo "done."
-
-echo -n "Building /etc/rc... "
-(
-echo "PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/distbin:"
-echo "export PATH"
-echo "HOME=/root"
-echo "export HOME"
-echo "TERM=pc3"
-echo "export TERM"
-echo "mount -at ufs"
-echo "echo"
-echo "echo"
-echo "echo \"Insert cpio installation floppy in drive and\""
-echo "echo -n \"enter that drive's number (0 = A:, 1 = B:): [0] \""
-echo "read resp junk"
-echo "driveno=\${resp:-0}"
-echo "mount -o ro /dev/fd\${driveno} /mnt"
-echo "cd /mnt"
-echo "install"
-echo "cd /"
-echo "umount /mnt >/dev/null 2>&1"
-echo "echo"
-echo "echo -n \"Install optional dos floppy? [n] \""
-echo "read resp junk"
-echo "case \"\$resp\" in"
-echo "y*|Y*)"
-echo " echo"
-echo " echo \"Insert dos floppy in drive, and then\""
-echo " echo -n \"enter that drive's number (0 or 1): [0] \""
-echo " read resp junk"
-echo " driveno=\${resp:-0}"
-echo " echo \"Copying files to /usr/distbin...\""
-echo " mount -t pcfs -o ro /dev/fd\${driveno} /mnt"
-echo " mkdir -p /usr/distbin"
-echo " cp /mnt/* /usr/distbin/ >/dev/null 2>&1"
-echo " umount /mnt >/dev/null 2>&1"
-echo " sync"
-echo " ;;"
-echo "esac"
-echo "echo"
-echo "echo \"OK. All of the base files are installed.\""
-echo "echo"
-echo "echo \"The next step: reboot from the hard disk. Further\""
-echo "echo \"instructions are presented upon rebooting.\""
-echo "echo"
-echo "echo \"Enter 'halt' now at the prompt to halt the machine.\""
-echo "echo \"After the machine has halted, remove the floppy from the disk\""
-echo "echo \"drive, and hit any key to reboot from the hard disk.\""
-echo "exit 1"
-) >etc/rc
-echo "done."
-
-if [ "$hname" != "" ]; then /sbin/umount /dev/${drivename}h ; fi
-if [ "$gname" != "" ]; then /sbin/umount /dev/${drivename}g ; fi
-if [ "$fname" != "" ]; then /sbin/umount /dev/${drivename}f ; fi
-if [ "$ename" != "" ]; then /sbin/umount /dev/${drivename}e ; fi
-/sbin/umount /mnt
-
-sync
-
-echo
-echo "The next step: reboot from the kernel-copy disk, copy a kernel"
-echo "to the hard disk, and finally reboot from the hard disk."
-echo
-echo "To do this, enter \`halt' now to halt the machine. After it"
-echo "announces that it has halted, remove the floppy from the drive"
-echo "and insert the kernel-copy disk that was booted before."
-echo "Press any key to reboot. When prompted to insert the filesystem"
-echo "floppy this time, just hit RETURN without changing floppies."
-echo
-echo "If all goes well, you can enter the command \`copy' at the prompt to"
-echo "copy the kernel to the hard disk. When asked for which partition to"
-echo "copy to, enter \`${drivename}a' (without the quotes)."
-echo
-echo "The light on the floppy may not go out, so don't wait for it."
-echo
-echo "Okay, that's all for now. I'm halting ..."
-
-sync;sync;sync;sync
-halt
OpenPOWER on IntegriCloud