summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorsvn2git <svn2git@FreeBSD.org>1993-11-01 08:00:00 +0000
committersvn2git <svn2git@FreeBSD.org>1993-11-01 08:00:00 +0000
commit8503f4f13f77abf7adc8f7e329c6f9c1d52b6a20 (patch)
treec5b2ce776438e0a52b492a2ab6ab41360b8ba1f6 /etc
Diffstat (limited to 'etc')
-rw-r--r--etc/MAKEDEV.local49
-rw-r--r--etc/Makefile471
-rw-r--r--etc/aliases30
-rw-r--r--etc/crontab20
-rw-r--r--etc/csh.cshrc1
-rw-r--r--etc/csh.login4
-rw-r--r--etc/csh.logout1
-rw-r--r--etc/daily148
-rw-r--r--etc/dm.conf19
-rw-r--r--etc/etc.i386/MAKEDEV435
-rw-r--r--etc/etc.i386/disktab119
-rw-r--r--etc/etc.i386/floppy.install_notes153
-rw-r--r--etc/etc.i386/fstab.wd3
-rwxr-xr-xetc/etc.i386/inst1.install1015
-rw-r--r--etc/etc.i386/inst1.profile7
-rwxr-xr-xetc/etc.i386/inst2.install40
-rw-r--r--etc/etc.i386/inst2.profile440
-rw-r--r--etc/etc.i386/install_notes1055
-rw-r--r--etc/etc.i386/kc.profile83
-rw-r--r--etc/ftpusers4
-rw-r--r--etc/gettytab173
-rw-r--r--etc/group15
-rw-r--r--etc/host.conf4
-rw-r--r--etc/hosts13
-rw-r--r--etc/hosts.equiv2
-rw-r--r--etc/hosts.lpd1
-rw-r--r--etc/inetd.conf41
-rw-r--r--etc/master.passwd10
-rw-r--r--etc/monthly27
-rw-r--r--etc/motd4
-rw-r--r--etc/mtree/BSD.local.dist55
-rw-r--r--etc/mtree/BSD.root.dist47
-rw-r--r--etc/mtree/BSD.usr.dist157
-rw-r--r--etc/mtree/BSD.var.dist63
-rw-r--r--etc/myname1
-rw-r--r--etc/namedb/localhost.rev10
-rw-r--r--etc/namedb/named.boot21
-rw-r--r--etc/namedb/root.cache22
-rw-r--r--etc/netstart29
-rw-r--r--etc/networks16
-rw-r--r--etc/phones11
-rw-r--r--etc/printcap4
-rw-r--r--etc/protocols15
-rw-r--r--etc/rc170
-rw-r--r--etc/rc.local23
-rw-r--r--etc/remote50
-rw-r--r--etc/root/dot.cshrc25
-rw-r--r--etc/root/dot.klogin2
-rw-r--r--etc/root/dot.login4
-rw-r--r--etc/root/dot.profile7
-rw-r--r--etc/rpc34
-rw-r--r--etc/security52
-rw-r--r--etc/services82
-rw-r--r--etc/shells6
-rw-r--r--etc/syslog.conf8
-rw-r--r--etc/ttys42
-rw-r--r--etc/weekly59
57 files changed, 5402 insertions, 0 deletions
diff --git a/etc/MAKEDEV.local b/etc/MAKEDEV.local
new file mode 100644
index 000000000000..3e06d0a73df9
--- /dev/null
+++ b/etc/MAKEDEV.local
@@ -0,0 +1,49 @@
+#!/bin/sh -
+#
+# Copyright (c) 1991 The Regents of the University of California.
+# All rights reserved.
+#
+# 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 University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University 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 REGENTS 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.
+#
+# @(#)MAKEDEV.local 5.1 (Berkeley) 3/22/91
+#
+
+# Local device MAKEDEV script.
+
+PATH=/sbin:/bin:/usr/bin
+umask 77
+for i
+do
+case $i in
+
+*)
+ echo 'MAKEDEV.local: no such device.'
+ ;;
+esac
+done
diff --git a/etc/Makefile b/etc/Makefile
new file mode 100644
index 000000000000..444ef5eb411e
--- /dev/null
+++ b/etc/Makefile
@@ -0,0 +1,471 @@
+# @(#)Makefile 5.11 (Berkeley) 5/21/91
+
+NOOBJ= noobj
+
+# disktab may be wrong -- hcx9 is a tahoe, but gets its own.
+# -rw-r--r--
+BINOWN= root
+BINGRP= wheel
+BIN1= aliases csh.cshrc csh.login csh.logout dm.conf \
+ ftpusers gettytab group hosts host.conf hosts.equiv hosts.lpd \
+ inetd.conf motd myname netstart networks phones \
+ printcap protocols rc rc.local remote security services shells \
+ syslog.conf ttys etc.${MACHINE}/disktab rpc
+
+# -rw-rw-rw-
+BIN2= motd
+
+# -rwxr-xr-x root.wheel, for the new f***ing cron root.wheel
+BIN3= daily weekly monthly
+
+MTREE= BSD.local.dist BSD.root.dist BSD.usr.dist BSD.var.dist
+NAMEDB= localhost.rev named.boot root.cache
+PCS= pcs750.bin
+WCS1= wcs fppwcs poc poc1 poc2 fppoc
+WCS2= fpevent fppwcs fppwcs_dual hdcwcs load_diags start_fpp wcs wcs_dual
+
+# Special top level files for FreeBSD
+COPYRIGHT= COPYRIGHT
+FREEBSD= CONTRIB.386BSD CONTRIB.FreeBSD RELNOTES.FreeBSD ${COPYRIGHT}
+#
+# Floppy drive name and files for building FreeBSD Floppies
+FLOPPY?= fd0
+MOUNT?= /mnt
+FLOPPY_TYPE?= floppy5
+#
+MDEC= usr/mdec/bootfd usr/mdec/fdboot
+MDEC+= usr/mdec/bootsd usr/mdec/sdboot
+MDEC+= usr/mdec/bootwd usr/mdec/wdboot
+#
+KC_DIRS= dev mnt
+KC_FILES= ${COPYRIGHT}
+KC_FILES+= bin/[ bin/cp bin/echo bin/sh bin/test
+KC_FILES+= sbin/fsck sbin/halt sbin/init sbin/mount sbin/umount
+#
+FILESYSTEM_DIRS= bin dev etc mnt sbin usr usr/bin usr/mdec usr/sbin
+FILESYSTEM_TREES= dev
+FILESYSTEM_FILES= ${COPYRIGHT}
+FILESYSTEM_FILES+= bin/[ bin/expr bin/ls bin/mkdir bin/rm
+FILESYSTEM_FILES+= bin/sh bin/sync bin/test
+FILESYSTEM_FILES+= dev/MAKEDEV
+FILESYSTEM_FILES+= etc/group
+FILESYSTEM_FILES+= etc/master.passwd etc/passwd etc/pwd.db
+FILESYSTEM_FILES+= sbin/disklabel sbin/halt sbin/init
+FILESYSTEM_FILES+= sbin/mount sbin/mount_pcfs
+FILESYSTEM_FILES+= sbin/newfs
+FILESYSTEM_FILES+= sbin/umount
+FILESYSTEM_FILES+= sbin/fdisk
+FILESYSTEM_FILES+= usr/bin/cpio
+FILESYSTEM_FILES+= ${MDEC}
+FILESYSTEM_FILES+= usr/sbin/bad144
+
+CPIO_FILES= ${COPYRIGHT}
+CPIO_FILES+= usr/bin/gunzip usr/bin/gzcat usr/bin/gzip usr/bin/zcat
+CPIO_CPIO= bin/chmod bin/cat bin/cp bin/dd bin/df bin/mv bin/pwd bin/stty
+CPIO_CPIO+= etc/protocols etc/remote etc/services etc/spwd.db
+CPIO_CPIO+= sbin/ifconfig sbin/fsck sbin/mknod sbin/mount_isofs
+CPIO_CPIO+= sbin/reboot sbin/route sbin/slattach
+CPIO_CPIO+= tmp
+CPIO_CPIO+= usr/bin/awk usr/bin/chgrp usr/bin/ftp
+CPIO_CPIO+= usr/bin/more usr/bin/tar usr/bin/tip
+CPIO_CPIO+= usr/bin/elvis usr/bin/ex usr/bin/vi usr/bin/view
+CPIO_CPIO+= usr/sbin/update usr/sbin/chown
+CPIO_CPIO_DIRS= var var/tmp var/run var/spool var/spool/lock
+
+CRYPT_LIB= lib/libcrypt
+CRYPT_SRCS= bin/ed bin/rcp
+CRYPT_SRCS+= libexec/ftpd libexec/makekey libexec/rexecd libexec/rlogind
+CRYPT_SRCS+= libexec/rshd libexec/telnetd libexec/uucpd
+CRYPT_SRCS+= usr.bin/bdes usr.bin/lock usr.bin/login usr.bin/passwd
+CRYPT_SRCS+= usr.bin/rlogin usr.bin/rsh usr.bin/su usr.bin/telnet
+CRYPT_DIRS= bin usr usr/bin usr/lib usr/libexec
+
+all clean cleandir depend etc install lint:
+
+crypt:
+ rm -f ${LIBCRYPT};
+ (cd ${.CURDIR}/../${CRYPT_LIB}; \
+ ${MAKE} cleandir obj depend all install)
+ for i in ${CRYPT_SRCS}; do \
+ cd ${.CURDIR}/../$$i; \
+ ${MAKE} cleandir obj depend all; \
+ done
+
+non-crypt:
+ rm -f ${LIBCRYPT}
+ for i in ${CRYPT_SRCS}; do \
+ cd ${.CURDIR}/../$$i; \
+ ${MAKE} cleandir obj depend all; \
+ done
+
+distribution: distrib-dirs
+ install -c -o ${BINOWN} -g ${BINGRP} -m 644 ${BIN1} ${DESTDIR}/etc
+ install -c -o ${BINOWN} -g ${BINGRP} -m 666 ${BIN2} ${DESTDIR}/etc
+ install -c -o root -g wheel -m 755 ${BIN3} ${DESTDIR}/etc
+ install -c -o root -g wheel -m 600 crontab ${DESTDIR}/var/cron/tabs/root
+ install -c -o root -g wheel -m 600 /dev/null ${DESTDIR}/var/cron/log
+ install -c -o root -g wheel -m 600 master.passwd ${DESTDIR}/etc
+ pwd_mkdb -p -d ${DESTDIR}/etc ${DESTDIR}/etc/master.passwd
+ install -c -o ${BINOWN} -g ${BINGRP} -m 555 \
+ MAKEDEV.local etc.${MACHINE}/MAKEDEV ${DESTDIR}/dev
+.if defined(CDROMDIST)
+ (cd ${DESTDIR}/dev; sh MAKEDEV all)
+.endif
+ (cd root; \
+ install -c -o root -g wheel -m 644 dot.cshrc \
+ ${DESTDIR}/root/.cshrc; \
+ install -c -o root -g wheel -m 644 dot.klogin \
+ ${DESTDIR}/root/.klogin; \
+ install -c -o root -g wheel -m 644 dot.login \
+ ${DESTDIR}/root/.login; \
+ install -c -o root -g wheel -m 644 dot.profile \
+ ${DESTDIR}/root/.profile; \
+ rm -f ${DESTDIR}/.cshrc ${DESTDIR}/.profile; \
+ ln ${DESTDIR}/root/.cshrc ${DESTDIR}/.cshrc; \
+ ln ${DESTDIR}/root/.profile ${DESTDIR}/.profile)
+ cd mtree; install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${MTREE} \
+ ${DESTDIR}/etc/mtree
+ cd namedb; install -c -o ${BINOWN} -g ${BINGRP} -m 644 ${NAMEDB} \
+ ${DESTDIR}/etc/namedb
+ install -c -o ${BINOWN} -g operator -m 664 /dev/null \
+ ${DESTDIR}/etc/dumpdates
+ install -c -o nobody -g ${BINGRP} -m 664 /dev/null \
+ ${DESTDIR}/var/db/locate.database
+ install -c -o ${BINOWN} -g ${BINGRP} -m 664 /dev/null \
+ ${DESTDIR}/var/log/lpd-errs
+ install -c -o ${BINOWN} -g ${BINGRP} -m 664 /dev/null \
+ ${DESTDIR}/var/log/maillog
+ install -c -o ${BINOWN} -g ${BINGRP} -m 664 /dev/null \
+ ${DESTDIR}/var/log/lastlog
+ install -c -o ${BINOWN} -g ${BINGRP} -m 664 /dev/null \
+ ${DESTDIR}/var/log/messages
+ install -c -o ${BINOWN} -g ${BINGRP} -m 664 /dev/null \
+ ${DESTDIR}/var/log/wtmp
+ install -c -o ${BINOWN} -g ${BINGRP} -m 664 /dev/null \
+ ${DESTDIR}/var/run/utmp
+ (cd etc.${MACHINE}; install -c -o ${BINOWN} -g ${BINGRP} -m 444 \
+ fstab.* ${DESTDIR}/etc)
+.if defined(NOCRYPT)
+ ${MAKE} non-crypt
+ (cd ..; NOCRYPT=nocrypt; export NOCRYPT; ${MAKE} install)
+.else
+ ${MAKE} crypt
+ (cd ..; ${MAKE} install)
+.endif
+ (cd ../usr.sbin/sendmail/src; \
+ ${MAKE} install; \
+ cd ../cf/cf; \
+ ${MAKE} tcpproto.cf; \
+ install -o root -g wheel -m 644 tcpproto.cf \
+ ${DESTDIR}/etc/sendmail.cf)
+ (cd ../; \
+ install -c -o root -g wheel -m 444 ${FREEBSD} ${DESTDIR}/)
+ (cd ..; ${MAKE} mdec; )
+ (cd ../share/man; ${MAKE} makedb; )
+.if ${MACHINE} == "tahoe"
+ (cd etc.tahoe; install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${WCS1} \
+ ${DESTDIR}/)
+.endif
+.if ${MACHINE} == "vax"
+ (cd etc.vax; install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${PCS} \
+ ${DESTDIR}/)
+.endif
+
+hcx9-distribution:
+ (cd etc.tahoe; install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${WCS2} \
+ ${DESTDIR}/)
+
+kcopy-kernels: ../sys/i386/conf/GENERICAH ../sys/i386/conf/GENERICBT
+ (cd ../sys/compile; rm -rf GENERICAH GENERICBT)
+ (cd ../sys/i386/conf; config GENERICAH; config GENERICBT)
+ (cd ../sys/compile/GENERICAH; ${MAKE} depend; ${MAKE} all; \
+ install -c -o root -g wheel -m 755 386bsd \
+ ${DESTDIR}/386bsd.GENERICAH)
+ (cd ../sys/compile/GENERICBT; ${MAKE} depend; ${MAKE} all; \
+ install -c -o root -g wheel -m 755 386bsd \
+ ${DESTDIR}/386bsd.GENERICBT)
+
+kcopy-floppy:
+ disklabel -w -r ${FLOPPY} ${FLOPPY_TYPE} \
+ /usr/mdec/fdboot /usr/mdec/bootfd
+ newfs -b 4096 -c 80 -f 512 -i 16384 -m 0 -o space \
+ r${FLOPPY}a ${FLOPPY_TYPE}
+ mount /dev/${FLOPPY}a ${MOUNT}
+ chown root.wheel ${MOUNT}/.
+ chmod 755 ${MOUNT}/.
+ (cd ${DESTDIR}/; \
+ ls -d ${KC_DIRS} | cpio -pdamuv ${MOUNT})
+ (cd ${MOUNT}/dev; \
+ sh ${DESTDIR}/dev/MAKEDEV std; \
+ rm -rf fd; \
+ sh ${DESTDIR}/dev/MAKEDEV fd0 wd0 sd0 sd1)
+ (cd ${DESTDIR}/; \
+ ls ${KC_FILES} | cpio -pdamuv ${MOUNT})
+ install -c -o root -g wheel -m 755 etc.i386/kc.profile \
+ ${MOUNT}/.profile
+
+kcopy-ah-floppy:
+ ${MAKE} kcopy-floppy
+ (cd ../sys/compile/GENERICAH; \
+ install -c -o root -g wheel -m 755 386bsd ${MOUNT}/)
+ df -ik ${MOUNT}
+ umount /dev/${FLOPPY}a
+ fsck /dev/r${FLOPPY}a
+ dd if=/dev/r${FLOPPY}a of=${RELEASEDIR}/floppies/kcopy-ah-floppy \
+ bs=15b count=160
+ gzip --no-name -9 -c ${RELEASEDIR}/floppies/kcopy-ah-floppy \
+ >${RELEASEDIR}/floppies/kcopy-ah-floppy.gz
+
+kcopy-bt-floppy:
+ ${MAKE} kcopy-floppy
+ (cd ../sys/compile/GENERICBT; \
+ install -c -o root -g wheel -m 755 386bsd ${MOUNT}/)
+ df -ik ${MOUNT}
+ umount /dev/${FLOPPY}a
+ fsck /dev/r${FLOPPY}a
+ dd if=/dev/r${FLOPPY}a of=${RELEASEDIR}/floppies/kcopy-bt-floppy \
+ bs=15b count=160
+ gzip --no-name -9 -c ${RELEASEDIR}/floppies/kcopy-bt-floppy \
+ >${RELEASEDIR}/floppies/kcopy-bt-floppy.gz
+
+filesystem-floppy:
+ disklabel -w -r ${FLOPPY} ${FLOPPY_TYPE} \
+ /usr/mdec/fdboot /usr/mdec/bootfd
+ newfs -b 4096 -c 80 -f 512 -i 10240 -m 0 -o space \
+ r${FLOPPY}a ${FLOPPY_TYPE}
+ mount /dev/${FLOPPY}a ${MOUNT}
+ chown root.wheel ${MOUNT}/.
+ chmod 755 ${MOUNT}/.
+ (cd ${DESTDIR}/; \
+ ls -d ${FILESYSTEM_DIRS} | cpio -pdamuv ${MOUNT})
+ (cd ${MOUNT}/dev; \
+ sh ${DESTDIR}/dev/MAKEDEV std; \
+ rm -rf fd; \
+ sh ${DESTDIR}/dev/MAKEDEV fd0 fd1 wd0 sd0 sd1; \
+ rm -f rfd1[b-z] fd1[b-z])
+ (cd ${DESTDIR}/; \
+ ls ${FILESYSTEM_FILES} | cpio -pdamuv ${MOUNT})
+ install -c -o root -g wheel -m 755 etc.i386/inst1.profile \
+ ${MOUNT}/.profile
+ install -c -o root -g wheel -m 755 etc.i386/inst1.install \
+ ${MOUNT}/install
+ (cd ${MOUNT}/; \
+ ls ${FILESYSTEM_FILES} >/tmp/filelist; \
+ ls -d ${FILESYSTEM_DIRS} >>/tmp/filelist; \
+ find ${FILESYSTEM_TREES} >>/tmp/filelist; \
+ sort -u /tmp/filelist >filelist; \
+ rm /tmp/filelist)
+ df -ik ${MOUNT}
+ umount /dev/${FLOPPY}a
+ fsck /dev/r${FLOPPY}a
+ dd if=/dev/r${FLOPPY}a of=${RELEASEDIR}/floppies/filesystem-floppy \
+ bs=15b count=160
+ gzip --no-name -9 -c ${RELEASEDIR}/floppies/filesystem-floppy \
+ >${RELEASEDIR}/floppies/filesystem-floppy.gz
+
+cpio-floppy:
+ disklabel -w -r ${FLOPPY} ${FLOPPY_TYPE} \
+ /usr/mdec/fdboot /usr/mdec/bootfd
+ newfs -b 4096 -c 80 -f 512 -i 65536 -m 0 -o space \
+ r${FLOPPY}a ${FLOPPY_TYPE}
+ mount /dev/${FLOPPY}a ${MOUNT}
+ chown root.wheel ${MOUNT}/.
+ chmod 755 ${MOUNT}/.
+ (cd ${DESTDIR}/; \
+ ls ${CPIO_FILES} | cpio -pdamuv ${MOUNT})
+ (cd ${DESTDIR}/; \
+ (find ${CPIO_CPIO}; ls -d ${CPIO_CPIO_DIRS}) | \
+ cpio -oav | gzip -9 >${MOUNT}/inst2.cpio.gz)
+ install -c -o root -g wheel -m 755 etc.i386/inst2.profile \
+ ${MOUNT}/.profile
+ install -c -o root -g wheel -m 755 etc.i386/inst2.install \
+ ${MOUNT}/install
+ df -ik ${MOUNT}
+ umount /dev/${FLOPPY}a
+ fsck /dev/r${FLOPPY}a
+ dd if=/dev/r${FLOPPY}a of=${RELEASEDIR}/floppies/cpio-floppy \
+ bs=15b count=160
+ gzip --no-name -9 -c ${RELEASEDIR}/floppies/cpio-floppy \
+ >${RELEASEDIR}/floppies/cpio-floppy.gz
+
+bin-tarball:
+ (cd ${DESTDIR}; \
+ tar cf - . | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/bin_tgz.)
+
+srcbase-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/[A-Z]* | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcbase_tgz.)
+
+srcbin-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/bin | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcbin_tgz.)
+
+srccontrib-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/contrib | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srccontrib_tgz.)
+
+srcetc-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/etc | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcetc_tgz.)
+
+srcgames-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/games | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcgames_tgz.)
+
+srcgnu-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/gnu | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcgnu_tgz.)
+
+srcinclude-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/include | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcinclude_tgz.)
+
+srclib-tarball:
+ (cd ${DESTDIR}; \
+ tar --exclude usr/src/${CRYPT_LIB} -cf - usr/src/lib | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srclib_tgz.)
+
+srclibcrypt-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/${CRYPT_LIB} | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srclibcrypt_tgz.)
+
+srclibexec-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/libexec | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srclibexec_tgz.)
+
+srcsbin-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/sbin | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcsbin_tgz.)
+
+srcshare-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/share | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcshare_tgz.)
+
+srcsys-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/sys | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcsys_tgz.)
+
+srcusrbin-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/usr.bin | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcusrbin_tgz.)
+
+srcusrsbin-tarball:
+ (cd ${DESTDIR}; \
+ tar -cf - usr/src/usr.sbin | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/srcusrsbin_tgz.)
+
+src-tarball: srcbase-tarball srcbin-tarball srccontrib-tarball srcetc-tarball \
+ srcgames-tarball srcgnu-tarball srcinclude-tarball srclib-tarball \
+ srclibcrypt-tarball srclibexec-tarball srcsbin-tarball \
+ srcshare-tarball srcsys-tarball srcusrbin-tarball \
+ srcusrsbin-tarball
+
+des-tarball:
+ rm -rf ${RELEASEDIR}/tmpdes
+ mkdir ${RELEASEDIR}/tmpdes
+ for i in ${CRYPT_DIRS}; do \
+ cd ${RELEASEDIR}/tmpdes; \
+ mkdir $$i; \
+ chown ${BINOWN}.${GRPOWN} $$i; \
+ chmod 755 $$i; \
+ done
+ # This is ugly, it force installs a /usr/lib/libcrypt.a so
+ # that the other makes will be built with des.
+ #
+ (cd ${.CURDIR}/../${CRYPT_LIB}; \
+ unset NOCRYPT; \
+ DESTDIR=; export DESTDIR; \
+ ${MAKE} cleandir obj depend all install; \
+ NOMAN=noman; export NOMAN; \
+ DESTDIR=${RELEASEDIR}/tmpdes; export DESTDIR; \
+ ${MAKE} cleandir obj depend all install)
+ for i in ${CRYPT_SRCS}; do \
+ unset NOCRYPT; \
+ DESTDIR=${RELEASEDIR}/tmpdes; export DESTDIR; \
+ NOMAN=noman; export NOMAN; \
+ cd ${.CURDIR}/../$$i; \
+ ${MAKE} cleandir obj depend all install; \
+ done
+ (cd ${RELEASEDIR}/tmpdes; \
+ tar cf - . | \
+ gzip --no-name -9 -c | \
+ split -b 240640 - \
+ ${RELEASEDIR}/tarballs/des_tgz.)
+ rm -rf ${RELEASEDIR}/tmpdes
+
+distrib-dirs:
+ mtree -u -f mtree/BSD.root.dist -p ${DESTDIR}/
+ mtree -u -f mtree/BSD.var.dist -p ${DESTDIR}/var
+ mtree -u -f mtree/BSD.usr.dist -p ${DESTDIR}/usr
+.if defined(CDROMDIST)
+ mtree -u -f mtree/BSD.local.dist -p ${DESTDIR}/usr/local
+.endif
+ cd ${DESTDIR}/; rm -f ${DESTDIR}/sys; ln -s usr/src/sys sys
+
+floppies: kcopy-ah-floppy kcopy-bt-floppy filesystem-floppy \
+ cpio-floppy
+
+release: release-dirs distribution kcopy-kernels floppies \
+ bin-tarball des-tarball
+
+release-dirs:
+ rm -rf ${RELEASEDIR}/filesystem
+ mkdir ${RELEASEDIR}/filesystem
+ chown root.wheel ${RELEASEDIR}/filesystem
+ chmod 755 ${RELEASEDIR}/filesystem
+ rm -rf ${RELEASEDIR}/tarballs
+ mkdir ${RELEASEDIR}/tarballs
+ chown root.wheel ${RELEASEDIR}/tarballs
+ chmod 755 ${RELEASEDIR}/tarballs
+ rm -rf ${RELEASEDIR}/floppies
+ mkdir ${RELEASEDIR}/floppies
+ chown root.wheel ${RELEASEDIR}/floppies
+ chmod 755 ${RELEASEDIR}/floppies
+
+.include <bsd.prog.mk>
diff --git a/etc/aliases b/etc/aliases
new file mode 100644
index 000000000000..0b5ed72c7e30
--- /dev/null
+++ b/etc/aliases
@@ -0,0 +1,30 @@
+#
+# @(#)aliases 5.3 (Berkeley) 5/24/90
+#
+# Aliases in this file will NOT be expanded in the header from
+# Mail, but WILL be visible over networks or from /bin/mail.
+#
+# >>>>>>>>>> The program "newaliases" must be run after
+# >> NOTE >> this file is updated for any changes to
+# >>>>>>>>>> show through to sendmail.
+#
+
+# Basic system aliases -- these MUST be present
+MAILER-DAEMON: postmaster
+postmaster: root
+
+# General redirections for pseudo accounts
+bin: root
+daemon: root
+games: root
+ingres: root
+nobody: root
+system: root
+toor: root
+uucp: root
+
+# Well-known aliases -- these should be filled in!
+# root:
+# manager:
+# dumper:
+# operator:
diff --git a/etc/crontab b/etc/crontab
new file mode 100644
index 000000000000..bec112a825d8
--- /dev/null
+++ b/etc/crontab
@@ -0,0 +1,20 @@
+# /var/cron/tabs/root - root's crontab for FreeBSD
+#
+# $Id: crontab,v 1.2 1993/07/19 19:08:04 rgrimes Exp $
+# From: Id: crontab,v 1.6 1993/05/31 02:03:57 cgd Exp
+#
+SHELL=/bin/sh
+PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
+HOME=/var/log
+#
+#minute hour mday month wday command
+#
+#0/15 * * * * /usr/libexec/atrun
+#
+# rotate log files every hour, if necessary
+#0 * * * * /usr/bin/newsyslog
+#
+# do daily/weekly/monthly maintenance
+0 2 * * * /etc/daily
+30 3 * * 6 /etc/weekly
+30 5 1 * * /etc/monthly
diff --git a/etc/csh.cshrc b/etc/csh.cshrc
new file mode 100644
index 000000000000..4a3bf3ff3e9c
--- /dev/null
+++ b/etc/csh.cshrc
@@ -0,0 +1 @@
+# System-wide .cshrc file for csh(1).
diff --git a/etc/csh.login b/etc/csh.login
new file mode 100644
index 000000000000..493a1bbfe233
--- /dev/null
+++ b/etc/csh.login
@@ -0,0 +1,4 @@
+# System-wide .login file for csh(1).
+# Uncomment this to give you the default 4.2 behavior, where disk
+# information is shown in K-Blocks
+# setenv BLOCKSIZE K
diff --git a/etc/csh.logout b/etc/csh.logout
new file mode 100644
index 000000000000..f8601c07d9c0
--- /dev/null
+++ b/etc/csh.logout
@@ -0,0 +1 @@
+# System-wide .logout file for csh(1).
diff --git a/etc/daily b/etc/daily
new file mode 100644
index 000000000000..bddf22f42a86
--- /dev/null
+++ b/etc/daily
@@ -0,0 +1,148 @@
+#!/bin/sh -
+#
+# @(#)daily 5.12 (Berkeley) 5/24/91
+#
+PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local
+host=`hostname -s`
+echo "Subject: $host daily run output"
+bak=/var/backups
+
+echo ""
+echo "Removing scratch and junk files:"
+if [ -d /tmp ]; then
+ cd /tmp && {
+ find . -type f -atime +3 -exec rm -f -- {} \;
+ find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
+ >/dev/null 2>&1; }
+fi
+
+if [ -d /var/tmp ]; then
+ cd /var/tmp && {
+ find . ! -name . -atime +7 -exec rm -f -- {} \;
+ find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
+ >/dev/null 2>&1; }
+fi
+
+if [ -d /scratch ]; then
+ cd /scratch && {
+ find . ! -name . -atime +1 -exec rm -f -- {} \;
+ find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
+ >/dev/null 2>&1; }
+fi
+
+if [ -d /var/preserve ]; then
+ cd /var/preserve && {
+ find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
+fi
+
+if [ -d /var/rwho ] ; then
+ cd /var/rwho && {
+ find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
+fi
+
+cd /tmp
+find / ! -fstype local -a -prune -o \
+ \( -name '[#,]*' -o -name '.#*' -o -name a.out -o -name core \
+ -o -name '*.CKP' -o -name '.emacs_[0-9]*' \) \
+ -a -atime +3 -exec rm -f -- {} \;
+msgs -c
+if [ -f /etc/news.expire ]; then
+ /etc/news.expire
+fi
+
+#echo ""
+#echo "Purging accounting records:"
+#mv /var/account/acct.2 /var/account/acct.3
+#mv /var/account/acct.1 /var/account/acct.2
+#mv /var/account/acct.0 /var/account/acct.1
+#cp /var/account/acct /var/account/acct.0
+#sa -s > /dev/null
+
+echo ""
+echo "Backup passwd and group files:"
+if cmp -s $bak/master.passwd.bak /etc/master.passwd; then :; else
+ echo "$host passwd diffs:"
+ diff $bak/master.passwd.bak /etc/master.passwd
+ mv $bak/master.passwd.bak $bak/master.passwd.bak2
+ cp -p /etc/master.passwd $bak/master.passwd.bak
+fi
+if cmp -s $bak/group.bak /etc/group; then :; else
+ mv $bak/group.bak $bak/group.bak2
+ cp -p /etc/group $bak/group.bak
+fi
+if cmp -s $bak/aliases.bak /etc/aliases; then :; else
+ mv $bak/aliases.bak $bak/aliases.bak2
+ cp -p /etc/aliases $bak/aliases.bak
+fi
+if [ -f /etc/Distfile ]; then
+ if cmp -s $bak/Distfile.bak /etc/Distfile; then :; else
+ mv $bak/Distfile.bak $bak/Distfile.bak2
+ cp /etc/Distfile $bak/Distfile.bak
+ fi
+fi
+
+echo ""
+echo "Running calendar:"
+calendar -a
+
+echo ""
+echo "Rotating mail log:"
+cd /var/log
+rm -f maillog.7
+if [ -f maillog.6 ]; then mv -f maillog.6 maillog.7; fi
+if [ -f maillog.5 ]; then mv -f maillog.5 maillog.6; fi
+if [ -f maillog.4 ]; then mv -f maillog.4 maillog.5; fi
+if [ -f maillog.3 ]; then mv -f maillog.3 maillog.4; fi
+if [ -f maillog.2 ]; then mv -f maillog.2 maillog.3; fi
+if [ -f maillog.1 ]; then mv -f maillog.1 maillog.2; fi
+if [ -f maillog.0 ]; then mv -f maillog.0 maillog.1; fi
+mv -f maillog maillog.0
+cp /dev/null maillog
+chmod 644 maillog
+kill -1 `cat /var/run/syslog.pid`
+cd /
+
+if [ -d /var/spool/uucp -a -f /etc/uuclean.daily ]; then
+ echo ""
+ echo "Cleaning up UUCP:"
+ echo /etc/uuclean.daily | su daemon
+fi
+
+echo ""
+echo ""
+echo "Checking subsystem status:"
+echo ""
+echo "disks:"
+df -k
+echo ""
+dump W
+echo ""
+
+
+echo ""
+echo "mail:"
+mailq
+
+if [ -d /var/spool/uucp ]; then
+ echo ""
+ echo "uucp:"
+ uustat -a
+fi
+
+echo ""
+echo "network:"
+netstat -i
+echo ""
+ruptime
+
+echo ""
+echo "Checking filesystems:"
+fsck -n | grep -v '^\*\* Phase'
+
+echo ""
+if [ -f /etc/Distfile ]; then
+ echo "Running rdist:"
+ rdist -f /etc/Distfile
+fi
+
+sh /etc/security 2>&1 | mail -s "daily insecurity output" root
diff --git a/etc/dm.conf b/etc/dm.conf
new file mode 100644
index 000000000000..48c24de51f87
--- /dev/null
+++ b/etc/dm.conf
@@ -0,0 +1,19 @@
+#
+# Game Control File
+# @(#)dm.conf 5.5 (Berkeley) 4/12/89
+#
+
+# TTYNAME
+# badtty /dev/tty19 # news
+# badtty /dev/tty20 # news/mail
+
+# DAY OF WEEK START STOP
+# time Monday 7 16 # 7am to 4pm
+# time Tuesday 7 16
+# time Wednesday 7 16
+# time Thursday 7 16
+# time Friday 7 16
+
+# GAME MAX LOAD MAX USERS PRIORITY
+# default must be the last entry for the ``game'' keyword
+game default 5 * *
diff --git a/etc/etc.i386/MAKEDEV b/etc/etc.i386/MAKEDEV
new file mode 100644
index 000000000000..d6f16f884956
--- /dev/null
+++ b/etc/etc.i386/MAKEDEV
@@ -0,0 +1,435 @@
+#!/bin/sh -
+#
+# Copyright (c) 1990 The Regents of the University of California.
+# All rights reserved.
+#
+# Written and contributed by W. Jolitz 12/90
+#
+# Redistribution and use in source and binary forms are permitted provided
+# that: (1) source distributions retain this entire copyright notice and
+# comment, and (2) distributions including binaries display the following
+# acknowledgement: ``This product includes software developed by the
+# University of California, Berkeley and its contributors'' in the
+# documentation or other materials provided with the distribution and in
+# all advertising materials mentioning features or use of this software.
+# Neither the name of the University 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+#
+# @(#)MAKEDEV 5.2 (Berkeley) 6/22/90
+#
+# Device "make" file. Valid arguments:
+# all makes all known devices, standard number of units (or close)
+# std standard devices
+# local configuration specific devices
+#
+# Tapes:
+# wt* QIC-interfaced (e.g. not SCSI) 3M cartridge tape
+# st* "NEW type scsi tapes" (old driver uses the
+# block devices of the disks to get access)
+#
+# Disks:
+# wd* "winchester" disk drives (ST506,IDE,ESDI,RLL,...)
+# fd* "floppy" disk drives (3 1/2", 5 1/4")
+# sd* "scsi disks"
+# cd* "cdrom disks"
+#
+# Console ports:
+# pc* devices for stock pccons
+# vty* virtual console devices for syscons/pcvt/codrv
+#
+# Pointing devices:
+# mse* Logitech and ATI Inport bus mouse
+# psm* PS/2 mouse
+#
+# Terminal ports:
+# com* standard PC COM ports (really makes tty* entries for com)
+# sio* fast interrupt PC COM ports (really makes tty* entries for sio)
+# tty* alias for sio ports, this is what the system really wants
+#
+# Pseudo terminals:
+# pty* set of 16 master and slave pseudo terminals
+# vty* virtual terminals using syscons/pcvt/codrv console
+#
+# Printers:
+# lpt* stock lp
+# lpa* interruptless lp
+#
+# Call units:
+#
+# Special purpose devices:
+# bpf* packet filter
+# dcf* dcf clock
+# speaker pc speaker
+# tw* xten power controller
+# snd* various sound cards
+#
+# $Id: MAKEDEV,v 1.13 1993/10/23 22:24:35 jkh Exp $
+#
+
+PATH=/sbin:/bin/:/usr/bin:/usr/sbin:
+umask 77
+for i
+do
+case $i in
+
+all)
+ sh MAKEDEV std # standard
+ sh MAKEDEV wd0 wd1 fd0 fd1 wt0 sd0 sd1 st0 cd0 # bdev
+ sh MAKEDEV pty0 tty0 tty1 tty2 tty3 pc0 lpt0 lpt1 lpt2 # cdev
+ sh MAKEDEV ch0 tw0 bpf0 dcf0 lpa0 lpa1 lpa2 # cdev
+ sh MAKEDEV speaker mse0 sio0 sio1 sio2 sio3 # cdev
+ # NOTE: co0 and vty04 are not done by a "sh MAKEDEV all"
+ # these are for codrv and interfere with other devices! - rgrimes
+ ;;
+std)
+ rm -f console drum mem kmem null tty klog stdin stdout stderr
+ mknod console c 0 0; chmod 600 console; chown root.wheel console
+ mknod drum c 4 0; chmod 640 drum; chown root.kmem drum
+ mknod kmem c 2 1; chmod 640 kmem; chown root.kmem kmem
+ mknod mem c 2 0; chmod 640 mem; chown root.kmem mem
+ mknod null c 2 2; chmod 666 null; chown root.wheel null
+ mknod zero c 2 12; chmod 666 zero; chown root.wheel zero
+ mknod io c 2 14; chmod 640 io; chown root.kmem io
+ mknod tty c 1 0; chmod 666 tty; chown root.wheel tty
+ mknod klog c 7 0; chmod 600 klog; chown root.wheel klog
+ mknod stdin c 22 0; chmod 666 stdin; chown root.wheel stdin
+ mknod stdout c 22 1; chmod 666 stdout; chown root.wheel stdout
+ mknod stderr c 22 2; chmod 666 stderr; chown root.wheel stderr
+ rm -f fd/*
+ mkdir fd > /dev/null 2>&1
+ (cd fd && eval `echo "" | awk ' BEGIN { \
+ for (i = 0; i < 64; i++) \
+ printf("mknod %d c 22 %d;", i, i)}'`)
+ chown -R bin.bin fd
+ chmod 555 fd
+ chmod 666 fd/*
+ ;;
+
+
+# Create device files for new Archive/Wangtek QIC-02 tape driver (vak)
+wt*)
+ umask 2 ; u=`expr $i : '..\(.*\)'`
+ if [ x$u = x ]; then u=0; fi
+ rm -f rwt$u nrwt$u rwt${u}a nrwt${u}a rwt${u}b nrwt${u}b
+ mknod rwt${u} c 10 `expr 0 + $u` # 150 megabytes
+ mknod nrwt${u} c 10 `expr 4 + $u`
+ mknod rwt${u}a c 10 `expr 8 + $u` # 120 megabytes
+ mknod nrwt${u}a c 10 `expr 12 + $u`
+ mknod rwt${u}b c 10 `expr 16 + $u` # 60 megabytes
+ mknod nrwt${u}b c 10 `expr 20 + $u`
+ chown root.operator rwt$u nrwt$u rwt${u}a nrwt${u}a rwt${u}b nrwt${u}b
+ umask 77;
+ ;;
+
+fd*|sd*|wd*)
+ umask 2 ; unit=`expr $i : '..\(.*\)'`
+ case $i in
+ fd*) name=fd; blk=2; chr=9;;
+ sd*) name=sd; blk=4; chr=13;;
+ wd*) name=wd; blk=0; chr=3;;
+ esac
+ rm -f $name$unit? r$name$unit?
+ case $unit in
+ 0|1|2|3|4|5|6)
+ mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0`
+ mknod ${name}${unit}b b $blk `expr $unit '*' 8 + 1`
+ mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2`
+ mknod ${name}${unit}d b $blk `expr $unit '*' 8 + 3`
+ mknod ${name}${unit}e b $blk `expr $unit '*' 8 + 4`
+ mknod ${name}${unit}f b $blk `expr $unit '*' 8 + 5`
+ mknod ${name}${unit}g b $blk `expr $unit '*' 8 + 6`
+ mknod ${name}${unit}h b $blk `expr $unit '*' 8 + 7`
+ mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0`
+ mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1`
+ mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2`
+ mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3`
+ mknod r${name}${unit}e c $chr `expr $unit '*' 8 + 4`
+ mknod r${name}${unit}f c $chr `expr $unit '*' 8 + 5`
+ mknod r${name}${unit}g c $chr `expr $unit '*' 8 + 6`
+ mknod r${name}${unit}h c $chr `expr $unit '*' 8 + 7`
+ chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h]
+ chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h]
+ ;;
+ *)
+ echo bad unit for disk in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+com*)
+ unit=`expr $i : '...\(.*\)'`
+ rm -f tty0$unit
+ mknod tty0$unit c 8 $unit
+ chown uucp.wheel tty0$unit
+ ;;
+
+pty*)
+ class=`expr $i : 'pty\(.*\)'`
+ case $class in
+ 0) offset=0 name=p;;
+ 1) offset=16 name=q;;
+ 2) offset=32 name=r;;
+ 3) offset=48 name=s;;
+# Note that telnetd, rlogind, and xterm (at least) only look at p-s.
+ 4) offset=64 name=t;;
+ *) echo bad unit for pty in: $i;;
+ esac
+ case $class in
+ 0|1|2|3|4)
+ umask 0
+ eval `echo $offset $name | awk ' { b=$1; n=$2 } END {
+ for (i = 0; i < 16; i++)
+ printf("rm -f tty%s%x; mknod tty%s%x c 5 %d; \
+ rm -f pty%s%x; mknod pty%s%x c 6 %d; ", \
+ n, i, n, i, b+i, n, i, n, i, b+i); }'`
+ umask 77
+ if [ $class = 1 ]; then
+ mv ttyqf ttyv0; mv ptyqf ptyv0
+ fi
+ ;;
+ esac
+ ;;
+
+st*)
+ umask 2 ; unit=`expr $i : '..\(.*\)'`
+ case $i in
+ st*) name=st; chr=14;;
+ esac
+ rm -f r$name$unit nr$name$unit er$name$unit enr$name$unit
+ rm -f hr$name$unit hnr$name$unit her$name$unit henr$name$unit
+ rm -f mr$name$unit mnr$name$unit mer$name$unit menr$name$unit
+ rm -f lr$name$unit lnr$name$unit ler$name$unit lenr$name$unit
+ case $unit in
+ 0|1|2|3|4|5|6)
+ mknod r${name}${unit} c $chr `expr $unit '*' 16 + 0`
+ mknod nr${name}${unit} c $chr `expr $unit '*' 16 + 1`
+ mknod er${name}${unit} c $chr `expr $unit '*' 16 + 2`
+ mknod hr${name}${unit} c $chr `expr $unit '*' 16 + 4`
+ mknod hnr${name}${unit} c $chr `expr $unit '*' 16 + 5`
+ mknod her${name}${unit} c $chr `expr $unit '*' 16 + 6`
+ mknod mr${name}${unit} c $chr `expr $unit '*' 16 + 8`
+ mknod mnr${name}${unit} c $chr `expr $unit '*' 16 + 9`
+ mknod mer${name}${unit} c $chr `expr $unit '*' 16 + 10`
+ mknod lr${name}${unit} c $chr `expr $unit '*' 16 + 12`
+ mknod lnr${name}${unit} c $chr `expr $unit '*' 16 + 13`
+ mknod ler${name}${unit} c $chr `expr $unit '*' 16 + 14`
+ chgrp operator r${name}${unit} nr${name}${unit} \
+ er${name}${unit}
+ chgrp operator hr${name}${unit} hnr${name}${unit} \
+ her${name}${unit}
+ chgrp operator mr${name}${unit} mnr${name}${unit} \
+ mer${name}${unit}
+ chgrp operator lr${name}${unit} lnr${name}${unit} \
+ ler${name}${unit}
+ chmod 640 r${name}${unit} nr${name}${unit} \
+ er${name}${unit}
+ chmod 640 hr${name}${unit} hnr${name}${unit} \
+ her${name}${unit}
+ chmod 640 mr${name}${unit} mnr${name}${unit} \
+ mer${name}${unit}
+ chmod 640 lr${name}${unit} lnr${name}${unit} \
+ ler${name}${unit}
+ ;;
+ *)
+ echo bad unit for tape in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+ch*)
+ umask 2 ; unit=`expr $i : '..\(.*\)'`
+ case $i in
+ ch*) name=ch; chr=17;;
+ esac
+ rm -f $name$unit
+ case $unit in
+ 0|1|2|3|4|5|6)
+ mknod ${name}${unit} c $chr `expr $unit '*' 16 + 0`
+ chgrp operator ${name}${unit}
+ chmod 640 ${name}${unit}
+ ;;
+ *)
+ echo bad unit for media changer in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+cd*)
+ umask 2 ; unit=`expr $i : '..\(.*\)'`
+ case $i in
+ cd*) name=cd; blk=6; chr=15;;
+ esac
+ rm -f $name$unit? r$name$unit?
+ case $unit in
+ 0|1|2|3|4|5|6)
+ mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0`
+ mknod ${name}${unit}d b $blk `expr $unit '*' 8 + 3`
+ mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0`
+ mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3`
+ chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h]
+ chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h]
+ ;;
+ *)
+ echo bad unit for disk in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+lpt*)
+ unit=`expr $i : 'lpt\(.*\)'`
+ rm -f lpt$unit
+ mknod lpt$unit c 16 $unit
+ chown root.wheel lpt$unit
+ ;;
+
+tw*)
+ unit=`expr $i : 'tw\(.*\)'`
+ rm -f tw$unit
+ mknod tw$unit c 19 $unit
+ chown root.wheel tw$unit
+ ;;
+
+# hv 22-apr-93 use this to create the necessary video device for
+# pccons driver
+pc*)
+ chr=12
+ minor=0
+ name=vga
+ rm -f ${name} kbd kbdco vgaco ttyv[0-9][0-9]
+ mknod ${name} c ${chr} ${minor}
+ chown root.wheel $name
+ ;;
+
+# Use this to create virtual consoles for syscons, pcvt or codrv
+# /dev/ttyv0-b
+# use as MAKEDEV vtyNN to create NN entries
+vty*)
+ chr=12
+ units=`expr $i : 'vty\(.*\)'`
+ umask 0
+ eval `echo ${chr} ${units} | awk ' { c=$1; n=$2 } END {
+ for (i = 0; i < n; i++)
+ printf("rm -f ttyv%01x; mknod ttyv%01x c %d %d;", \
+ i, i, c, i); }'`
+ umask 77
+ ;;
+
+bpf*)
+ unit=`expr $i : 'bpf\(.*\)'`
+ rm -f bpf$unit
+ mknod bpf$unit c 23 $unit
+ chown root.wheel bpf$unit
+ ;;
+
+dcf*)
+ unit=`expr $i : 'dcf\(.*\)'`
+ rm -f dcf$unit
+ mknod dcf$unit c 24 $unit
+ chown root.wheel dcf$unit
+ ;;
+
+lpa*)
+ unit=`expr $i : 'lpa\(.*\)'`
+ chr=25
+ rm -f lpa$unit lpa${unit}p
+ mknod lpa${unit} c $chr `expr $unit + 0`
+ mknod lpa${unit}p c $chr `expr $unit + 32`
+ chown root.wheel lpa${unit} lpa${unit}p
+ ;;
+
+speaker)
+ rm -f speaker
+ mknod speaker c 26 0
+ chown root.wheel speaker
+ ;;
+
+sio*|tty*)
+ unit=`expr $i : '...\(.*\)'`
+ rm -f tty0$unit
+ mknod tty0$unit c 28 $unit
+ chown uucp.wheel tty0$unit
+ ;;
+
+mse*)
+ unit=`expr $i : 'mse\(.*\)'`
+ chr=27
+ rm -f mse$unit
+ mknod mse$unit c $chr `expr $unit '*' 2 + 1` # non-blocking for X11
+ chown root.wheel mse$unit
+ ;;
+
+psm*)
+ unit=`expr $i : 'psm\(.*\)'`
+ chr=21
+ rm -f psm$unit
+ mknod psm$unit c $chr `expr $unit '*' 2 + 1` # non-blocking for X11
+ chown root.wheel psm$unit
+ ;;
+
+mouse*)
+ name=`expr $i : 'mouse-\(.*\)'`
+ if [ ! -c $name ]; then
+ $0 $name # make the appropriate device
+ fi
+ rm -f mouse
+ ln -s $name mouse
+ ;;
+
+
+snd*)
+ chr=30
+ rm -f /dev/mixer # Mixer [ Control ]
+ mknod /dev/mixer c $chr 0
+ chmod 666 /dev/mixer
+
+ rm -f /dev/sequencer # Sequencer [ FM Synth and MIDI output ]
+ mknod /dev/sequencer c $chr 1
+ chmod 666 /dev/sequencer
+
+ rm -f /dev/midi # Midi input [ Not implemented ]
+ mknod /dev/midi c $chr 2
+
+ rm -f /dev/dsp # DSP [ Digitized voice ]
+ mknod /dev/dsp c $chr 3
+ chmod 666 /dev/dsp
+
+ rm -f /dev/audio # SPARC audio [ Not fully implemented ]
+ mknod /dev/audio c $chr 4
+ chmod 666 /dev/audio
+
+ rm -f /dev/dsp16 # DSP16 [ Same as /dev/dsp, except 16 bits ]
+ mknod /dev/dsp16 c $chr 5
+ chmod 666 /dev/dsp16
+
+ rm -f /dev/sndstat # Status Device [ Debugging interface ]
+ mknod /dev/sndstat c $chr 6
+ chmod 666 /dev/sndstat
+
+ rm -f /dev/pro_midi # PRO_MIDI [PAS midi input and output]
+ mknod /dev/pro_midi c $chr 15
+ chmod 666 /dev/pro_midi
+
+ rm -f /dev/dsp1 # DSP 1 [ SB emulation of PAS16 or 2nd audio ]
+ mknod /dev/dsp1 c $chr 19
+ chmod 666 /dev/dsp1
+
+ rm -f /dev/audio1 # Sparc Audio 1 [ SB emulation of PAS16 or 2nd audio ]
+ mknod /dev/audio1 c $chr 20
+ chmod 666 /dev/audio1
+ ;;
+
+local)
+ umask 0
+ sh MAKEDEV.local
+ ;;
+
+esac
+done
diff --git a/etc/etc.i386/disktab b/etc/etc.i386/disktab
new file mode 100644
index 000000000000..150941352f22
--- /dev/null
+++ b/etc/etc.i386/disktab
@@ -0,0 +1,119 @@
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, ns*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
+qp120at|Quantum Peripherals 120MB IDE:\
+ :dt=ESDI:ty=winchester:se#512:nt#9:ns#32:nc#813:sf: \
+ :pa#13824:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#13824:ob#13824:tb=swap: \
+ :pc#234144:oc#0: \
+ :ph#206496:oh#27648:th=4.2BSD:bh#4096:fh#512:
+
+pan60|Panasonic Laptop's 60MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#13:ns#17:nc#565:\
+ :pa#13260:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#13260:ob#13260:tb=swap: \
+ :pc#124865:oc#0: \
+ :ph#97682:oh#26520:th=4.2BSD:bh#4096:fh#512:
+
+mk156|toshiba156|Toshiba MK156 156Mb:\
+ :dt=SCSI:ty=winchester:se#512:nt#10:ns#35:nc#825:\
+ :pa#15748:oa#0:ba#4096:fa#512:ta=4.2BSD:\
+ :pb#15748:ob#15748:tb=swap:\
+ :pc#288750:oc#0:\
+ :ph#257250:oh#31500:bh#4096:fh#512:th=4.2BSD:
+
+cp3100|Connor Peripherals 100MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#12144:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#12144:ob#12144:tb=swap: \
+ :pc#202224:oc#0: \
+ :ph#177936:oh#24288:th=4.2BSD:bh#4096:fh#512:
+
+# a == root
+# b == swap
+# c == d == whole disk
+# e == /var
+# f == scratch
+# h == /usr
+
+cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#24288:ob#15840:tb=swap: \
+ :pc#202224:oc#0: \
+ :pd#202224:od#0: \
+ :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \
+ :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \
+ :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512:
+
+floppy|floppy3|3in|3.5in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pb#2880:ob#0:\
+ :pc#2880:oc#0:
+
+floppy5|5in|5.25in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#15:nc#80:\
+ :pa#2400:oa#0:ba#4096:fa#512:
+ :pb#2400:ob#0:bb#4096:fb#512:
+ :pc#2400:oc#0:bc#4096:fc#512:
+
+maxtor4380|Maxtor XT4380E ESDI :\
+ :dt=ESDI:ty=winchester:se#512:nt#15:ns#36:nc#1222:sf: \
+ :pa#21600:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#21600:ob#21600:tb=swap: \
+ :pc#659880:oc#0: \
+ :pd#216000:od#53200:td=4.2BSD:bd#4096:fd#512: \
+ :ph#398520:oh#269200:th=4.2BSD:bh#4096:fh#512:
+
+miniscribe9380|compaq38|Miniscribe 9380 ESDI :\
+ :ty=winchester:dt=ESDI:se#512:nt#15:ns#35:nc#1223:rm#3600:sf: \
+ :pa#21000:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#42000:ob#21000:tb=swap: \
+ :pc#642075:oc#0: \
+ :pd#21000:od#63000:bd#8192:fd#1024:td=4.2BSD: \
+ :ph#556500:oh#84000:bh#8192:fh#1024:th=4.2BSD:
+
+ida4|compaq88|Compaq IDA (4 drives) :\
+ :ty=winchester:dt=IDA:se#512:nt#16:ns#63:nc#1644:rm#3600:\
+ :pa#20160:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#80640:ob#20160:tb=swap: \
+ :pc#1659168:oc#0: \
+ :pd#201600:od#100800:bd#8192:fd#1024:td=4.2BSD: \
+ :pe#20160:oe#1310400:be#8192:fe#1024:te=4.2BSD: \
+ :ph#1008000:oh#302400:bh#8192:fh#1024:th=4.2BSD: \
+ :pg#302400:og#1330560:bg#4096:fg#512:tg=4.2BSD:
+
+fuji513|Fujitsu M22XXXX: \
+ :ty=winchester:dt=ESDI:se#512:nt#16:ns#63:nc#954:rm#3600:\
+ :pa#20160:oa#82656:ba#4096:fa#512:ta=4.2BSD: \
+ :pb#40320:ob#102816:tb=swap: \
+ :pc#961632:oc#0: \
+ :ph#656208:oh#143136:bh#4096:fh#512:th=4.2BSD:
+
diff --git a/etc/etc.i386/floppy.install_notes b/etc/etc.i386/floppy.install_notes
new file mode 100644
index 000000000000..b76c932d75cd
--- /dev/null
+++ b/etc/etc.i386/floppy.install_notes
@@ -0,0 +1,153 @@
+ FLOPPY INSTALLATION NOTES
+ FreeBSD
+ Release 1.0
+
+Welcome to FreeBSD! This document has been put together in an effort
+to make initial installation of the system from floppy as easy as possible.
+
+1. To install FreeBSD you will need 3 (or 4 if you choose to add the optional
+ DOS floppy) floppies, as well as the bulk of the distribution on some
+ other medium (floppy, tape, CD, etc). If you've retrieved this release
+ from the net, you'll first have to make the floppies yourself using
+ the supplied images.
+
+ Due to the differences in PC configurations, we've found it necessary
+ to provide multiple initial boot images that provide kernels for
+ different types of systems.
+
+ If your disk controller is one of:
+
+ MFM / RLL / IDE / ST506
+ Adaptec 154x series
+ Adaptec 174x series
+ Buslogic 545S
+
+ Then please use the disk image: kcopy-ah-floppy
+ to construct your boot floppy.
+
+ If your disk controller is one of:
+
+ Bustek 742a
+ UltraStore 14F or 34F
+
+ Then please use the disk image: kcopy-bt-floppy
+ to construct your boot floppy.
+
+ Next, make a second floppy from the disk image: filesystem-floppy
+ You'll need this for the second stage of the boot process.
+
+ Finally, make a third floppy from the disk image: cpio-floppy
+ You'll need this for the last stage of the boot process.
+
+ If you want to use any of the optional tools in the tools
+ subdirectory of the ftp distribution site, these should be
+ copied directly to a DOS formatted disk (using, either mcopy
+ or mount -t pcfs). This disk is referred to later as the
+ optional "dos" floppy.
+
+ If installing more than one operating system on a disk, then
+ it is recommended that the dos floppy at least include the
+ os-bs boot manager. If downloading files via a modem and SLIP
+ is not available, then the dos floppy should include kermit.
+ You'll have the option of loading the programs that are on
+ the dos floppy in the last stage of the boot process.
+
+2. Boot the first floppy. When it asks you to insert the file system floppy,
+ insert the second floppy ``filesystem-floppy.'' Follow the instructions
+ that floppy gives you. If partitions already exist on the hard disk,
+ then by default FreeBSD attempts to install itself at the end of these.
+ Before rebooting, note the type of disk it says to copy the kernel
+ to: ``sd0a'' or ``wd0a'' (``sd0a'' is for SCSI systems, ``wd0a'' is
+ for all others.) When the system halts, go on to the next step.
+
+3. Boot the first floppy again, but this time when it asks
+ you to insert the file system floppy, just press the return key.
+ Follow the instructions that the floppy gives you. When you see
+ the ``kc>'' prompt, type ``copy'' (without quotes). At the next prompt,
+ ``copy kernel to>'', type either ``sd0a'' or ``wd0a'' as given in
+ the previous step. When the system halts, go on to the next step.
+
+4. Making sure that there's no floppy in the drive, press return to boot
+ from the hard disk. After it has booted and is asking what drive the
+ cpio floppy is in, insert the third floppy ``cpio-floppy'' into a
+ floppy drive and answer the question about what drive it is in.
+ Note that 0 is the same as DOS drive A:, and 1 is the same as DOS
+ drive B:
+
+5. After the cpio-floppy has been copied to the disk, remove it from the
+ drive. If there are programs on the dos-floppy that you would like
+ installed, then insert this disk in a floppy drive, again specifying
+ the drive to read from.
+
+6. After the cpio (or optional dos) floppy has been copied to the disk,
+ enter `halt' at the command prompt.
+
+7. When the system asks you to press the return key to reboot, first
+ remove the floppy and then press the return key to boot from the hard
+ disk.
+
+8. At this point you will get 4 errors from the fsck on boot, these
+ are normal and are caused by files that were open when the
+ /dev entries were built - just ignore them. The system will
+ correct these errors and then halt, after which you should press
+ the return key again to reboot with a clean system.
+
+9. Congratulations, you've got the mini FreeBSD system on your disk!
+
+10. Follow the instructions about set_tmp_dir and extract that
+ will come on your screen after you've pressed the return key.
+
+11. You will get the following errors while extracting the bin
+ distribution, which you can safely ignore:
+
+ /tmp/tar: Could not create file bin/sh : Text file busy
+ /tmp/tar: Could not create file sbin/init : Text file busy
+ /tmp/tar: Could not link .profile to root/.profile : File exists
+
+12. Run the configure command to set up some of the /etc files by
+ typing ``configure''. You will have to edit /etc/netstart after
+ this if you have a networking interface.
+
+13. Reboot so that the system comes up multiuser by typing ``reboot''.
+
+14. You are now running FreeBSD! Congradulations! You may now continue
+ with installing the source distribution, or stop here for now.
+
+ Should you decided to postpone further installation, you should
+ probably save the ``installing profile'' for possible future use by
+ saving it and linking a default profile into place.
+
+ Do it like this:
+
+ mv /.profile /.profile.install
+ ln /root/.profile /.profile
+
+15. If your disk has several operating systems, you may want to
+ install the Thomas Wolfram's os-bs boot manager for selecting
+ which system to boot. This works well with DOS, OS/2, FreeBSD
+ and other systems. To install it, boot the system with MS-DOS
+ and insert the dos-floppy of the FreeBSD install suite in
+ floppy drive A:. Then enter the DOS commands:
+ > A:
+ > os-bs135
+ > cd os-bs
+ > os-bs
+ A menu should now appear on the screen. Use the cursor keys
+ to highlight the install option and hit ENTER. Simply follow the
+ instructions from there.
+
+ For more information about the ob-bs program, including its
+ capabilities and limitations, see the file `readme.1st' in the
+ os-bs directory.
+
+ If you choose not to install os-bs, then fdisk can be used to
+ change the boot system. This is done by making the primary
+ partition for the boot system active. FreeBSD has an fdisk
+ command that can be used for this purpose as well.
+
+16. In addition to the FreeBSD source and binary distributions, many
+ additional packages, such as X11 and TeX, may be obtained from
+ freebsd.cdrom.com - please have a look around! You may also find
+ this a good time to read the release notes in RELNOTES.FreeBSD.
+
+End of $Id: floppy.install_notes,v 1.12 1993/10/16 12:41:36 jkh Exp $
diff --git a/etc/etc.i386/fstab.wd b/etc/etc.i386/fstab.wd
new file mode 100644
index 000000000000..95483135ee52
--- /dev/null
+++ b/etc/etc.i386/fstab.wd
@@ -0,0 +1,3 @@
+/dev/wd0a / ufs rw 1 1
+#/dev/wd0d /var ufs rw 1 2
+#/dev/wd0h /usr ufs rw 1 3
diff --git a/etc/etc.i386/inst1.install b/etc/etc.i386/inst1.install
new file mode 100755
index 000000000000..cd6626bbb07e
--- /dev/null
+++ b/etc/etc.i386/inst1.install
@@ -0,0 +1,1015 @@
+#!/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=7
+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 -n "Overwrite existing partition? [n] "
+ read resp junk
+ case "$resp" in
+ y*|Y*)
+ opsys_part=${have_opsys_part}
+ set_existing_part
+ return 0
+ ;;
+ *)
+ have_opsys_part=
+ # FALL THROUGH
+ ;;
+ 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 "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 "OK, then. 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/fd0a / || {
+ if mount -u /dev/fd1a / ; 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=""
+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
+ rotdelay="-d 0"
+ ;;
+sc*|SC*)
+ drivename=sd0
+ drivetype=sd
+ type=SCSI
+ rotdelay="-d 0"
+ DEFSECT=32
+ DEFHEAD=64
+ ;;
+*)
+ echo "Unknown type. Assuming ST506 with automatic sectoring..."
+ type=ST506
+ ;;
+esac
+echo
+echo "Disk is of device type $drivetype."
+if [ ! "$partition" ]; then
+ echo
+ echo "Please wait. 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 "Okay. 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" != "$opsys_part" -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 "OK! THIS IS THE LAST CHANCE!!! Data on the hard disk wil 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 "OK! 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 "OK, then. 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 ${drivename} $name /usr/mdec/${drivetype}boot /usr/mdec/boot${drivetype} >/dev/null 2>&1
+echo " done."
+
+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 "Initializing $hname filesystem..."
+ fi
+ mkdir -p /mnt/$hname
+ [ ! "$have_dos_part" ] &&
+ mount -v /dev/${drivename}h /mnt/$hname
+fi
+
+echo
+echo "Please wait. Copying to disk..."
+cd /
+# cat filelist | cpio -pdamu${cpioverbose} /mnt
+OIFS=$IFS
+IFS='
+'
+while read data; do
+ echo $data
+done <filelist | cpio -pdamu${cpioverbose} /mnt
+IFS=$OIFS
+
+cd /mnt
+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 rw 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
+
+# cat << EOF >.profile
+(
+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 \"Insert cpio installation floppy in drive and\""
+echo "echo -n \"enter that drive's number (0 or 1): [0] \""
+echo "read resp junk"
+echo "driveno=\${resp:-0}"
+echo "mount -o ro /dev/fd\${driveno}a /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 \"Remove cpio floppy from drive, insert dos floppy, and\""
+echo " echo -n \"enter that drive's number (0 or 1): [0] \""
+echo " read resp junk"
+echo " driveno=\${resp:-0}"
+echo " mount -t pcfs -o ro /dev/fd\${driveno}a /mnt"
+echo " mkdir -p /usr/distbin"
+echo " cp /mnt/* /usr/distbin/ >/dev/null 2>&1"
+echo " sync"
+echo " umount /mnt >/dev/null 2>&1"
+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.\""
+) >.profile
+
+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 to \`${drivename}a' (without the quotes)."
+echo
+echo "Okay, that's all for now. I'm waiting for you to enter \`halt'..."
diff --git a/etc/etc.i386/inst1.profile b/etc/etc.i386/inst1.profile
new file mode 100644
index 000000000000..300db6dc67c4
--- /dev/null
+++ b/etc/etc.i386/inst1.profile
@@ -0,0 +1,7 @@
+PATH=/sbin:/usr/sbin:/bin:/usr/bin:.:
+export PATH
+HOME=/root
+export HOME
+TERM=pc3
+export TERM
+install
diff --git a/etc/etc.i386/inst2.install b/etc/etc.i386/inst2.install
new file mode 100755
index 000000000000..0ef2d46f6b1f
--- /dev/null
+++ b/etc/etc.i386/inst2.install
@@ -0,0 +1,40 @@
+#!/bin/sh
+# install2.fs disk 'install'
+# Simplified, interactive FreeBSD installation script.
+# D.E. Silvia (dsilvia@net.com)
+#
+# Heavily hacked on for support of FreeBSD
+# by Rodney W. Grimes (rgrimes@cdrom.com) 1993/08/11
+#
+# Installs balance of basic FreeBSD system.
+#
+
+echo -n "Verbose installation? [n] "
+read resp
+case $resp in
+ y*)
+ cpioverbose=v
+ ;;
+ *)
+ cpioverbose=
+ ;;
+esac
+
+echo
+echo "Please wait. Copying to disk..."
+# remove /.profile so that the right things happen when it gets
+# over written
+rm /.profile
+cd /
+mnt/usr/bin/gunzip < mnt/inst2.cpio.gz | cpio -idmu${cpioverbose}
+cd /mnt
+ls .profile install usr/bin/* | cpio -pdmu${cpioverbose} /
+cd /dev
+echo " done."
+echo
+echo "Building /dev files..."
+sh MAKEDEV all
+cd /
+echo " done."
+
+sync
diff --git a/etc/etc.i386/inst2.profile b/etc/etc.i386/inst2.profile
new file mode 100644
index 000000000000..759828845cbb
--- /dev/null
+++ b/etc/etc.i386/inst2.profile
@@ -0,0 +1,440 @@
+stty status '^T'
+trap : 2
+trap : 3
+HOME=/; export HOME
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/distbin; export PATH
+if [ -e /fastboot ]
+then
+ echo Fast boot ... skipping disk checks
+else
+ echo Automatic reboot in progress...
+ fsck -p
+ case $? in
+ 0)
+ ;;
+ 2)
+ exit 1
+ ;;
+ 4)
+ echo; echo README README README README README README README
+ echo
+ echo "NOTE: The above errors are expected if this is the"
+ echo "first time you have booted from the hard disk after"
+ echo "completing the floppy install"; echo
+ echo "Automatic file system check changed the root file system"
+ echo "The system must halt for these corrections to take effect"
+ echo
+ reboot
+ echo "reboot failed... help!"
+ exit 1
+ ;;
+ 8)
+ echo "Automatic file system check failed... help!"
+ exit 1
+ ;;
+ 12)
+ echo "Reboot interrupted"
+ exit 1
+ ;;
+ 130)
+ exit 1
+ ;;
+ *)
+ echo "Unknown error in reboot"
+ exit 1
+ ;;
+ esac
+fi
+
+trap 2
+trap "echo 'Reboot interrupted'; exit 1" 3
+umount -a >/dev/null 2>&1
+mount -a -t nonfs
+rm -f /fastboot
+(cd /var/run && { rm -rf -- *; cp /dev/null utmp; chmod 644 utmp; })
+
+TERM=pc3 # terminal emulator, for elvis
+TERMCAP="\
+pc3|ibmpc3:li#25:co#80:am:bs:bw:eo:cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:\
+do=\E[B:ho=\E[;H:nd=\E[C:up=\E[A:so=\E[7m:se=\E[0m:us=\E[4m:ue=\E[0m:\
+:ac=l\332q\304k\277x\263j\331m\300w\302u\264v\301t\303n\305:\
+:kb=^h:kh=\E[Y:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:"
+OPSYSTEM=FreeBSD
+RELEASE="1.0"
+export TERMCAP
+export TERM
+echo "${OPSYSTEM} Base System Release ${RELEASE}"
+echo ""
+echo "Congratulations, you've got ${OPSYSTEM} on the hard disk!"
+echo
+echo "Press the return key for more installation instructions"
+read junkit
+echo
+echo "To finish installation:"
+echo "Pick a temporary directory by running set_tmp_dir. Make sure it's"
+echo "in a place with lots of space, probably under /usr."
+echo "Then, load the remaining distribution files into that temporary"
+echo "directory by issuing one of the following commands:"
+echo
+echo " load_fd load_qic_tape load_scsi_tape"
+echo
+echo "or by fetching the files with ftp (see the installation notes for"
+echo "information on how to do that)."
+echo
+echo "Once this is complete, extract the distribution files by issuing the"
+echo "command 'extract <distribution>' where <distribution> is the base name"
+echo "of the distribution files, e.g. 'base10'."
+echo
+echo "Once all of the filesets you wish to install have been extracted,"
+echo "enter the command 'configure' to finish setting up the system"
+echo " "
+echo "If you should wish to uninstall ${OPSYSTEM}, delete the partition by using the"
+echo "DOS 5 FDISK program. If installed on the entire drive, use the FDISK/MBR"
+echo "to remove the ${OPSYSTEM} bootstrap from the drive."
+echo 'erase ^?, werase ^H, kill ^U, intr ^C'
+stty newcrt werase  intr  kill  erase  9600
+umask 0
+set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ [ "$def_tmp_dir" = "/" ] && def_tmp_dir=/usr/distrib
+ echo -n "Copy files to which directory? [${def_tmp_dir}] "
+ read tmp_dir
+ [ ! "$tmp_dir" ] && tmp_dir=$def_tmp_dir
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+ echo
+}
+tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+load_fd()
+{
+ tmp_dir
+ drive=
+ altdrive=
+ subdir=
+ while [ -z "$drive" ]; do
+ echo -n "Read from which drive (or ? for help)? [c] "
+ read answer junk
+ case "${answer:-c}" in
+ a*b|A*B)
+ drive=A; altdrive=B
+ ;;
+ b*a|B*A)
+ drive=B; altdrive=A
+ ;;
+ a*|A*)
+ drive=A; altdrive=A
+ ;;
+ b*|B*)
+ drive=B; altdrive=B
+ ;;
+ c*|C*)
+ while read data; do
+ msdos_device=`expr X"$data" : 'X[ ]*\([^ ]*\)[^M]*pcfs'`
+ msdos_dir=`expr X"$data" : 'X[ ]*[^ ]*[ ]*\([^ ]*\)'`
+ [ "${msdos_device}" ] && break
+ done </etc/fstab
+ if [ ! "$msdos_device" ]; then
+ echo
+ echo "Cannot find MS-DOS in filesystem table"
+ continue
+ fi
+ drive=C; altdrive=C
+ while :; do
+ echo
+ echo -n "Read from which MS-DOS drive C: directory? [/] "
+ read resp junk
+ newdir=$(echo "${resp:-/}" | \
+ awk '{ sub(/^[Cc]*:*/, ""); gsub(/\\/, "/"); gsub(/^\/*/, ""); gsub(/\/*$/, ""); print $0 }')
+ if [ -d ${msdos_dir}/${newdir} ]; then
+ subdir=$newdir
+ break
+ else
+ echo "C:/${newdir}: No such directory"
+ fi
+ done
+ ;;
+ q*|Q*)
+ drive=q
+ ;;
+ \?*)
+ echo
+ echo "Enter: To:"
+ echo "------ ---"
+ echo " a Read from floppy drive A:"
+ echo " b Read from floppy drive B:"
+ echo " c Read from MS-DOS hard drive C:"
+ echo " ab Alternate between A: and B:, starting with A:"
+ echo " ba Alternate between A: and B:, starting with B:"
+ echo " q Quit"
+ echo
+ ;;
+ esac
+ done
+ verbose=-v
+ interactive=-i
+ if [ "$drive" = "C" ]; then
+ dir=${msdos_dir}
+ elif [ "$drive" != "q" ]; then
+ dir=/tmp/floppy
+ [ -d $dir ] && umount $dir >/dev/null 2>&1
+ [ -f $dir ] && rm -f $dir
+ mkdir -p $dir
+ fi
+ while [ "$drive" != "q" ]
+ do
+ device=/dev/fd0a
+ [ "$drive" = "B" ] && device=/dev/fd1a
+ [ "$drive" = "C" ] && device=${msdos_device}
+ echo;
+ if [ "$drive" != "C" ]; then
+ echo "Insert floppy in drive $drive:, then press RETURN to copy files,"
+ echo -n "or enter option (? for help): "
+ else
+ echo -n "Press RETURN to copy files, or enter option (? for help): "
+ fi
+ read answer junk
+ case "${answer:-g}" in
+ c*|C*)
+ if [ "$drive" != "C" ]; then
+ echo "Cannot change directory: not reading from MS-DOS drive C:"
+ else
+ echo
+ echo -n "Read from which MS-DOS drive C: directory? [/${subdir}] "
+ read resp junk
+ [ ! "$resp" ] && resp="/$subdir"
+ absolute=`expr X"$resp" : 'X[Cc]*:*\([/\]\)'`
+ subsub=$(echo "${resp}" | \
+ awk '{ sub(/^[Cc]*:*/, ""); gsub(/\\/, "/"); gsub(/^\/*/, ""); gsub(/\/*$/, ""); print $0 }')
+ if [ "$absolute" -o ! "$subdir" ]; then
+ newsub=$subsub
+ else
+ newsub=$subdir/$subsub
+ fi
+ if [ -d ${dir}/${newsub} ]; then
+ subdir=$newsub
+ else
+ echo "C:/${newsub}: No such directory"
+ fi
+ fi
+ ;;
+ g*|G*)
+ sync
+ if [ "$drive" = "C" ]; then
+ [ "$verbose" ] &&
+ { echo; echo "Please wait. Copying files from MS-DOS C:/${subdir}"; }
+ cp ${msdos_dir}/${subdir}/* .
+ sync
+ elif mount -t pcfs $verbose $device $dir; then
+ [ "$verbose" ] &&
+ { echo; echo "Please wait. Copying files to disk..."; }
+ cp $interactive $dir/* .
+ sync
+ umount $dir
+ tmp=$drive; drive=$altdrive; altdrive=$tmp
+ fi
+ ;;
+ i*|I*)
+ tmp=$interactive; interactive=; [ -z "$tmp" ] && interactive=-i
+ tmp=on; [ -z "$interactive" ] && tmp=off
+ echo "interactive mode is $tmp"
+ ;;
+ l*|L*)
+ sync
+ [ "$verbose" ] && echo "Directory of ${drive}:/${subdir}"
+ if [ "$drive" = "C" ]; then
+ ls -l $dir/${subdir}
+ else
+ umount $dir >/dev/null 2>&1
+ if mount -t pcfs $device $dir; then
+ ls -l $dir/${subdir}
+ umount $dir
+ fi
+ fi
+ ;;
+ o*|O*)
+ tmp=$drive; drive=$altdrive; altdrive=$tmp
+ ;;
+ q*|Q*)
+ drive=q
+ ;;
+ s*|S*)
+ echo; echo -n "tmp_dir is set to $tmp_dir"
+ [ "$tmp_dir" != "`pwd`" ] && echo -n " (physically `pwd`)"
+ echo; echo "Free space in tmp_dir:"
+ df -k .
+ echo -n "Reading from drive $drive:"
+ [ "$drive" != "$altdrive" ] && echo -n " and drive $altdrive:"
+ echo
+ tmp=on; [ -z "$verbose" ] && tmp=off
+ echo "Verbose mode is $tmp"
+ tmp=on; [ -z "$interactive" ] && tmp=off
+ echo "Interactive mode is $tmp"
+ ;;
+ v*|V*)
+ tmp=$verbose; verbose=; [ -z "$tmp" ] && verbose=-v
+ tmp=on; [ -z "$verbose" ] && tmp=off
+ echo "verbose mode is $tmp"
+ ;;
+ \?)
+ echo
+ echo "Enter: To:"
+ echo "----- ---"
+ echo "(just RETURN) Copy files from ${drive}:/${subdir} to $tmp_dir"
+ echo " c Change directory of MS-DOS drive C:"
+ echo " i Toggle interactive mode (cp -i)"
+ echo " l List directory of current drive"
+ echo " o Read from alternate floppy drive"
+ echo " q Quit"
+ echo " s Show status"
+ echo " v Toggle verbose mode"
+ echo
+ ;;
+ esac
+ done
+ echo "Working directory: `pwd`"
+ unset verbose answer drive altdrive device dir subdir tmp interactive
+}
+load_qic_tape()
+{
+ tmp_dir
+ echo -n "Insert tape into QIC tape drive and hit return to continue: "
+ read foo
+ tar xvf /dev/rwt0
+}
+load_scsi_tape()
+{
+ tmp_dir
+ echo -n "Insert tape into SCSI tape drive and hit return to continue: "
+ read foo
+ tar xvf /dev/nrst0
+}
+extract()
+{
+ tmp_dir
+ echo -n "Would you like to be verbose about this? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=--verbose
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ #XXX ugly hack to eliminate busy files, copy them to /tmp and use them
+ #from there...
+ cp -p /bin/cat /usr/bin/gunzip /usr/bin/tar /tmp
+
+ for i in $*; do
+ /tmp/cat "$i"* |
+ /tmp/gunzip |
+ (cd / ; /tmp/tar --extract --file - --preserve-permissions ${tarverbose} )
+ done
+ rm -f /tmp/cat /tmp/gunzip /tmp/tar
+ sync
+}
+configure()
+{
+ echo "You will now be prompted for information about this"
+ echo "machine. If you hit return, the default answer (in"
+ echo "brackets) will be used."
+
+ echo
+ echo -n "What is this machine's hostname? [unknown.host.domain] "
+ read hname
+
+ if [ "$hname" = "" ]; then
+ hname=unknown.host.domain
+ fi
+ echo $hname > /etc/myname
+ proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
+
+ echo
+ echo "What domain is this machine in (this is NOT its YP"
+ echo -n "domain name)? [$proto_domain] "
+ read dname
+
+ if [ "$dname" = "" ]; then
+ dname=$proto_domain
+ fi
+
+ echo
+ echo -n "Does this machine have an ethernet interface? [y] "
+ read resp
+ case "$resp" in
+ n*)
+ ;;
+ *)
+ intf=
+ while [ "$intf" = "" ]; do
+ echo -n "What is the primary interface name (i.e. we0, etc.)? "
+ read intf
+ done
+ echo -n "What is the hostname for this interface? [$hname] "
+ read ifname
+ if [ "$ifname" = "" ]; then
+ ifname=$hname
+ fi
+ ifaddr=
+ while [ "$ifaddr" = "" ]; do
+ echo -n "What is the IP address associated with this interface? "
+ read ifaddr
+ done
+ echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \
+ >> /etc/hosts
+
+ echo -n "Does this interface have a special netmask? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What is the netmask? [0xffffff00] "
+ read ifnetmask
+ if [ "$ifnetmask" = "" ]; then
+ ifnetmask=0xffffff00
+ fi
+ ;;
+ *)
+ ifnetmask=
+ ;;
+ esac
+
+ echo -n "Does this interface need additional flags? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What flags? [llc0] "
+ read ifflags
+ if [ "$ifflags" = "" ]; then
+ ifflags=llc0
+ fi
+ ;;
+ *)
+ ifflags=
+ ;;
+ esac
+
+ echo "inet $ifname $ifnetmask $ifflags" > /etc/hostname.$intf
+
+ echo ""
+ echo "WARNING: if you have any more ethernet interfaces, you"
+ echo "will have to configure them by hand. Read the comments"
+ echo "in /etc/netstart to learn how to do this"
+ ;;
+ esac
+
+ sync
+
+ echo
+ echo "OK. You should be completely set up now."
+ echo "You should now reboot your machine by issuing the 'reboot' command"
+ echo "after removing anything that happens to be in your floppy drive."
+}
diff --git a/etc/etc.i386/install_notes b/etc/etc.i386/install_notes
new file mode 100644
index 000000000000..79c18e9f5396
--- /dev/null
+++ b/etc/etc.i386/install_notes
@@ -0,0 +1,1055 @@
+ INSTALLATION NOTES
+ FreeBSD
+ Release 1.0
+
+These notes have been prepared from those written originally for NetBSD
+0.9. The conversion was done by someone who has had experience with
+installing and upgrading 386bsd, but who is not a unix guru, so there
+will be slant towards this experience. Corrections/updates are
+welcomed, it is difficult/impossible to test every last hardware
+combination.
+
+Be sure to read _ALL_ of this document before you try to install
+FreeBSD. FreeBSD probably looks a bit similar to things that you've
+seen before (perhaps 386BSD), but the installation procedures are quite
+different.
+
+
+FreeBSD 1.0 Release Contents:
+------- --- ------- --------
+
+The FreeBSD 1.0 Release consists of the following elements:
+
+Bootable Kernel-copy floppies
+
+ These disks are bootable and have enough utilities on
+ board to copy a new kernel to a prepared hard disk. While
+ they are primarily intended for installing FreeBSD, they
+ also make upgrading to a new kernel easy: boot from it,
+ and copy a new kernel to disk.
+
+ You must choose between one of two kernel-copy floppy
+ images, depending on your disk controller type. The
+ "kcopy-ah-floppy" image supports the Adaptec 154x and 1742
+ SCSI adapters, while "kcopy-bt-floppy" supports the Bustek
+ 742 and Ultrastore SCSI adapters. For systems with only
+ MFM, RLL, ESDI or IDE disk controllers, either image can
+ be used.
+
+Installation floppies
+
+ In addition to a bootable floppy, currently two additional
+ disks are required to prepare your hard drive for FreeBSD
+ and to install the FreeBSD distribution. Like the boot
+ floppies, these are distributed as binary images. They are
+ are referred to below as the "filesystem-floppy" and the
+ "cpio-floppy".
+
+ There is also an optional fourth installation disk referred
+ to as the "dos-floppy". Unlike the other install disks,
+ there is no binary image for the dos floppy. Instead this
+ is a regular MS-DOS-formatted floppy disk containing any
+ FreeBSD programs you choose to copy to it using mtools or
+ even the DOS copy command. The most commonly requested
+ programs have been put in a tools directory at FreeBSD
+ archives sites.
+
+Upgrade floppies
+
+ These facilitate upgrading to FreeBSD from any previous
+ patch-kit level of 386BSD 0.1. They are still in testing,
+ but should be available by the time you read this from
+ the tools/upgrade directory at FreeBSD archive sites.
+ [the current version is:
+ tools/upgrade/386BSD-to-FreeBSD-update-LATE-BETA.tar.gz]
+
+FreeBSD distribution sets
+
+ These collections contain the complete FreeBSD system and
+ utilities in source and binary form. There are three
+ separate sets: the FreeBSD binaries, the FreeBSD sources,
+ and the DES sources+binaries. The DES set contains only
+ crypt(3) code and is subject to U.S.A. export restrictions.
+
+ The binary distribution set can be found in the "binarydist"
+ subdirectory of the FreeBSD archive sites. It consists
+ of files named bin_tgz.aa to bin_tgz.db (i.e., 80 files
+ all told). A CKSUMS file (* see note below) is included
+ for verifying the integrity of these.
+
+ The source distribution sets can be found in under
+ "sourcedist" subdirectory of archive sites. It is consists
+ of files named src_tgz.aa to src_tgz.cp (i.e., 68 files
+ all told), plus file CKSUMS*.
+
+ Finally, the security distribution set contains
+ usr/src/libcrypt/*, the source files for the DES encryption
+ algorithm, and the binaries which depend on it. It can
+ be found in the "securedist" subdirectory on sites which
+ choose to carry the complete FreeBSD distribution.
+
+ The individual files in each collection are no more than
+ 235 Kbytes in size. (The last file is just long enough
+ to contain the rest of the data for that distribution
+ set.)
+
+ Each collection is a split, gzip'ed tar archive. They
+ are reassembled and extracted by the install procedure.
+ However, to view them without installing FreeBSD, you can
+ use, e.g., the command line:
+
+ cat bin* | gunzip | tar tvf - | more
+
+ or to extract the files themselves:
+
+ cat bin* | gunzip | tar xvfp -
+
+ Using this method, the files are extracted in the current
+ directory. So to install the binary distribution, for
+ instance, you have to run the "tar xvfp" from the root
+ directory (/).
+
+ In each of the distribution directories, there is a file
+ named "CKSUMS" which contains the checksums of the files
+ in that directory, as generated by the cksum(1) command.
+ You can use cksum to verify the integrity of the archives,
+ if you suspect one of the files is corrupted.
+
+ N.B.: The CKSUMS files are produced using the 4.4BSD
+ version of cksum which is POSIX-compliant. The values in
+ these file do not match the cksums generated by the 386BSD 0.1
+ version of cksum (which is based on an earlier "standard").
+ A copy of the new cksum binary that will run on
+ 386bsd/Netbsd/FreeBSD can be found in the "tools" subdirectory
+ of the distribution.
+
+
+System Requirements and Supported Devices:
+------ ------------ --- --------- -------
+
+FreeBSD 1.0 runs on ISA (AT-Bus) and EISA systems, with 386 and 486
+processors, with or without math coprocessors. It does NOT support
+Micro-channel systems, such as some IBM PS/2 systems. The minimal
+configuration includes 4Meg of RAM, and an 80Meg hard disk, but to
+install the entire system you'll need much more disk space, and to run
+X or compile the system more RAM is recommended. (4Meg will actually
+allow you to run X and/or compile, but it's extremely slow.)
+
+Supported devices include:
+
+ Standard floppy controllers
+
+ Standard hard disk controllers:
+ MFM
+ ESDI
+ IDE
+ RLL
+
+ SCSI hard disk controllers:
+ Adaptec 154x series * [kcopy-ah-floppy]
+ Adaptec 174x series
+ Buslogic 545S
+ Bustek 742 (EISA) [kcopy-bt-floppy]
+ DTC 3290 in 1542 emulation mode *
+ Ultrastor 14f and 34f
+
+ * Your system can NOT have more than 16MB of memory with
+ these controllers.
+
+ Display Adaptors:
+ MDA
+ CGA
+ VGA (and SVGA)
+ HGC
+
+ Serial communications ports
+ 8250
+ 16450
+ 16550A
+ [4-port multi-serial cards - require kernel built
+ with MULTI_PORT option]
+ [We do not support the Intel 82501 serial chip used
+ in some PC's at this time]
+
+ Ethernet controllers
+ SMC/WD 8003, 8013, and equivalents
+ (including the SMC "Elite" series)
+ Novell NE1000, NE2000
+ 3COM 3c503
+ ISOLAN ISOLink
+
+ Tape drives:
+ QIC-02 format tape drives
+ most SCSI tape/DAT drives
+ [an early QIC-40 or QIC-80 tape driver exists,
+ but is not yet incorporated into FreeBSD]
+
+ CD-ROM drives:
+ Mitsumi CDROM drive with Mitsumi Controller
+ Most SCSI CD-ROM drives on a supported SCSI controller
+
+To be detected by the distributed kernels, the devices must
+be configured as follows: (Note: IRQ 9 is the same as IRQ 2
+on ISA/EISA based machines)
+
+Device Name Port IRQ DRQ Misc
+------ ---- ---- --- --- ----
+Floppy Cntlr. fd0 0x3f0 6 2
+
+Std. Hard Disk Cntlr.
+ wd0 0x1f0 14
+
+AHA-154x SCSI Cntlr. 0x330 11 5 [kcopy-ah-floppy]
+
+AHA-174x SCSI Cntlr. automatically configured [kcopy-ah-floppy]
+
+BT742 SCSI Cntlr. 0x330 12 [kcopy-bt-floppy]
+
+UHA-14f SCSI Cntlr. or
+UHA-34f SCSI Cntlr. 0x330 14 5 [kcopy-bt-floppy]
+(In FreeBSD GAMMA and before, UHA was on IRQ 11)
+
+SCSI Disks sd[0-2] automatically configured
+
+SCSI Tapes st[01] automatically configured
+
+SCSI CD-ROMs cd0 automatically configured
+
+Serial Ports com0 0x3f8 4
+ com1 0x2f8 3
+ com2 0x3e8 5
+ com3 0x3f8 9
+
+SMC/WD Ethernet or
+3COM 3c503 ed0 0x280 5 iomem 0xd8000
+
+NOTE for 386bsd users: the we0 device for the WD80xxyy card has been
+replaced with an ed0 device. The default settings of 9/280/d000 have
+been changed to 5/280/d800 as this address accomdates all of the boards.
+
+Novell Ethernet ed0 0x280 5
+
+NOTE for 386bsd users: the ne0 device for the NEx000 card has been
+replaced with an ed0 device. The default settings of 9/300 have
+been changed to 5/280.
+
+ISOLAN ISOLink is0 0x280 10 7
+
+QIC-02 Tape wt0 0x300 5 1
+
+Parallel (Printer) Port
+ lpt0 0x3BC 7
+
+Interruptless Parallel (Printer) Port
+ lpa0 0x378
+ lpa1 0x278
+
+N.B.: Disable the lpt interrupt on the board or you will
+have problems using the lpa drivers.
+
+Hard-Disk Storage Requirements
+--------- ------- ------------
+
+The minimum base installation of FreeBSD requires a free hard disk
+partition with at least 16 MB free space. This is only enough for
+the three installation disks, which don't support a multi-user
+shell.
+
+The full binary distribution extracts to about 46 MB.
+The full source distribution extracts to about 72 MB.
+The kernel source only extracts to about 7 MB.
+To recompile the sources requires an additional 55 MB.
+To recompile the kernel requires an additional 2 MB.
+
+Since additional room is required for extracting the distributions,
+a full binary installation requires a minimum of about 80 MB (46
+MB extracted + 16 MB archived + 8 MB minimum swap + room for
+extracting).
+
+A complete source + binary distribution requires a minimum of
+about 210 MB (assuming a minimum 8 MB swap).
+
+
+Getting the System on to Useful Media:
+------- --- ------ -- -- ------ -----
+
+Installation is supported from several media types, including:
+
+ MS-DOS floppies
+ MS-DOS hard disk (Primary partition)
+ Tape
+ NFS partitions
+ FTP
+ Kermit
+
+No matter what you do, however, you'll need at least three disks (1.2M
+or 1.44M) handy, on which you will put the kernel-copy image and the
+install (or upgrade) floppy images.
+
+The images are available from the directory "floppies", under the root
+of the FreeBSD/FreeBSD-1.0 tree at your favorite archive site.
+They're available both as raw disk images, and gzipped, to save time
+downloading.
+
+If you are using an AHA-154x or AHA-1742 SCSI host adapter, you need
+the kcopy-ah-floppy image. If you're using a BT-742 SCSI host adapter
+or an Ultrastor adaptor, then you'll need the kcopy-bt-floppy image.
+If you're using MFM/RLL/IDE disk controllers, you can use either
+kernel-copy floppy image.
+
+If you are using UNIX to make the floppies, you should use the command
+dd(1) to write the raw floppy images (i.e., kcopy-ah-floppy or
+kcopy-bt-floppy, filesystem-floppy and cpio-floppy) to the floppies.
+For example, to write kcopy-ah-floppy to a 5.25" 1.2 Mb floppy
+disk under 386BSD, use:
+
+ $ dd if=kcopy-ah-floppy of=/dev/fd0a bs=30b count=80
+
+or for a 3.5" 1.44 Mb floppy:
+
+ $ dd if=kcopy-ah-floppy of=/dev/fd0a bs=36b count=80
+
+If you are using DOS to make the floppies, use the rawrite.exe
+utility. This can be found in the "tools" subdirectory of the
+archive site. Copy rawrite.exe and the binary images to a DOS
+disk, type "rawrite" under MS-DOS and follow the instructions.
+Rawrite can write binary images to either 1.2MB or 1.44MB
+MS-DOS-formatted floppies.
+
+Any other programs from the tools directory that might be needed
+for installing FreeBSD, such as kermit, should be copied to a DOS-
+formatted floppy (1.2MB or 1.44MB). Under 386BSD, they can be
+copied to floppy using the mcopy command. Under DOS, use the DOS
+copy command.
+
+The steps necessary to prepare the distribution sets for installation
+depend on which method of installation you choose. The various methods
+are explained below.
+
+To prepare for installing via MS-DOS hard disk:
+
+ To prepare FreeBSD for installaton from the MS-DOS C: drive
+ of the hard disk, you need to do the following:
+
+ If FreeBSD is installed on a hard disk containing
+ a Primary MS-DOS partition (as opposed to an
+ Extended DOS partition), then the FreeBSD distribution
+ files can be read directly from DOS. Preparation
+ is just a matter of copying the FreeBSD distribution
+ files onto DOS C: drive of the hard disk.
+
+ If FreeBSD is installed on a separate hard disk than
+ MS-DOS, it is not currently possible to read the FreeBSD
+ distribution files directly from DOS. In this case,
+ a different medium should be used.
+
+ Once you have the files on the C: drive, you can proceed to the
+ next step in the installation process, viz preparing your hard
+ disk.
+
+To prepare for installing via MS-DOS floppies:
+
+ To prepare FreeBSD for installaton from MS-DOS floppies, you
+ need to do the following:
+
+ Count the number of "<set>_tgz.xx" files
+ you have (these are split, gzip'ed, tar
+ archives). Call this number N. You will
+ need N/6 1.44M floppies, or N/5 1.2M
+ floppies to install the distribution
+ in this manner. For the set of bin files
+ (i.e., 80 files) and 1.2 Mb floppies you will
+ need 16 disks.
+
+ Format all of the floppies, with MS-DOS.
+ Don't make any of them MS-DOS bootable
+ floppies (i.e., don't use "format /s"!)
+ If you use "format /u" then the format
+ will run a tad faster.
+
+ Copy all of the "<set>_tgz.xx" files on
+ the DOS disks. Under DOS use the DOS copy
+ command. Under 386BSD, use, for instance,
+ the make_floppies script:
+
+ #!/bin/sh
+ N_PER_DISK=5
+
+ x=$N_PER_DISK
+ for dist in bin_tgz.*; do
+ if [ $x -ge $N_PER_DISK ]; then
+ x=0
+ echo -n "Insert next disk, "
+ echo -n "and press ENTER... "
+ read reply
+ mdel a:/\*
+ fi
+ mcopy $dist a:/
+ x=`expr $x + 1`
+ done
+
+ (Or you might use tar instead).
+
+ Once you have the files on DOS disks, you can proceed to the
+ next step in the installation process, viz preparing your hard
+ disk.
+
+To prepare for installing via a tape:
+
+ To install FreeBSD from a tape, you need to be somehow
+ to get the FreeBSD filesets you wish to install on
+ your system on to the appropriate kind of tape,
+ in tar format.
+
+ If you're making the tape on a UN*X system, the easiest
+ way to do so is:
+
+ tar cvf <tape_device> <files>
+
+ where "<tape_device>" is the name of the tape device
+ that describes the tape drive you're using (either
+ /dev/rst0 for SCSI tape, otherwise /dev/rwt0).
+ If you can't figure it out, ask your system administrator.
+ "<files>" are the names of the "<set>.tar.gz.xx" files
+ which you want to be placed on the tape.
+
+ If your tape drive is not a type recognzed by the
+ kernel, then it may be necessary to set the tape density
+ using either the st(1) command (for SCSI tape) or the
+ mt(1) command. Both these programs are available from
+ the tools directory of the FreeBSD archive site.
+
+To prepare for installing via an NFS partition:
+
+ NOTE: this method of installation is recommended
+ only for those already familiar with using
+ the BSD network-manipulation commands and
+ interfaces. If you aren't, this documentation
+ should help, but is not intended to be
+ all-encompassing.
+
+ Place the FreeBSD software you wish to install into
+ a directory on an NFS server, and make that directory
+ mountable by the machine which you will be installing
+ FreeBSD on. This will probably require modifying the
+ /etc/exports file of the NFS server and resetting
+ mountd, acts which will require superuser privileges.
+ Make a note of the numeric IP address of the NFS server
+ and make a note of the router closest to the the new
+ FreeBSD machine if the NFS server is not on a network
+ which is directly attached to the FreeBSD machine.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
+
+To prepare for installing via FTP:
+
+ NOTE: this method of installation is recommended
+ only for those already familiar with using
+ the BSD network-manipulation commands and
+ interfaces. If you aren't, this documentation
+ should help, but is not intended to be
+ all-encompassing.
+
+ The preparations for this method of installation
+ are easy: all you have to do is make sure that
+ there's some FTP site from which you can retrieve
+ the FreeBSD installation when it's time to do
+ the install. You should know the numeric IP
+ address of that site, and the numeric IP address of
+ your nearest router if the new FreeBSD computer is
+ not on the same net or subnet as the FTP site.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
+
+To prepare for installing via Kermit:
+
+ The preparations for this method of installation
+ require that the kermit program be put on the
+ dos-floppy installation disk. This will be
+ loaded as part of the minimum base installation.
+ Kermit is available from tools directory of the
+ FreeBSD FTP site. This is a FreeBSD binary and
+ only executes under the FreeBSD operating system.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
+
+To upgrade:
+
+ (The beta upgrade script is available on request from
+ FreeBSD-questions@freefall.cdrom.com)
+
+Preparing your Hard Disk for FreeBSD Installation:
+--------- ---- ---- ---- --- ------ ------------
+
+NOTE: If you wish to install FreeBSD on your whole drive, (i.e. you do
+not want DOS or any other operating system on your hard disk), you can
+skip this section, and go on to "Installing the FreeBSD System."
+
+Firstly, be sure you have a reliable backup of any data which you may
+want to keep; repartitioning your hard drive is an excellent way to
+destroy important data.
+
+WARNING: If you are using a disk controller which supports disk
+geometry translation, BE SURE TO USE THE SAME PARAMETERS FOR FreeBSD AS
+FOR DOS! If you do not, FreeBSD will not be able to properly coexist
+with DOS.
+
+Secondly, make sure your disk has at least 16 Mbytes free space (or
+80 Mbytes for the complete binary distribition).
+
+You are now set to install FreeBSD on your hard drive.
+
+Installing the FreeBSD System:
+---------- --- ------ ------
+
+If DOS or OS/2 is already installed on the hard disk, installation should
+be easy. By default FreeBSD is installed after the last DOS or OS/2
+partition. Otherwise, you may need to specify your hard disk's geometry
+(i.e., number of cylinders, heads and sectors per track).
+
+For computing partition sizes, it might help to have a calculator handy.
+
+And it's finally time to install the system!
+
+The following is a walk-through of the steps necessary to get FreeBSD
+installed on your hard disk. If you wish to stop the installation, you
+may hit Control-C at any prompt and then type `halt'.
+
+ Boot from the kcopy-ah or kcopy-bt floppy, depending on
+ your hard disk controller type.
+
+ When prompted to insert the filesystem floppy, remove the
+ kcopy floppy from the drive and insert filesystem floppy
+ and hit any key.
+ N.B.: The filesystem floppy must not be write protected.
+
+ [When booting, if no message prompt appears after a
+ reasonable period of time, reboot and try it again. If
+ this doesn't work, try disabling your CPU's internal and
+ external caches, and then try to boot again. If there is
+ still no message prompt, then you can't install FreeBSD
+ on your hardware. If you were able to install 386bsd,
+ this is definitely a bug in our software; please report
+ it! Please include your system configuration, and any
+ other relevant information in your bug report.]
+
+ The boot sequence continues after the filesystem floppy
+ has been inserted. A copyright notice is displayed along
+ with a list of the hardware that FreeBSD recognizes as
+ being in your machine. You might want to make a note of
+ the disk values for cylinders, heads, sectors etc for
+ later use.
+
+ After a short while (approximately 30 to 60 seconds), you
+ should see a welcome message and a prompt, asking if you
+ wish to proceed with the installation.
+
+ If you wish to proceed, enter "y" and then return.
+
+ You will then be asked what type of disk drive you have.
+ The valid options are listed on the screen (e.g., SCSI, ESDI).
+
+ You will then be asked for a label name for your disk.
+ This should be a short, one-word name for your disk,
+ e.g., "cp3100-mine" for a Conner Peripherals "3100" disk.
+ You needn't remember this name.
+
+ Next, you will be prompted for the geometry information.
+ The default values should be correct, in which case just
+ hit ENTER to accept them. Otherwise enter the values
+ that were displayed during the boot sequence as they are
+ requested.
+
+ The default size of the FreeBSD portion of the disk
+ is the maximum available at the end of the disk (which may
+ be the whole disk). Accept the default by hitting ENTER.
+ Otherwise, enter an appropriate value using the information
+ displayed.
+
+ If you are not installing on the whole disk, you will be
+ asked for the offset of the FreeBSD partition from the
+ beginning of the disk. Again, hit ENTER to accept the
+ default, or enter a cylinder offset from the beginning of
+ the disk.
+
+ You will then be asked for the size of your root partition,
+ in cylinders. The suggested maximum size is 15 Mbytes
+ which is used as a default. Accept this, or enter a
+ suitable value (after converting to cylinders using the
+ formula displayed).
+
+ Next, you will be asked for the size of your swap partition
+ - again, you must calculate this in cylinders. You should
+ probably allocate around twice as much swap space as you
+ have RAM memory. If you wish the system to save crash dumps
+ when it panics, you will need at least as much swap as you
+ have RAM.
+
+ The install program will then ask you for information about
+ the rest of the partitions you want on your disk. For the
+ purposes of this document, you only want one more: /usr.
+ Therefore, at the prompt, when in asks you to enter the size
+ of the next partition, enter the number of cylinders remaining
+ in the FreeBSD portion of the disk. When it asks you for the
+ mount point for this partition, say "/usr".
+
+ After the FreeBSD partition have been assigned, install checks
+ the disk for an MS-DOS partition. If one exists, you are prompted
+ whether to make this accessible from FreeBSD (i.e., for reading
+ and writing). And if you choose to make the DOS partition
+ accessible, you are prompted for what directory it should
+ be mounted on. "/dos" is used by default. With this
+ choice, you could copy the contents of the DOS root
+ directory (i.e., C:\), for instance, with the Unix command:
+
+ # cp /dos/* .
+
+ If have you a DOS partition and you don't want it visible
+ from FreeBSD, just respond with "n" when asked whether to
+ make it accessible.
+
+ YOU ARE NOW AT THE POINT OF NO RETURN.
+
+ If you confirm that you want to install FreeBSD, your hard
+ drive will be modified, and perhaps it contents scrambled at
+ the whim of the install program. This is especially likely
+ if you gave the install program incorrect information.
+ Enter "no" at the prompt to get the option of redoing the
+ configuration, using your previous choices as defaults.
+
+ If you are sure you want to proceed, enter "yes" at the prompt.
+
+ The install program now makes the filesystems you specified.
+ If all goes well, there should be no errors in this section
+ of the installation. If there are, restart from the the
+ beginning of the installation process.
+
+ After the installation program prompts you to see if you'd
+ like to be told about all of the files it's going to copy
+ to your hard drive, it will spend a few minutes copying these
+ files and then will print out an informative message and
+ place you at a "#" prompt.
+
+ Read the message and note which partition (e.g., sd0a or wd0a)
+ you need to copy a kernel to. Reboot the machine off the
+ kcopy-xx-floppy disk, but this time at the prompt asking
+ you to insert a file system floppy, do _not_ replace the
+ floppy, just press <enter>.
+
+ At the "kc>" prompt, enter "copy" to prepare to copy the
+ kernel on the floppy to your hard disk.
+
+ At the next "kc>" prompt, enter the disk partition to which
+ you want to copy the kernel. (e.g., sd0a or wd0a).
+
+ It will work for a minute or two, then present you with
+ another "#" prompt. Follow the instructions given, (i.e.,
+ halt the system) and reboot from the hard disk. You will
+ probably have to do a hardware reset or else your ethernet
+ card might not be recognised at reboot (e.g., if you have a
+ WD8003EP card).
+
+ When the machine boots, a three-line banner should appear at
+ the top of the screen. In a few seconds, a series of
+ messages will appear, describing the hardware in your machine.
+ Once again, this stage can take up to two minutes, so DO NOT
+ PANIC!
+
+ You will be asked to insert the cpio-floppy into a floppy
+ drive, and enter that drive's number. "0" corresponds to
+ DOS's "A:" drive, "1" corresponds to DOS's "B:" drive.
+
+ After you enter the number it will ask you if you'd like to
+ watch its progress, and after you answer this question it
+ will begin installing still more files on your hard disk.
+ This should take no more than 3 minutes.
+
+ You are given the option to load the dos-floppy disk.
+ In particular, if you want to use kermit for downloading
+ the distribution, the dos-floppy should have the kermit
+ binary. Or if you are using SCSI tape, the dos-floppy should
+ contain the st command.
+
+ To load the dos-floppy, remove the cpio-floppy from the
+ drive, insert the dos-floppy and enter a "yes" response
+ at the prompt. Otherwise, enter "no" at the prompt.
+
+ After the dos-floppy has been loaded, you are given (more)
+ instructions, (e.g., to halt the system) and you should
+ reboot the machine again, from the hard drive and probably
+ with a hardware reset to kick your ethernet card back into
+ life.
+
+ CONGRATULATIONS: You now have the minimum base of FreeBSD
+ files on your hard disk! Now you get to install the
+ distribution file sets. Remember that, at minimum, you must
+ install the bin.tar.gz.xx file set (see below for
+ instructions).
+
+ After the machine is done booting, you will be presented
+ with a screenful of information about what to do next.
+
+ What you do from this point on depends on which media you're
+ using to install FreeBSD. Follow the appropriate
+ instructions, given below.
+
+ To install from MS-DOS hard disk partition, floppy or tape:
+
+ The first thing you should do is to choose a temporary
+ directory where the distribution files can be stored.
+ To do this, use the command "set_tmp_dir" and enter
+ your choice. The default is /usr/distrib.
+
+ After you have chosen a temporary directory,
+ you should issue the appropriate load command:
+
+ load_fd - for loading from a MS-DOS hard disk
+ partition, or from floppies,
+
+ load_qic_tape - for loading from QIC-02 tape, or
+
+ load_scsi_tape - for you're loading from the first
+ SCSI tape drive in the system.
+
+ If loading from tape, it may be necessary to first
+ set the default density using the mt or st command.
+ The low-density device (/dev/rst0 or /dev/rmt0)
+ is used by the load_xx_tape command, so to prepare
+ a SCSI device for reading QIC-150 tape, you might use:
+
+ # st -f /dev/nrst0 rewind
+ # st -f /dev/nrst0 low_dnsty 16
+ # load_scsi_tape
+
+ If loading from floppy or hard disk, the load_fd
+ command prompts for information, such as to which
+ floppy drive or hard disk directory to load from.
+ Additional options are available, e.g., for listing
+ and, if loading from hard disk, changing source
+ directories.
+
+ Go to the directory which contains the first
+ distribution set you wish to install. This is
+ either the directory you specified above, if using
+ load_fd, or possibly a subdirectory of that
+ directory, if you loaded from tape.
+
+ When there, run "set_tmp_dir" again, and choose
+ the default temporary directory, by hitting
+ return at the prompt.
+
+ Run the "extract" command, giving it as its sole
+ argument the name of the distribution set you
+ wish to extract. For example, to extract the binary
+ distribution, use the command:
+
+ extract bin
+
+ and to extract the source distribution:
+
+ extract src
+
+ After the extraction is complete, go to the location
+ of the next set you want to extract, "set_tmp_dir"
+ again, and once again issue the appropriate
+ extract command. Continue this process until
+ you've finished installing all of the sets which you
+ desire to have on your hard disk.
+
+ After each set is finished, if you know that you
+ are running low on space you can remove the
+ distribution files for that set by saying:
+
+ rm <set>*
+
+ For example, if you wish to remove the distribution
+ files for the binarydist set, after the "extract bin"
+ command has completed, issue the command:
+
+ rm bin*
+
+ Once you have extracted all sets and are at the "#" prompt
+ again, proceed to the section "Configuring Your System,"
+ below.
+
+ To install via FTP or NFS:
+
+ First you must decide on a temporary directory to hold
+ the <set>.tar.gz.xx files. The directory /usr/distrib
+ is suggested. You should cd to it, if necessary do
+ a mkdir first. Use set_tmp_dir to identify this
+ directory to the install process.
+
+ Configure the appropriate ethernet interface (e.g. ed0,
+ ne0, etc.) up, with a command like:
+
+ ifconfig <ifname> <ipaddr> [netmask <netmask>]
+
+ where <ifname> is the interface name (e.g. ed0, etc.),
+ and <ipaddr> is the numeric IP address of the interface.
+ If the interface has a special netmask, supply
+ the word "netmask" and that netmask at the end of the
+ command line. For instance, without a special netmask:
+
+ ifconfig ed0 129.133.10.10
+
+ or with a special netmask
+
+ ifconfig ed0 128.32.240.167 netmask 0xffffff00
+
+ or the equivalent
+
+ ifconfig ed0 128.32.240.167 netmask 255.255.255.0
+
+ If you are using the AUI connector on a 3C503 card, you
+ must also set the LLC0 flag (the default is to use the BNC
+ connector):
+
+ ifconfig ed0 130.252.23.86 llc0
+
+ If the NFS server or FTP server is not on a directly-
+ connected network, you should set up a route to it
+ with the command:
+
+ route add default <gate_ipaddr>
+
+ where <gate_ipaddr> is your gateway's numeric IP address.
+
+ If you are NFS-mounting the distribution sets,
+ mount them on the temporary directory with the command:
+
+ mount -t nfs <serv_ipaddr>:<dist_dir> <tmp_dir>
+
+ where <serv_ipaddr> is the server's numeric IP address,
+ <dist_dir> is the path to the distribution files on
+ the server, and <tmp_dir> is the name of the local
+ temporary directory (e.g., /usr/distrib). Proceed as if
+ you had loaded the files from tape, "cd"ing to the
+ appropriate directories and running "set_tmp_dir" and
+ "extract" as appropriate.
+
+ If you are retrieving the distribution sets using ftp,
+ cd into the temp directory, and execute the command:
+
+ ftp <serv_ipaddr>
+
+ where <serv_ipaddr> is the server's numeric IP address.
+ Get the files with FTP, taking care to use binary mode
+ to transfer all files. A simple set of commands is
+
+ ftp <serv_ipaddr>
+ user ftp
+ passwd <user-id>@
+ hash
+ binary
+ prompt
+ cd <where/the/binarydist/files/are>
+ mget *
+ cd <where/the/sourcedist/files/are>
+ mget *
+ quit
+
+ Once you have all of the files for the distribution sets
+ that you wish to install, you can proceed using the
+ instructions above as if you had installed the files
+ from a floppy.
+
+ To install via Kermit:
+
+ First you must decide on a temporary directory to hold
+ the <set>.tar.gz.xx files. The directory /usr/distrib
+ is suggested. You should cd to it, if necessary do
+ a mkdir first. Use set_tmp_dir to identify this
+ directory to the install process.
+
+ Invoke kermit and dial the remote kermit server.
+ A typical session might be:
+ # stty -f /dev/sio01 clocal
+ # kermit
+ C-Kermit> set file type binary
+ C-Kermit> set line /dev/sio01
+ C-Kermit> set baud 9600
+ C-Kermit> set receive packet 740
+ C-Kermit> set window 4
+ C-Kermit> set block 2
+ C-Kermit> connect
+ Connecting to /dev/sio01, speed 9600.
+ The escape character is Ctrl-\ (ASCII 28, FS)
+ Type the escape character followed by C to get back,
+ or followed by ? to see other options.
+ atdt 1234567 <-- dial the remote
+ Connect 9600
+ login: mylogin <-- login to the remote
+ [...]
+ remote$ kermit -ix <-- remote kermit as binary server
+ [...]
+ ^\C <-- return to local kermit
+ C-Kermit> get bin_tgz* <-- request files from remote
+ [...] (wait long for transfer to complete)
+ C-Kermit> finish <-- terminate remote server
+ C-Kermit> connect
+ C-Kermit> exit <-- exit remote kermit
+ remote$ exit <-- exit remote host
+ ^\C <-- return to local kermit
+ C-Kermit> exit <-- exit local kermit
+
+ At this point the binary distribution should be
+ downloaded to the FreeBSD system. Run the "extract"
+ command, giving it as its sole argument the name
+ of the distribution set you wish to extract. For
+ example, to extract the binary distribution, use
+ the command:
+
+ extract bin
+
+ and to extract the source distribution:
+
+ extract src
+
+ After the extraction is complete, go to the location
+ of the next set you want to extract, "set_tmp_dir"
+ again, and once again issue the appropriate
+ extract command. Continue this process until
+ you've finished installing all of the sets which you
+ desire to have on your hard disk.
+
+ After each set is finished, if you know that you
+ are running low on space you can remove the
+ distribution files for that set by saying:
+
+ rm <set>*
+
+ For example, if you wish to remove the distribution
+ files for the binarydist set, after the "extract bin"
+ command has completed, issue the command:
+
+ rm bin*
+
+ Once you have extracted all sets and are at the "#" prompt
+ again, proceed to the section "Configuring Your System,"
+ below.
+
+
+Further Tips on Installing FreeBSD
+------- ---- -- ---------- -------
+
+ You might wish to install the binarydist first, get that
+ working, and then at a later point in time have a go at
+ installing the sourcedist. BEFORE YOU REBOOT AFTER INSTALLING
+ THE BINARYDIS, you must preserve the commands that do the
+ extracting. They are kept in the single-user-mode .profile
+ file called /.profile. Proceed like this:
+
+ mv /.profile /.profile.install
+ ln /root/.profile /.profile
+
+ When you are ready to install the sourcedist at some time
+ in the future, get into multi-user mode (i.e., the normal
+ means of running FreeBSD) and issue these commands:
+
+ cp /.profile.install /.profile
+ shutdown now
+
+ This will cause the system to go into single-user mode, and
+ the install profile will be active (i.e., you will find the
+ commands load_fd, extract etc available to you again).
+
+ If your disk has several operating systems, you may want
+ to install a boot manager such as Thomas Wolfram's os-bs
+ for selecting which system to boot. os-bs135.exe and other
+ boot managers are available from the tools directory of
+ the FreeBSD FTP site. os-bs works well with DOS, OS/2,
+ FreeBSD and other systems, however, it cannot currently
+ be used to boot FreeBSD from a second hard disk. Another
+ boot manager, such as boot-easy should be used.
+
+ To install, for instance, os-bs, boot the system with
+ MS-DOS and insert the dos-floppy containing os-bs135.exe
+ in floppy drive A:. Then enter the DOS commands:
+ > A:
+ > os-bs135
+ > cd os-bs
+ > os-bs
+ A menu should now appear on the screen. Use the cursor keys
+ to highlight the install option, hit ENTER, and follow the
+ instructions from there.
+
+ For more information about the ob-bs program, including its
+ capabilities and limitations, see the file `readme.1st' in the
+ os-bs directory.
+
+ If your disk has several operating systems and you choose
+ not to install os-bs, then fdisk can be used to change
+ the boot system. This is done by making the primary
+ partition for the boot system active. FreeBSD has an
+ fdisk command that can be used for this purpose as well.
+
+
+Configuring Your System:
+----------- ---- ------
+
+Once you have finished extracting all of the distribution sets that you
+want on your hard drive and are back at the "#" prompt, you are ready
+to configure your system.
+
+The configuration utility expects that you have installed the base
+system. If you have not, you will not be able to run it successfully
+(nor will you have a functional system regardless of configuration).
+
+To configure the newly installed operating system, run the command
+"configure".
+
+Configure will ask for the machine's hostname, domain name, and other
+network configuration information. You should check that configure has
+set up the following files correctly:
+
+ /etc/netstart
+ /etc/myname
+
+Once you have supplied configure all that it requests, your machine
+will be configured well enough that when you reboot it it will be a
+completely functional FreeBSD system. It is not completely configured,
+however; you should adjust the /etc/sendmail.cf file as necessary to
+suit your site and/or disable sendmail in /etc/rc and you should look
+in /etc/netstart to make sure the flags are defined correctly for your
+site. You might wish to set up several other tcp/ip files, such as
+
+ /etc/resolv.conf
+ /etc/networks
+
+Once you are done with configuration, reboot with the "reboot" command.
+
+When it boots off of the hard drive, you will have a complete FreeBSD
+system! CONGRATULATIONS! (You really deserve them!!!)
+
+
+Administrivia:
+-------------
+
+Registration? What's that?
+
+If you've got something to say, do so! We'd like your input.
+
+Please send random comments to:
+
+ FreeBSD-questions@freefall.cdrom.com
+
+Please send bug reports, and that sort of material to:
+
+ FreeBSD-bugs@freefall.cdrom.com
+
+If you'd like to help with this effort, and have an idea as to how
+you could be useful, send mail to:
+
+ FreeBSD-hackers@freefall.cdrom.com
+
+THANKS FOR USING THIS; that's what makes it all worthwhile.
+
+[a favor: Please avoid mailing huge documents or files to these mailing lists,
+ as they will end up in our personal mail spools. We will be
+ happy to make other arrangements]
+
+This is $Id: install_notes,v 1.11 1993/10/19 17:33:38 rgrimes Exp $
diff --git a/etc/etc.i386/kc.profile b/etc/etc.i386/kc.profile
new file mode 100644
index 000000000000..35028934290d
--- /dev/null
+++ b/etc/etc.i386/kc.profile
@@ -0,0 +1,83 @@
+# $Header
+#
+# rc for kernel distribution floppy
+
+PATH=/bin:/sbin
+export PATH
+
+reboot_it() {
+ echo ""
+ echo "halting the machine..."
+
+ halt
+ sync
+ sync
+ echo "Halt failed! Try power-cycling the machine..."
+ exit 1
+}
+
+bail_out() {
+ echo ""
+ echo "Time to reboot the machine!"
+ echo "Once the machine has halted (it'll tell you when),"
+ echo "remove the floppy from the disk drive and press"
+ echo "any key to reboot."
+ reboot_it
+}
+
+echo Enter '"copy"' at the prompt to copy the kernel on this
+echo floppy to your hard disk. enter anything else to reboot,
+echo but wait for the machine to restart to remove the floppy.
+echo ""
+echo -n "kc> "
+
+read todo
+
+if [ X"$todo" = Xcopy ]; then
+ echo ""
+ echo "What disk partition should the kernel be installed on?"
+ echo "(e.g., "wd0a", "sd0a", etc.)"
+ echo ""
+ echo -n "copy kernel to> "
+ while :; do
+ read diskpart junk
+ [ -c /dev/r$diskpart ] && break
+ echo "${diskpart}: invalid partition"
+ echo
+ echo -n "copy kernel to> "
+ done
+ echo ""
+ echo "Checking the filesystem on $diskpart..."
+ fsck -y /dev/r$diskpart
+ if [ $? -ne 0 ]; then
+ echo ""
+ echo "fsck failed... Sorry, can't copy kernel..."
+ bail_out
+ fi
+ echo ""
+ echo "mounting $diskpart on /mnt..."
+ mount /dev/$diskpart /mnt
+ if [ $? -ne 0 ]; then
+ echo ""
+ echo "mount failed... Sorry, can't copy kernel..."
+ bail_out
+ fi
+ echo ""
+ echo "Please wait. Copying kernel..."
+ cp /386bsd /mnt/386bsd
+ if [ $? -ne 0 ]; then
+ echo ""
+ echo "Copy failed... (?!?!?!)"
+ bail_out
+ fi
+ echo ""
+ echo "unmounting $diskpart..."
+ umount /mnt > /dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo ""
+ echo "unmount failed... Shouldn't be a problem..."
+ fi
+ bail_out
+fi
+
+reboot_it
diff --git a/etc/ftpusers b/etc/ftpusers
new file mode 100644
index 000000000000..d23c64ac3a57
--- /dev/null
+++ b/etc/ftpusers
@@ -0,0 +1,4 @@
+# list of users disallowed any ftp access.
+# read by ftpd(8).
+root
+uucp
diff --git a/etc/gettytab b/etc/gettytab
new file mode 100644
index 000000000000..29eb925ff748
--- /dev/null
+++ b/etc/gettytab
@@ -0,0 +1,173 @@
+# from: @(#)gettytab 5.14 (Berkeley) 3/27/91
+#
+# Most of the table entries here are just copies of the old getty table,
+# it is by no means certain, or even likely, that any of them are optimal
+# for any purpose whatever. Nor is it likely that more than a couple are
+# even correct.
+#
+# The default gettytab entry, used to set defaults for all other
+# entries, and in cases where getty is called with no table name
+#
+# cb, ce and ck are desirable on most crt's. The non-crt entries need to
+# be changed to turn them off (ce@:ce@:ck@:).
+#
+# Parity defaults to even. There ought to be more alternative entries with
+# no parity. The Pc entry already has no parity.. The different parities
+# are:
+# (none): same as even except -inpck instead of inpck for login.
+# ep: getty will use raw mode (cs8 -parenb) (unless rw is set) and
+# fake parity. login will use even parity (cs7 parenb -parodd).
+# op: same as ep except odd parity (cs7 parenb parodd) for login.
+# op overrides ep.
+# ap: same as ep except -inpck instead of inpck for login.
+# ap overrides op and ep.
+# np: 1. don't fake parity in getty. The fake parity garbles
+# characters on non-terminals (like pccons) that don't
+# support parity. It would probably better for getty not to
+# try to fake parity. It could just use cbreak mode so as
+# as not to force cs8 and let the hardware handle the parity.
+# login has to be rely on the hardware anyway.
+# 2. set PASS8, giving cs8 -parenb -istrip -inpck.
+# np:ep: same as np except inpck.
+# np:op: same as np:ep except for parodd (but parodd is overridden).
+# np:ap: same as np except istrip.
+#
+default:\
+ :cb:ce:ck:fd#1000:im=\r\n FreeBSD (%h) (%t)\r\n\r\n:sp#1200:
+
+#
+# Fixed speed entries
+#
+# The "std.NNN" names are known to the special case
+# portselector code in getty, however they can
+# be assigned to any table desired.
+# The "NNN-baud" names are known to the special case
+# autobaud code in getty, and likewise can
+# be assigned to any table desired (hopefully the same speed).
+#
+a|std.110|110-baud:\
+ :nd#1:cd#1:uc:sp#110:
+b|std.134|134.5-baud:\
+ :ep:nd#1:cd#2:ff#1:td#1:sp#134:ht:nl:
+1|std.150|150-baud:\
+ :ep:nd#1:cd#2:td#1:fd#1:sp#150:ht:nl:lm=\E\72\6\6\17login\72 :
+c|std.300|300-baud:\
+ :nd#1:cd#1:sp#300:
+d|std.600|600-baud:\
+ :nd#1:cd#1:sp#600:
+f|std.1200|1200-baud:\
+ :fd#1:sp#1200:
+6|std.2400|2400-baud:\
+ :sp#2400:
+7|std.4800|4800-baud:\
+ :sp#4800:
+2|std.9600|9600-baud:\
+ :sp#9600:
+g|std.19200|19200-baud:\
+ :sp#19200:
+std.38400|38400-baud:\
+ :sp#38400:
+std.57600|57600-baud:\
+ :sp#57600:
+std.115200|115200-baud:\
+ :sp#115200:
+
+#
+# Dial in rotary tables, speed selection via 'break'
+#
+0|d300|Dial-300:\
+ :nx=d1200:cd#2:sp#300:
+d1200|Dial-1200:\
+ :nx=d150:fd#1:sp#1200:
+d150|Dial-150:\
+ :nx=d110:lm@:tc=150-baud:
+d110|Dial-110:\
+ :nx=d300:tc=300-baud:
+
+#
+# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
+#
+D2400|d2400|Fast-Dial-2400:\
+ :nx=D1200:tc=2400-baud:
+3|D1200|Fast-Dial-1200:\
+ :nx=D300:tc=1200-baud:
+5|D300|Fast-Dial-300:\
+ :nx=D2400:tc=300-baud:
+
+#
+#telebit (19200)
+#
+t19200:\
+ :nx=t2400:tc=19200-baud:
+t2400:\
+ :nx=t1200:tc=2400-baud:
+t1200:\
+ :nx=t19200:tc=1200-baud:
+
+#
+#telebit (9600)
+#
+t9600:\
+ :nx=t2400a:tc=9600-baud:
+t2400a:\
+ :nx=t1200a:tc=2400-baud:
+t1200a:\
+ :nx=t9600:tc=1200-baud:
+
+#
+# Odd special case terminals
+#
+-|tty33|asr33|Pity the poor user of this beast:\
+ :tc=110-baud:
+
+4|Console|Console Decwriter II:\
+ :nd@:cd@:rw:tc=300-baud:
+
+e|Console-1200|Console Decwriter III:\
+ :fd@:nd@:cd@:rw:tc=1200-baud:
+
+i|Interdata console:\
+ :uc:sp#0:
+
+l|lsi chess terminal:\
+ :sp#300:
+
+X|Xwindow|X window system:\
+ :fd@:nd@:cd@:rw:sp#9600:
+
+P|Pc|Pc console:\
+ :np:sp#115200:
+
+#
+# Wierdo special case for fast crt's with hardcopy devices
+#
+8|T9600|CRT with hardcopy:\
+ :nx=T300:tc=9600-baud:
+9|T300|CRT with hardcopy (300):\
+ :nx=T9600:tc=300-baud:
+
+#
+# Plugboard, and misc other terminals
+#
+plug-9600|Plugboard-9600:\
+ :pf#1:tc=9600-baud:
+p|P9600|Plugboard-9600-rotary:\
+ :pf#1:nx=P300:tc=9600-baud:
+q|P300|Plugboard-300:\
+ :pf#1:nx=P1200:tc=300-baud:
+r|P1200|Plugboard-1200:\
+ :pf#1:nx=P9600:tc=1200-baud:
+
+#
+# XXXX Port selector
+#
+s|DSW|Port Selector:\
+ :ps:sp#2400:
+
+#
+# Auto-baud speed detect entry for Micom 600.
+# Special code in getty will switch this out
+# to one of the NNN-baud entries.
+#
+A|Auto-baud:\
+ :ab:sp#2400:f0#040:
diff --git a/etc/group b/etc/group
new file mode 100644
index 000000000000..900aff8a60aa
--- /dev/null
+++ b/etc/group
@@ -0,0 +1,15 @@
+wheel:*:0:root
+daemon:*:1:daemon
+kmem:*:2:root
+sys:*:3:root
+tty:*:4:root
+operator:*:5:root
+bin:*:7:
+news:*:8:
+games:*:13:
+staff:*:20:root
+guest:*:31:root
+nobody:*:39:
+ingres:*:74:ingres
+dialer:*:117
+nogroup:*:32766:
diff --git a/etc/host.conf b/etc/host.conf
new file mode 100644
index 000000000000..bda52547860f
--- /dev/null
+++ b/etc/host.conf
@@ -0,0 +1,4 @@
+# Default is to use the nameserver first
+bind
+# If that doesn't work, then try the /etc/hosts file
+hosts
diff --git a/etc/hosts b/etc/hosts
new file mode 100644
index 000000000000..29402c5849e9
--- /dev/null
+++ b/etc/hosts
@@ -0,0 +1,13 @@
+#
+# Host Database
+# This file should contain the addresses and aliases
+# for local hosts that share this file.
+# It is used only for "ifconfig" and other operations
+# before the nameserver is started.
+#
+#
+127.1 localhost localhost.my.domain
+#
+# Imaginary network.
+0.2 myname.my.domain myname
+0.3 myfriend.my.domain myfriend
diff --git a/etc/hosts.equiv b/etc/hosts.equiv
new file mode 100644
index 000000000000..f6efd09ac550
--- /dev/null
+++ b/etc/hosts.equiv
@@ -0,0 +1,2 @@
+localhost
+my_very_good_friend.domain
diff --git a/etc/hosts.lpd b/etc/hosts.lpd
new file mode 100644
index 000000000000..1be6dadac28d
--- /dev/null
+++ b/etc/hosts.lpd
@@ -0,0 +1 @@
+machine.domain
diff --git a/etc/inetd.conf b/etc/inetd.conf
new file mode 100644
index 000000000000..be1bf69e9240
--- /dev/null
+++ b/etc/inetd.conf
@@ -0,0 +1,41 @@
+#
+# Internet server configuration database
+#
+# @(#)inetd.conf 5.4 (Berkeley) 6/30/90
+#
+ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
+telnet stream tcp nowait root /usr/libexec/telnetd telnetd
+shell stream tcp nowait root /usr/libexec/rshd rshd
+login stream tcp nowait root /usr/libexec/rlogind rlogind
+exec stream tcp nowait root /usr/libexec/rexecd rexecd
+#uucpd stream tcp nowait root /usr/libexec/uucpd uucpd
+#nntp stream tcp nowait usenet /usr/libexec/nntpd nntpd
+finger stream tcp nowait nobody /usr/libexec/fingerd fingerd
+#tftp dgram udp wait nobody /usr/libexec/tftpd tftpd
+comsat dgram udp wait root /usr/libexec/comsat comsat
+#talk dgram udp wait root /usr/old/talkd talkd
+ntalk dgram udp wait root /usr/libexec/ntalkd ntalkd
+echo stream tcp nowait root internal
+discard stream tcp nowait root internal
+chargen stream tcp nowait root internal
+daytime stream tcp nowait root internal
+time stream tcp nowait root internal
+echo dgram udp wait root internal
+discard dgram udp wait root internal
+chargen dgram udp wait root internal
+daytime dgram udp wait root internal
+time dgram udp wait root internal
+# Kerberos authenticated services
+klogin stream tcp nowait root /usr/libexec/rlogind rlogind -k
+eklogin stream tcp nowait root /usr/libexec/rlogind rlogind -k -x
+kshell stream tcp nowait root /usr/libexec/rshd rshd -k
+# Services run ONLY on the Kerberos server
+#krbupdate stream tcp nowait root /usr/libexec/registerd registerd
+#kpasswd stream tcp nowait root /usr/libexec/kpasswdd kpasswdd
+#
+# RPC based services
+# You MUST have portmapper running to use these!
+#mountd/1 dgram rpc/udp wait root /sbin/mountd mountd
+#rstatd/1-3 dgram rpc/udp wait root /usr/libexec/rpc.rstatd rpc.rstatd
+#rusersd/1-2 dgram rpc/udp wait root /usr/libexec/rpc.rusersd rpc.rusersd
+#walld/1 dgram rpc/udp wait root /usr/libexec/rpc.rwalld rpc.rwalld
diff --git a/etc/master.passwd b/etc/master.passwd
new file mode 100644
index 000000000000..3188ec6b8936
--- /dev/null
+++ b/etc/master.passwd
@@ -0,0 +1,10 @@
+root::0:0::0:0:Charlie &:/root:/bin/csh
+toor::0:0::0:0:Bourne-again Superuser:/root:
+daemon:*:1:31::0:0:The devil himself:/root:
+operator:*:2:20::0:0:System &:/usr/guest/operator:/bin/csh
+bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/dev/null
+games:*:7:13::0:0:Games pseudo-user:/usr/games:
+uucp:*:66:1::0:0:UNIX-to-UNIX Copy:/var/spool/uucppublic:/usr/libexec/uucp/uucico
+ingres:*:267:74::0:0:& Group:/usr/ingres:/bin/csh
+falcon:*:32766:31::0:0:Prof. Steven &:/usr/games:/usr/games/wargames
+nobody:*:32767:9999::0:0:Unprivileged user:/nonexistent:/dev/null
diff --git a/etc/monthly b/etc/monthly
new file mode 100644
index 000000000000..8f026d6086c7
--- /dev/null
+++ b/etc/monthly
@@ -0,0 +1,27 @@
+#!/bin/sh -
+#
+# @(#)monthly 5.5 (Berkeley) 6/17/91
+#
+
+host=`hostname -s`
+echo "Subject: $host monthly run output"
+
+# echo ""
+# echo "Doing login accounting:"
+# ac -p | sort -nr +1
+
+echo ""
+echo -n "Rotating log files:"
+cd /var/log
+for i in kerberos.log lpd-errs wtmp; do
+ echo -n " $i"
+ if [ -f $i.5 ]; then mv -f $i.5 $i.6; fi
+ if [ -f $i.4 ]; then mv -f $i.4 $i.5; fi
+ if [ -f $i.3 ]; then mv -f $i.3 $i.4; fi
+ if [ -f $i.2 ]; then mv -f $i.2 $i.3; fi
+ if [ -f $i.1 ]; then mv -f $i.1 $i.2; fi
+ if [ -f $i.0 ]; then mv -f $i.0 $i.1; fi
+ if [ -f $i ]; then mv -f $i $i.0; fi
+ >$i
+done
+echo ""
diff --git a/etc/motd b/etc/motd
new file mode 100644
index 000000000000..776706f36207
--- /dev/null
+++ b/etc/motd
@@ -0,0 +1,4 @@
+FreeBSD ?.?.? (UNKNOWN)
+
+Welcome to FreeBSD!
+
diff --git a/etc/mtree/BSD.local.dist b/etc/mtree/BSD.local.dist
new file mode 100644
index 000000000000..1f3bd4fc0926
--- /dev/null
+++ b/etc/mtree/BSD.local.dist
@@ -0,0 +1,55 @@
+# fs: /usr/local
+# by: rgrimes
+# date: Sun Aug 29 22:56:32 PDT 1993
+#
+
+/set type=file uname=bin gname=bin mode=0755
+bin type=dir uname=bin gname=bin mode=0755
+..
+
+etc type=dir uname=bin gname=bin mode=0755
+..
+
+info type=dir uname=bin gname=bin mode=0755
+..
+
+lib type=dir uname=bin gname=bin mode=0755
+..
+
+man type=dir uname=bin gname=bin mode=0755
+ cat1 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat2 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat3 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat4 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat5 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat6 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat7 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat8 type=dir uname=bin gname=bin mode=0755
+ ..
+ catl type=dir uname=bin gname=bin mode=0755
+ ..
+ man1 type=dir uname=bin gname=bin mode=0755
+ ..
+ man2 type=dir uname=bin gname=bin mode=0755
+ ..
+ man3 type=dir uname=bin gname=bin mode=0755
+ ..
+ man4 type=dir uname=bin gname=bin mode=0755
+ ..
+ man5 type=dir uname=bin gname=bin mode=0755
+ ..
+ man6 type=dir uname=bin gname=bin mode=0755
+ ..
+ man7 type=dir uname=bin gname=bin mode=0755
+ ..
+ man8 type=dir uname=bin gname=bin mode=0755
+ ..
+ manl type=dir uname=bin gname=bin mode=0755
+..
diff --git a/etc/mtree/BSD.root.dist b/etc/mtree/BSD.root.dist
new file mode 100644
index 000000000000..9f9aff7a26ac
--- /dev/null
+++ b/etc/mtree/BSD.root.dist
@@ -0,0 +1,47 @@
+# fs: /
+# by: rgrimes
+# date: Fri Jul 16 22:24:17 1993
+#
+
+# top-level files are owned by root.wheel
+# (else too easy to get root by compromising these)
+
+/set type=file uname=root gname=wheel mode=0775
+
+sys type=link size=12 link=usr/src/sys
+
+dev type=dir
+ fd type=dir uname=bin gname=bin mode=555
+ ..
+..
+
+etc type=dir
+ mtree type=dir
+ ..
+ namedb type=dir
+ ..
+ uucp type=dir uname=root gname=wheel mode=755
+ ..
+..
+
+mnt type=dir
+..
+
+root type=dir
+..
+
+tmp type=dir uname=bin gname=bin mode=01777
+..
+
+usr type=dir
+..
+
+var type=dir
+..
+
+# binary directories:
+/set uname=bin gname=bin mode=0755
+bin type=dir
+..
+sbin type=dir
+..
diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist
new file mode 100644
index 000000000000..5c174538138d
--- /dev/null
+++ b/etc/mtree/BSD.usr.dist
@@ -0,0 +1,157 @@
+# fs: /usr
+# by: rgrimes
+# date: Sun Aug 29 22:56:32 PDT 1993
+#
+
+/set type=file uname=bin gname=bin mode=0755
+bin type=dir uname=bin gname=bin mode=0755
+..
+
+/set type=file uname=games gname=bin mode=0700
+games type=dir uname=bin gname=bin mode=0755
+ hide type=dir uname=games gname=bin mode=0700
+ ..
+..
+
+/set type=file uname=bin gname=bin mode=0755
+include type=dir uname=bin gname=bin mode=0755
+ g++ type=dir uname=bin gname=bin mode=0755
+ sys type=dir uname=bin gname=bin mode=0755
+ ..
+ ..
+ rpc type=dir uname=bin gname=bin mode=0755
+ ..
+..
+
+/set type=file uname=bin gname=bin mode=0755
+lib type=dir uname=bin gname=bin mode=0755
+..
+
+/set type=file uname=bin gname=bin mode=0755
+libexec type=dir uname=bin gname=bin mode=0755
+ lpr type=dir uname=bin gname=bin mode=0755
+ ..
+ uucp type=dir uname=bin gname=bin mode=0755
+ ..
+..
+
+local type=dir uname=bin gname=bin mode=0755
+..
+
+mdec type=dir uname=bin gname=bin mode=0755
+..
+
+obj type=dir uname=bin gname=bin mode=0755
+..
+
+sbin type=dir uname=bin gname=bin mode=0755
+..
+
+share type=dir uname=bin gname=bin mode=0755
+ calendar type=dir uname=bin gname=bin mode=0755
+ ..
+
+ dict type=dir uname=bin gname=bin mode=0755
+ ..
+
+ /set type=file uname=games gname=bin mode=0755
+ games type=dir uname=bin
+ atc type=dir uname=games gname=bin mode=0755
+ ..
+ fortune type=dir uname=games gname=bin mode=0755
+ ..
+ larn type=dir uname=games gname=bin mode=0755
+ ..
+ ..
+
+ groff_font type=dir uname=bin gname=bin mode=0755
+ ..
+
+ /set type=file uname=bin gname=bin mode=0755
+ man type=dir uname=bin gname=bin mode=0755
+ cat1 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat2 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat3 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat4 type=dir uname=bin gname=bin mode=0755
+ i386 type=dir uname=bin gname=bin mode=0755
+ ..
+ ..
+ cat5 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat6 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat7 type=dir uname=bin gname=bin mode=0755
+ ..
+ cat8 type=dir uname=bin gname=bin mode=0755
+ i386 type=dir uname=bin gname=bin mode=0755
+ ..
+ ..
+ man1 type=dir uname=bin gname=bin mode=0755
+ ..
+ man2 type=dir uname=bin gname=bin mode=0755
+ ..
+ man3 type=dir uname=bin gname=bin mode=0755
+ ..
+ man4 type=dir uname=bin gname=bin mode=0755
+ i386 type=dir uname=bin gname=bin mode=0755
+ ..
+ ..
+ man5 type=dir uname=bin gname=bin mode=0755
+ ..
+ man6 type=dir uname=bin gname=bin mode=0755
+ ..
+ man7 type=dir uname=bin gname=bin mode=0755
+ ..
+ man8 type=dir uname=bin gname=bin mode=0755
+ i386 type=dir uname=bin gname=bin mode=0755
+ ..
+ ..
+ ..
+ me type=dir uname=bin gname=bin mode=0755
+ ..
+ misc type=dir uname=bin gname=bin mode=0755
+ fonts type=dir uname=bin gname=bin mode=0755
+ ..
+ ..
+ mk type=dir uname=bin gname=bin mode=0755
+ ..
+ skel type=dir uname=bin gname=bin mode=0755
+ ..
+ syscons type=dir uname=bin gname=bin mode=0755
+ fonts type=dir uname=bin gname=bin mode=0755
+ ..
+ keymaps type=dir uname=bin gname=bin mode=0755
+ ..
+ scrnmaps type=dir uname=bin gname=bin mode=0755
+ ..
+ ..
+ tabset type=dir uname=bin gname=bin mode=0755
+ ..
+ tmac type=dir uname=bin gname=bin mode=0755
+ ..
+ zoneinfo type=dir uname=bin gname=bin mode=0755
+ Australia type=dir uname=bin gname=bin mode=0555
+ ..
+ Brazil type=dir uname=bin gname=bin mode=0555
+ ..
+ Canada type=dir uname=bin gname=bin mode=0555
+ ..
+ Chile type=dir uname=bin gname=bin mode=0555
+ ..
+ Mexico type=dir uname=bin gname=bin mode=0555
+ ..
+ SystemV type=dir uname=bin gname=bin mode=0555
+ ..
+ US type=dir uname=bin gname=bin mode=0555
+ ..
+ posix type=dir uname=bin gname=bin mode=0555
+ ..
+ right type=dir uname=bin gname=bin mode=0555
+ ..
+ ..
+..
+src type=dir uname=bin gname=bin mode=0755
+..
diff --git a/etc/mtree/BSD.var.dist b/etc/mtree/BSD.var.dist
new file mode 100644
index 000000000000..10b01b9db3ec
--- /dev/null
+++ b/etc/mtree/BSD.var.dist
@@ -0,0 +1,63 @@
+# fs: /
+# by: rgrimes
+# date: Fri Jul 16 22:24:17 1993
+#
+
+/set type=dir uname=bin gname=bin mode=0755
+backups
+..
+crash
+..
+cron
+ tabs uname=root gname=wheel mode=0700
+ ..
+..
+db
+..
+log
+..
+mail
+..
+msgs
+..
+preserve
+..
+run
+..
+rwho
+..
+spool
+ /set type=dir uname=bin gname=daemon mode=0755
+ lock uname=uucp
+ ..
+ lpd
+ ..
+ mqueue uname=root gname=daemon
+ ..
+ output
+ ..
+ /set type=dir uname=uucp gname=daemon mode=0755
+ uucp
+ .Preserve
+ ..
+ .Sequence
+ ..
+ .Status
+ ..
+ .Temp
+ ..
+ .Xqtdir
+ ..
+ ..
+ uucppublic
+ ..
+..
+/set type=dir uname=bin gname=bin mode=0755
+tmp mode=01777
+..
+
+/set type=file uname=games gname=bin mode=0755
+games type=dir
+ hackdir type=dir
+ ..
+..
diff --git a/etc/myname b/etc/myname
new file mode 100644
index 000000000000..a0d6cce38a33
--- /dev/null
+++ b/etc/myname
@@ -0,0 +1 @@
+myname.my.domain
diff --git a/etc/namedb/localhost.rev b/etc/namedb/localhost.rev
new file mode 100644
index 000000000000..d6e59658d28b
--- /dev/null
+++ b/etc/namedb/localhost.rev
@@ -0,0 +1,10 @@
+; @(#)localhost.rev 5.1 (Berkeley) 6/30/90
+
+@ IN SOA ucbvax.Berkeley.EDU. rwh.ucbvax.Berkeley.EDU. (
+ 1.4 ; Serial
+ 3600 ; Refresh
+ 300 ; Retry
+ 3600000 ; Expire
+ 3600 ) ; Minimum
+ IN NS ucbvax.Berkeley.EDU.
+1 IN PTR localhost.Berkeley.EDU.
diff --git a/etc/namedb/named.boot b/etc/namedb/named.boot
new file mode 100644
index 000000000000..93db30859e22
--- /dev/null
+++ b/etc/namedb/named.boot
@@ -0,0 +1,21 @@
+; @(#)named.boot 5.1 (Berkeley) 6/30/90
+
+; boot file for secondary name server
+; Note that there should be one primary entry for each SOA record.
+
+sortlist 128.3.0.0
+
+directory /etc/namedb
+
+; type domain source host/file backup file
+
+cache . root.cache
+primary 0.0.127.IN-ADDR.ARPA localhost.rev
+
+; example secondary server config:
+; secondary Berkeley.EDU 128.32.130.11 128.32.133.1 ucbhosts.bak
+; secondary 32.128.IN-ADDR.ARPA 128.32.130.11 128.32.133.1 ucbhosts.rev.bak
+
+; example primary server config:
+; primary Berkeley.EDU ucbhosts
+; primary 32.128.IN-ADDR.ARPA ucbhosts.rev
diff --git a/etc/namedb/root.cache b/etc/namedb/root.cache
new file mode 100644
index 000000000000..d24fa4549c42
--- /dev/null
+++ b/etc/namedb/root.cache
@@ -0,0 +1,22 @@
+; @(#)root.cache 5.1 (Berkeley) 6/30/90
+
+; Initial cache data for root domain servers.
+. IN NS NS.NIC.DDN.MIL.
+ IN NS A.ISI.EDU.
+ IN NS AOS.BRL.MIL.
+ IN NS C.NYSER.NET.
+ IN NS GUNTER-ADAM.AF.MIL.
+ IN NS NS.NASA.GOV.
+ IN NS TERP.UMD.EDU.
+
+; Prep the cache (hotwire the addresses). Order does not matter.
+NS.NIC.DDN.MIL IN A 192.67.67.53
+A.ISI.EDU IN A 26.3.0.103
+ IN A 128.9.0.107
+AOS.BRL.MIL IN A 128.20.1.2
+ IN A 192.5.25.82
+C.NYSER.NET. IN A 192.33.4.12
+GUNTER-ADAM.AF.MIL. IN A 26.1.0.13
+NS.NASA.GOV. IN A 128.102.16.10
+ IN A 192.52.195.10
+TERP.UMD.EDU. IN A 128.8.10.90
diff --git a/etc/netstart b/etc/netstart
new file mode 100644
index 000000000000..36c5df3c9db0
--- /dev/null
+++ b/etc/netstart
@@ -0,0 +1,29 @@
+#!/bin/sh -
+#
+# @(#)netstart 5.9 (Berkeley) 3/30/91
+
+routedflags=-q
+timedflags=NO
+rwhod=NO
+#kerberos_server=YES
+#nfs_server=YES
+#name_server=YES
+#gated=YES
+
+# my-name is my symbolic name
+# my-netmask is specified in /etc/networks
+#
+hostname=`cat /etc/myname`
+hostname $hostname
+
+# ifconfig we0 inet $hostname netmask 447-ether
+# ifconfig ne0 inet $hostname netmask my-netmask
+# ifconfig ec0 inet $hostname netmask my-netmask
+# ifconfig is0 inet $hostname netmask my-netmask
+# ifconfig ed0 inet $hostname netmask my-netmask
+
+# set the address for the loopback interface
+ifconfig lo0 inet localhost
+
+# use loopback, not the wire
+# route add $hostname localhost
diff --git a/etc/networks b/etc/networks
new file mode 100644
index 000000000000..71aeb5b05a53
--- /dev/null
+++ b/etc/networks
@@ -0,0 +1,16 @@
+# @(#)networks 5.1 (Berkeley) 6/30/90
+#
+# Your Local Networks Database
+#
+your-net 127 # your comment
+your-netmask 255.255.255 # subnet mask for your-net
+
+#
+# Your subnets
+#
+subnet1 127.0.1 alias1 # comment 1
+subnet2 127.0.2 alias2 # comment 2
+
+#
+# Internet networks (from nic.ddn.mil)
+#
diff --git a/etc/phones b/etc/phones
new file mode 100644
index 000000000000..b18806b83389
--- /dev/null
+++ b/etc/phones
@@ -0,0 +1,11 @@
+# @(#)phones 5.2 (Berkeley) 6/30/90
+#
+# phones -- remote host phone number data base
+# see tip(1), phones(5)
+# [tip cannot currently accept comments in this file,
+# so this and the above lines must be removed.]
+system1 9=3156427750
+system2 9148841241
+netcom 1(408)241-9760
+netcom 1(415)328-9940
+omen 1(503)621-3746
diff --git a/etc/printcap b/etc/printcap
new file mode 100644
index 000000000000..06791f85fc6c
--- /dev/null
+++ b/etc/printcap
@@ -0,0 +1,4 @@
+# @(#)printcap 5.3 (Berkeley) 6/30/90
+
+#lp|local line printer:\
+# :lp=/dev/lp:sd=/var/spool/lpd:lf=/var/log/lpd-errs:
diff --git a/etc/protocols b/etc/protocols
new file mode 100644
index 000000000000..8db17cf5d585
--- /dev/null
+++ b/etc/protocols
@@ -0,0 +1,15 @@
+#
+# Internet (IP) protocols
+#
+# @(#)protocols 5.1 (Berkeley) 4/17/89
+#
+ip 0 IP # internet protocol, pseudo protocol number
+icmp 1 ICMP # internet control message protocol
+ggp 3 GGP # gateway-gateway protocol
+tcp 6 TCP # transmission control protocol
+egp 8 EGP # exterior gateway protocol
+pup 12 PUP # PARC universal packet protocol
+udp 17 UDP # user datagram protocol
+hmp 20 HMP # host monitoring protocol
+xns-idp 22 XNS-IDP # Xerox NS IDP
+rdp 27 RDP # "reliable datagram" protocol
diff --git a/etc/rc b/etc/rc
new file mode 100644
index 000000000000..85715719de71
--- /dev/null
+++ b/etc/rc
@@ -0,0 +1,170 @@
+# @(#)rc 5.27 (Berkeley) 6/5/91
+
+# System startup script run by init on autoboot
+# or after single-user.
+# Output and error are redirected to console by init,
+# and the console is the controlling terminal.
+
+stty status '^T'
+
+# Set shell to ignore SIGINT (2), but not children;
+# shell catches SIGQUIT (3) and returns to single user after fsck.
+trap : 2
+trap : 3 # shouldn't be needed
+
+HOME=/; export HOME
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+export PATH
+
+if [ -e /fastboot ]
+then
+ echo Fast boot ... skipping disk checks
+elif [ $1x = autobootx ]
+then
+ echo Automatic reboot in progress...
+ fsck -p
+ case $? in
+ 0)
+ ;;
+ 2)
+ exit 1
+ ;;
+ 4)
+ reboot
+ echo "reboot failed... help!"
+ exit 1
+ ;;
+ 8)
+ echo "Automatic file system check failed... help!"
+ exit 1
+ ;;
+ 12)
+ echo "Reboot interrupted"
+ exit 1
+ ;;
+ 130)
+ # interrupt before catcher installed
+ exit 1
+ ;;
+ *)
+ echo "Unknown error in reboot"
+ exit 1
+ ;;
+ esac
+fi
+
+trap "echo 'Reboot interrupted'; exit 1" 3
+
+swapon -a
+
+umount -a >/dev/null 2>&1
+mount -a -t nonfs
+rm -f /fastboot # XXX (root now writeable)
+
+# set hostname, turn on network
+echo 'starting network'
+. /etc/netstart
+
+mount -a -t nfs >/dev/null 2>&1 & # XXX shouldn't need background
+
+# clean up left-over files
+rm -f /etc/nologin
+rm -f /var/spool/uucp/LCK.*
+rm -f /var/spool/uucp/STST/*
+(cd /var/run && { rm -rf -- *; cp /dev/null utmp; chmod 644 utmp; })
+
+echo -n 'starting system logger'
+rm -f /dev/log
+syslogd
+
+# $timedflags is imported from /etc/netstart;
+# if $timedflags == NO, timed isn't run.
+if [ X${timedflags} != X"NO" ]; then
+ echo -n ', time daemon'; timed $timedflags
+fi
+echo '.'
+
+# /var/crash should be a directory or a symbolic link
+# to the crash directory if core dumps are to be saved.
+if [ -d /var/crash ]; then
+ echo checking for core dump...
+ savecore /var/crash
+fi
+
+# echo -n 'checking quotas:'
+#quotacheck -a
+# echo ' done.'
+#quotaon -a
+
+# build ps databases
+kvm_mkdb /386bsd
+dev_mkdb
+
+chmod 666 /dev/tty[pqrs]*
+
+# check the password temp/lock file
+if [ -f /etc/ptmp ]
+then
+ logger -s -p auth.err \
+ 'password file may be incorrect -- /etc/ptmp exists'
+fi
+
+echo preserving editor files
+(cd /var/tmp && /usr/libexec/elvispreserve "-the system rebooted" elvis* &&
+ rm -f elvis[0-9a-f][0-9a-f][0-9a-f][0-9a-f]* \
+ elvis_[0-9a-f][0-9a-f][0-9a-f][0-9a-f]*)
+
+echo clearing /tmp
+
+# prune quickly with one rm, then use find to clean up /tmp/[lq]*
+# (not needed with mfs /tmp, but doesn't hurt there...)
+(cd /tmp && rm -rf [a-km-pr-zA-Z]* &&
+ find . ! -name . ! -name lost+found ! -name quotas -exec rm -rf -- {} \;)
+
+# echo 'turning on accounting'; accton /var/account/acct
+
+echo -n standard daemons:
+echo -n ' update'; update
+echo -n ' crond'; /usr/libexec/crond
+echo '.'
+
+echo -n starting network daemons:
+
+# $gated and $routedflags are imported from /etc/netstart.
+# If $gated == YES, gated is used; otherwise routed.
+# If $routedflags == NO, routed isn't run.
+if [ X${gated} = X"YES" -a -r /etc/gated.conf ]; then
+ echo -n ' gated'; gated $gatedflags
+elif [ X${routedflags} != X"NO" ]; then
+ echo -n ' routed'; routed $routedflags
+fi
+
+if [ X${name_server} = X"YES" -a -r /etc/named.boot ]; then
+ echo -n ' named'; named
+fi
+
+# $rwhod is imported from /etc/netstart;
+# if $rwhod is set to something other than NO, rwhod is run.
+if [ ${rwhod-NO} != "NO" ]; then
+ echo -n ' rwhod'; rwhod
+fi
+
+echo -n ' printer'; lpd
+
+
+if [ X${nfs_server} = X"YES" -a -r /etc/exports ]; then
+ echo -n ' portmap'; portmap
+ echo -n ' mountd'; mountd
+ echo -n ' nfsd'; nfsd -u 0,0,4 -t 0,0
+ echo -n ' nfsiod'; nfsiod 4
+fi
+
+echo -n ' sendmail'; sendmail -bd -q30m
+echo -n ' inetd'; inetd
+echo '.'
+
+sh /etc/rc.local
+
+date
+
+exit 0
diff --git a/etc/rc.local b/etc/rc.local
new file mode 100644
index 000000000000..dbbd909a5b91
--- /dev/null
+++ b/etc/rc.local
@@ -0,0 +1,23 @@
+#
+# site-specific startup actions, daemons
+#
+# @(#)rc.local 5.4 (Berkeley) 12/14/90
+#
+
+T=/tmp/_motd
+rm -f $T
+uname -a > $T
+echo "" >> $T
+sed '1,/^$/d' < /etc/motd >> $T
+cp $T /etc/motd
+chmod 666 /etc/motd
+rm -f $T
+
+echo -n 'starting local daemons:'
+
+# Kerberos runs ONLY on the Kerberos server machine
+if [ X${kerberos_server} = X"YES" ]; then
+ echo -n ' kerberos'; kerberos >> /var/log/kerberos.log &
+fi
+
+echo '.'
diff --git a/etc/remote b/etc/remote
new file mode 100644
index 000000000000..0b5cc592f678
--- /dev/null
+++ b/etc/remote
@@ -0,0 +1,50 @@
+# @(#)remote 5.2 (Berkeley) 6/30/90
+#
+# remote -- remote host description file
+# see tip(1), remote(5)
+#
+# dv device to use for the tty
+# el EOL marks (default is NULL)
+# du make a call flag (dial up)
+# pn phone numbers (@ =>'s search phones file; possibly taken from
+# PHONES environment variable)
+# at ACU type
+# ie input EOF marks (default is NULL)
+# oe output EOF string (default is NULL)
+# cu call unit (default is dv)
+# br baud rate (defaults to 300)
+# fs frame size (default is BUFSIZ) -- used in buffering writes on
+# receive operations
+# tc to continue a capability
+
+# Systems definitions
+netcom|Netcom Unix Access:\
+ :pn=@:tc=unix1200:
+omen|Omen BBS:\
+ :pn=@:tc=dos1200:
+
+# UNIX system definitions
+unix1200|1200 Baud dial-out to another UNIX system:\
+ :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial1200:
+unix300|300 Baud dial-out to another UNIX system:\
+ :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial300:
+
+# DOS system definitions
+dos1200|1200 Baud dial-out to a DOS system:\
+ :el=^U^C^R^O^D^S^Q:ie=%$:oe=^Z:pa=none:tc=dial1200:
+
+# General dialer definitions used below
+#
+# COURIER switch settings:
+# switch: 1 2 3 4 5 6 7 8 9 10
+# setting: D U D U D D U D U U
+# Rackmount: U U D U D U D D U D
+#
+dial2400|2400 Baud Hayes attributes:\
+ :dv=/dev/tty00:br#2400:cu=/dev/tty00:at=hayes:du:
+dial1200|1200 Baud Hayes attributes:\
+ :dv=/dev/tty00:br#1200:cu=/dev/tty00:at=hayes:du:
+
+# Hardwired line
+tty00b|tty0b:dv=/dev/tty00:br#2400
+tty00c|tty0c:dv=/dev/tty00:br#9600
diff --git a/etc/root/dot.cshrc b/etc/root/dot.cshrc
new file mode 100644
index 000000000000..d6f049569f53
--- /dev/null
+++ b/etc/root/dot.cshrc
@@ -0,0 +1,25 @@
+alias mail Mail
+set history=1000
+set path=(/sbin /usr/sbin /bin /usr/bin /usr/local/bin .)
+
+# directory stuff: cdpath/cd/back
+set cdpath=(/sys /usr/src/{bin,sbin,usr.{bin,sbin},lib,libexec,share,contrib,etc,games,gnu,include,})
+alias cd 'set old=$cwd; chdir \!*'
+alias h history
+alias j jobs -l
+alias ll ls -lg
+alias ls ls -g -k
+alias back 'set back=$old; set old=$cwd; cd $back; unset back; dirs'
+
+alias z suspend
+alias x exit
+alias pd pushd
+alias pd2 pushd +2
+alias pd3 pushd +3
+alias pd4 pushd +4
+alias tset 'set noglob histchars=""; eval `\tset -s \!*`; unset noglob histchars'
+
+if ($?prompt) then
+ set prompt="`hostname -s`# "
+endif
+setenv BLOCKSIZE K
diff --git a/etc/root/dot.klogin b/etc/root/dot.klogin
new file mode 100644
index 000000000000..8de6b57c626d
--- /dev/null
+++ b/etc/root/dot.klogin
@@ -0,0 +1,2 @@
+user1.root@your.realm.wherever
+user2.root@your.realm.wherever
diff --git a/etc/root/dot.login b/etc/root/dot.login
new file mode 100644
index 000000000000..424dce8653d6
--- /dev/null
+++ b/etc/root/dot.login
@@ -0,0 +1,4 @@
+tset -Q \?$TERM
+stty crt erase ^\?
+umask 2
+echo "Don't login as root, use su"
diff --git a/etc/root/dot.profile b/etc/root/dot.profile
new file mode 100644
index 000000000000..1479c6fba5d0
--- /dev/null
+++ b/etc/root/dot.profile
@@ -0,0 +1,7 @@
+PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:.
+echo 'erase ^?, kill ^U, intr ^C'
+stty crt erase  kill  intr 
+export PATH
+HOME=/root
+export HOME
+export TERM
diff --git a/etc/rpc b/etc/rpc
new file mode 100644
index 000000000000..0ce30ecc4ec2
--- /dev/null
+++ b/etc/rpc
@@ -0,0 +1,34 @@
+#
+# rpc 88/08/01 4.0 RPCSRC; from 1.12 88/02/07 SMI
+#
+portmapper 100000 portmap sunrpc
+rstatd 100001 rstat rstat_svc rup perfmeter
+rusersd 100002 rusers
+nfs 100003 nfsprog
+ypserv 100004 ypprog
+mountd 100005 mount showmount
+ypbind 100007
+walld 100008 rwall shutdown
+yppasswdd 100009 yppasswd
+etherstatd 100010 etherstat
+rquotad 100011 rquotaprog quota rquota
+sprayd 100012 spray
+3270_mapper 100013
+rje_mapper 100014
+selection_svc 100015 selnsvc
+database_svc 100016
+rexd 100017 rex
+alis 100018
+sched 100019
+llockmgr 100020
+nlockmgr 100021
+x25.inr 100022
+statmon 100023
+status 100024
+bootparam 100026
+ypupdated 100028 ypupdate
+keyserv 100029 keyserver
+tfsd 100037
+nsed 100038
+nsemntd 100039
+pcnfsd 150001 pcnfs
diff --git a/etc/security b/etc/security
new file mode 100644
index 000000000000..c06e54faee36
--- /dev/null
+++ b/etc/security
@@ -0,0 +1,52 @@
+#!/bin/sh -
+#
+# @(#)security 5.3 (Berkeley) 5/28/91
+# $Id: security,v 1.4 1993/10/25 20:13:16 rgrimes Exp $
+#
+PATH=/sbin:/bin:/usr/bin
+
+host=`hostname -s`
+echo "Subject: $host security check output"
+
+LOG=/var/log
+TMP=/tmp/_secure.$$
+
+umask 027
+
+echo "checking setuid files and devices:"
+
+# don't have ncheck, but this does the equivalent of the commented out block.
+# note that one of the original problem, the possibility of overrunning
+# the args to ls, is still here...
+#
+MP=`mount -t ufs | sed 's;/dev/;&r;' | awk '{ print $3 }'`
+set $MP
+ls -lgT `while test $# -ge 1; do
+ mount=$1
+ shift
+ find $mount -xdev -perm -u+s -or -perm -g+s | sort
+done` > $TMP
+
+#MP=`mount -t ufs | sed 's;/dev/;&r;' | awk '{ print $1 " " $3 }'`
+#set $MP
+#ls -lgT `while test $# -ge 2; do
+# device=$1
+# shift
+# mount=$1
+# shift
+# ncheck -s $device | sed -e "/:$/d" -e "/\/dev\//d" \
+# -e "s;[^/]*;$mount;" -e "s;//;/;g" | sort
+#done` > $TMP
+
+if cmp $LOG/setuid.today $TMP >/dev/null; then :; else
+ echo "$host setuid/device diffs:"
+ diff $LOG/setuid.today $TMP
+ mv $LOG/setuid.today $LOG/setuid.yesterday
+ mv $TMP $LOG/setuid.today
+fi
+rm -f $TMP
+
+echo ""
+echo ""
+echo "checking for uids of 0:"
+awk 'BEGIN {FS=":"} $3=="0" {print $1,$3}' /etc/master.passwd
diff --git a/etc/services b/etc/services
new file mode 100644
index 000000000000..cd7509f1bfcc
--- /dev/null
+++ b/etc/services
@@ -0,0 +1,82 @@
+#
+# Network services, Internet style
+#
+# @(#)services 5.8 (Berkeley) 5/9/91
+#
+echo 7/tcp
+echo 7/udp
+discard 9/tcp sink null
+discard 9/udp sink null
+systat 11/tcp users
+daytime 13/tcp
+daytime 13/udp
+netstat 15/tcp
+qotd 17/tcp quote
+chargen 19/tcp ttytst source
+chargen 19/udp ttytst source
+ftp 21/tcp
+telnet 23/tcp
+smtp 25/tcp mail
+time 37/tcp timserver
+time 37/udp timserver
+rlp 39/udp resource # resource location
+nameserver 42/tcp name # IEN 116
+whois 43/tcp nicname
+domain 53/tcp nameserver # name-domain server
+domain 53/udp nameserver
+mtp 57/tcp # deprecated
+# Bootp experimental (sellgren@vangogh)
+bootp 67/udp # bootp server
+#bootpc 68/udp # bootp client
+#
+tftp 69/udp
+rje 77/tcp netrjs
+finger 79/tcp
+link 87/tcp ttylink
+supdup 95/tcp
+hostnames 101/tcp hostname # usually from sri-nic
+tsap 102/tcp # part of ISODE.
+#csnet-cs 105/?
+pop 109/tcp postoffice
+sunrpc 111/tcp
+sunrpc 111/udp
+auth 113/tcp authentication
+sftp 115/tcp
+uucp-path 117/tcp
+nntp 119/tcp readnews untp # USENET News Transfer Protocol
+ntp 123/udp # Network Time Protocol
+snmp 161/udp
+snmp-trap 162/udp
+#
+# UNIX specific services
+#
+exec 512/tcp
+biff 512/udp comsat
+login 513/tcp
+who 513/udp whod
+shell 514/tcp cmd # no passwords used
+syslog 514/udp
+printer 515/tcp spooler # line printer spooler
+talk 517/udp
+ntalk 518/udp
+route 520/udp router routed
+timed 525/udp timeserver
+tempo 526/tcp newdate
+courier 530/tcp rpc
+conference 531/tcp chat
+netnews 532/tcp readnews
+netwall 533/udp # -for emergency broadcasts
+uucp 540/tcp uucpd # uucp daemon
+remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
+
+ingreslock 1524/tcp
+#
+# Kerberos (Project Athena/MIT) services
+#
+kerberos 750/udp kdc # Kerberos (server) udp
+kerberos 750/tcp kdc # Kerberos (server) tcp
+krbupdate 760/tcp kreg # Kerberos registration
+kpasswd 761/tcp kpwd # Kerberos "passwd"
+klogin 543/tcp # Kerberos rlogin
+eklogin 2105/tcp # Kerberos encrypted rlogin
+kshell 544/tcp krcmd # Kerberos remote shell
diff --git a/etc/shells b/etc/shells
new file mode 100644
index 000000000000..df377f133737
--- /dev/null
+++ b/etc/shells
@@ -0,0 +1,6 @@
+# List of acceptable shells for chpass(1).
+# Ftpd will not allow users to connect who are not using
+# one of these shells.
+
+/bin/sh
+/bin/csh
diff --git a/etc/syslog.conf b/etc/syslog.conf
new file mode 100644
index 000000000000..56f157692c0c
--- /dev/null
+++ b/etc/syslog.conf
@@ -0,0 +1,8 @@
+*.err;kern.debug;auth.notice;mail.crit /dev/console
+*.notice;kern.debug;lpr,auth.info;mail.crit /var/log/messages
+mail.info /var/log/maillog
+lpr.info /var/log/lpd-errs
+*.err root
+*.notice;auth.debug root
+*.alert root
+*.emerg *
diff --git a/etc/ttys b/etc/ttys
new file mode 100644
index 000000000000..dd243013c413
--- /dev/null
+++ b/etc/ttys
@@ -0,0 +1,42 @@
+#
+# @(#)ttys 5.1 (Berkeley) 4/17/89
+#
+# name getty type status comments
+#
+console "/usr/libexec/getty Pc" pc3 on secure
+tty00 "/usr/libexec/getty std.9600" unknown off secure
+tty01 "/usr/libexec/getty std.9600" unknown off secure
+tty02 "/usr/libexec/getty std.9600" unknown off secure
+tty03 "/usr/libexec/getty std.9600" unknown off secure
+ttyp0 none network
+ttyp1 none network
+ttyp2 none network
+ttyp3 none network
+ttyp4 none network
+ttyp5 none network
+ttyp6 none network
+ttyp7 none network
+ttyp8 none network
+ttyp9 none network
+ttypa none network
+ttypb none network
+ttypc none network
+ttypd none network
+ttype none network
+ttypf none network
+ttyq0 none network
+ttyq1 none network
+ttyq2 none network
+ttyq3 none network
+ttyq4 none network
+ttyq5 none network
+ttyq6 none network
+ttyq7 none network
+ttyq8 none network
+ttyq9 none network
+ttyqa none network
+ttyqb none network
+ttyqc none network
+ttyqd none network
+ttyqe none network
+ttyqf none network
diff --git a/etc/weekly b/etc/weekly
new file mode 100644
index 000000000000..42a32f993215
--- /dev/null
+++ b/etc/weekly
@@ -0,0 +1,59 @@
+#!/bin/sh -
+#
+# @(#)weekly 5.14 (Berkeley) 6/23/91
+#
+
+PATH=/bin:/sbin:/usr/sbin:/usr/bin:/usr/libexec
+export PATH
+
+host=`hostname -s`
+echo "Subject: $host weekly run output"
+
+#echo ""
+#echo "Removing old .o files:"
+#find /usr/src -name '*.o' -atime +21 -print -a -exec rm -f {} \;
+
+# see if /usr/src exists and is local
+# before looking there for checked-out files
+
+#if [ -d /usr/src -a \
+# X"`find -f /usr/src ! -fstype local -prune -or -type d -print -prune`" != X ];
+#then
+# echo "looking for checked out files:"
+# TDIR=/tmp/_checkout$$
+#
+# mkdir $TDIR
+# for file in `find -f /usr/src ! -fstype local -prune -or \
+# -name 'p.*' -print | egrep 'SCCS/p\.'`; do
+# owner=`awk '{ print $3 }' $file`
+# echo "$owner $file"
+# echo $file >> $TDIR/$owner
+# done | sed -e 's,SCCS/p.,,'
+# for file in $TDIR/*; do
+# sed -e 's,SCCS/p.,,' $file | \
+# Mail -s 'checked out files' `basename $file`
+# done
+# rm -rf $TDIR
+#fi
+
+if [ -f /usr/lib/uucp/clean.weekly ]; then
+ echo ""
+ echo "Cleaning up UUCP:"
+ echo /usr/lib/uucp/clean.weekly | su daemon
+fi
+echo ""
+
+echo "Rotating messages:"
+cd /var/log
+if [ -f messages.2 ]; then mv -f messages.2 messages.3; fi
+if [ -f messages.1 ]; then mv -f messages.1 messages.2; fi
+if [ -f messages.0 ]; then mv -f messages.0 messages.1; fi
+mv -f messages messages.0
+cp /dev/null messages
+chmod 644 messages
+kill -1 `cat /var/run/syslog.pid`
+cd /
+
+echo ""
+echo "Rebuilding locate database:"
+echo /usr/libexec/locate.updatedb | nice -5 su -m nobody 2>/dev/null