diff options
| author | svn2git <svn2git@FreeBSD.org> | 1993-11-01 08:00:00 +0000 |
|---|---|---|
| committer | svn2git <svn2git@FreeBSD.org> | 1993-11-01 08:00:00 +0000 |
| commit | 8503f4f13f77abf7adc8f7e329c6f9c1d52b6a20 (patch) | |
| tree | c5b2ce776438e0a52b492a2ab6ab41360b8ba1f6 /etc | |
Diffstat (limited to 'etc')
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 |
