From e326f4656f8b22aa36092753985a6f87e93d7579 Mon Sep 17 00:00:00 2001 From: Michael Shalayeff Date: Sun, 13 Apr 1997 17:17:57 +0000 Subject: import of hp300's ramdisk stuff for i386. merged w/ existing stuff... awk nuked away from ramdisk, only MAKEDEV needs it. --- distrib/i386/floppies/common/Makefile.inc | 73 +++ distrib/i386/floppies/common/dot.commonutils | 131 +++++ distrib/i386/floppies/common/instbin-krb.conf | 25 + distrib/i386/floppies/common/instbin.conf | 25 + distrib/i386/floppies/common/list | 82 +++ distrib/i386/floppies/common/mtree.conf | 77 +++ distrib/i386/floppies/common/rdsetroot.c | 229 ++++++++ distrib/i386/floppies/common/termcap.pc3 | 42 ++ distrib/i386/floppies/inst-common/Makefile.inc | 73 --- distrib/i386/floppies/inst-common/dot.commonutils | 131 ----- distrib/i386/floppies/inst-common/instbin-krb.conf | 25 - distrib/i386/floppies/inst-common/instbin.conf | 25 - distrib/i386/floppies/inst-common/list | 82 --- distrib/i386/floppies/inst-common/mtree.conf | 77 --- distrib/i386/floppies/inst-common/termcap.pc3 | 42 -- distrib/i386/floppies/inst/Makefile | 4 +- distrib/i386/floppies/ramdisk/Makefile | 77 +++ distrib/i386/floppies/ramdisk/Makefile.inc | 32 ++ distrib/i386/floppies/ramdisk/disktab.preinstall | 29 + distrib/i386/floppies/ramdisk/dot.hdprofile | 59 ++ distrib/i386/floppies/ramdisk/dot.instutils | 156 +++++ distrib/i386/floppies/ramdisk/dot.profile | 56 ++ distrib/i386/floppies/ramdisk/install.md | 638 +++++++++++++++++++++ distrib/i386/floppies/ramdisk/list | 11 + distrib/i386/floppies/ramdisk/mtree.conf | 77 +++ distrib/i386/floppies/ramdisk/raminst.conf | 25 + distrib/i386/floppies/ramdisk/start_rdconfig.sh | 4 + distrib/i386/floppies/upgr/Makefile | 4 +- 28 files changed, 1852 insertions(+), 459 deletions(-) create mode 100644 distrib/i386/floppies/common/Makefile.inc create mode 100644 distrib/i386/floppies/common/dot.commonutils create mode 100644 distrib/i386/floppies/common/instbin-krb.conf create mode 100644 distrib/i386/floppies/common/instbin.conf create mode 100644 distrib/i386/floppies/common/list create mode 100644 distrib/i386/floppies/common/mtree.conf create mode 100644 distrib/i386/floppies/common/rdsetroot.c create mode 100644 distrib/i386/floppies/common/termcap.pc3 delete mode 100644 distrib/i386/floppies/inst-common/Makefile.inc delete mode 100644 distrib/i386/floppies/inst-common/dot.commonutils delete mode 100644 distrib/i386/floppies/inst-common/instbin-krb.conf delete mode 100644 distrib/i386/floppies/inst-common/instbin.conf delete mode 100644 distrib/i386/floppies/inst-common/list delete mode 100644 distrib/i386/floppies/inst-common/mtree.conf delete mode 100644 distrib/i386/floppies/inst-common/termcap.pc3 create mode 100644 distrib/i386/floppies/ramdisk/Makefile create mode 100644 distrib/i386/floppies/ramdisk/Makefile.inc create mode 100644 distrib/i386/floppies/ramdisk/disktab.preinstall create mode 100644 distrib/i386/floppies/ramdisk/dot.hdprofile create mode 100644 distrib/i386/floppies/ramdisk/dot.instutils create mode 100644 distrib/i386/floppies/ramdisk/dot.profile create mode 100644 distrib/i386/floppies/ramdisk/install.md create mode 100644 distrib/i386/floppies/ramdisk/list create mode 100644 distrib/i386/floppies/ramdisk/mtree.conf create mode 100644 distrib/i386/floppies/ramdisk/raminst.conf create mode 100644 distrib/i386/floppies/ramdisk/start_rdconfig.sh diff --git a/distrib/i386/floppies/common/Makefile.inc b/distrib/i386/floppies/common/Makefile.inc new file mode 100644 index 00000000000..e62cfa6c7f5 --- /dev/null +++ b/distrib/i386/floppies/common/Makefile.inc @@ -0,0 +1,73 @@ +# $Id: Makefile.inc,v 1.1 1997/04/13 17:17:43 mickey Exp $ + +# TOP is assumed to be defined by Makefile including this one. + +CBIN= instbin +COMMONDIR= ${TOP}/inst-common + +MOUNT_POINT?= /mnt +VND?= vnd0 +VND_DEV= /dev/${VND}a +VND_RDEV= /dev/r${VND}a +IMAGE?= xxx${REV}.fs +PID!= echo $$$$ +REALIMAGE= /tmp/image.${PID} +MDEC= ${DESTDIR}/usr/mdec + +LISTS= ${COMMONDIR}/list ${.CURDIR}/list +.if defined(KERBEROS) +CRUNCHCONF= ${COMMONDIR}/${CBIN}-krb.conf +.else +CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf +.endif +MTREE= ${COMMONDIR}/mtree.conf + +all: ${CBIN} +.ifndef FLOPPY3 + dd if=/dev/zero of=${REALIMAGE} bs=10k count=120 + vnconfig -v -c ${VND} ${REALIMAGE} + disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd ${VND} floppy5 + newfs -O -m 0 -o space -i 3000 -c 80 ${VND_RDEV} floppy5 +.else + dd if=/dev/zero of=${REALIMAGE} bs=10k count=144 + vnconfig -v -c ${VND} ${REALIMAGE} + disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd ${VND} floppy3 + newfs -O -m 0 -o space -i 3000 -c 80 ${VND_RDEV} floppy3 +.endif + mount ${VND_DEV} ${MOUNT_POINT} + mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u + TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \ + TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS} + @echo "" + @df -i ${MOUNT_POINT} + @echo "" + umount ${MOUNT_POINT} + vnconfig -u ${VND} + cat /*bin/* > /dev/null + cp ${REALIMAGE} ${IMAGE} + rm ${REALIMAGE} + +unconfig: + -umount -f ${MOUNT_POINT} + -vnconfig -u ${VND} + -/bin/rm -f ${IMAGE} + +${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF} + crunchgen -D ${TOP}/../../.. -m ${CBIN}.mk -L ${DESTDIR}/usr/lib \ + ${CRUNCHCONF} + +${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c + make -f ${CBIN}.mk all +.if defined(KERBEROS) + mv ${CBIN}-krb ${CBIN} +.endif + +install: + cp ${IMAGE} ${DESTDIR}/snapshot/ + +clean cleandir: + /bin/rm -f *.core ${IMAGE} ${CBIN} ${CBIN}.mk \ + ${CBIN}.cache *.o *.lo *.c + +.include +.include diff --git a/distrib/i386/floppies/common/dot.commonutils b/distrib/i386/floppies/common/dot.commonutils new file mode 100644 index 00000000000..d8c9e6e19bf --- /dev/null +++ b/distrib/i386/floppies/common/dot.commonutils @@ -0,0 +1,131 @@ +# $OpenBSD: dot.commonutils,v 1.1 1997/04/13 17:17:44 mickey Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# 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 Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# Installation utilites (functions), to get OpenBSD installed on +# the hard disk. These are meant to be invoked from the shell prompt, +# by people installing OpenBSD. + +# we know that /etc/fstab is only generated on the hard drive +dest_dir=/ +if [ ! -f /etc/fstab ]; then + dest_dir=/mnt/ +fi + +# counter for possible shared library confusion +TAR=/bin/tar +GUNZIP="/usr/bin/gzip -d" + +Set_tmp_dir() +{ + def_tmp_dir=`pwd` + if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then + def_tmp_dir="$dest_dir"usr/distrib + fi + + echo -n "What directory should be used to find and/or store " + echo "installtion" + echo -n "files? [$def_tmp_dir] " + read tmp_dir + if [ "$tmp_dir" = "" ]; then + tmp_dir=$def_tmp_dir + fi + if [ ! -d "$tmp_dir" ]; then + /bin/rm -rf $tmp_dir + mkdir -p $tmp_dir + fi +} + +Tmp_dir() +{ + if [ "$tmp_dir" = "" ]; then + Set_tmp_dir + fi + cd $tmp_dir +} + +Load_fd() +{ + Tmp_dir + which= + echo "Don't forget that you can't load from the drive you booted from." + echo "" + + while [ "$which" != "0" -a "$which" != "1" ]; do + echo -n "Read from which floppy drive ('0' or '1')? [1] " + read which + if [ "X$which" = "X" ]; then + which=1 + fi + done + echo "" + echo "WARNING: during the floppy loading process, you should only" + echo "use Control-C at the prompt." + echo "" + while echo -n \ + "Insert floppy (hit Control-C to terminate, enter to load): " + do + read foo + mount -r -t msdos /dev/fd${which}a /mnt2 + cp -rp /mnt2/* . + umount /mnt2 + done +} + +Load_tape() +{ + Tmp_dir + echo -n "Which tape drive will you be using? [rst0] " + read which + if [ "X$which" = "X" ]; then + which=rst0 + fi + echo -n "Insert the tape into the tape drive and hit return to " + echo -n "continue..." + read foo + echo "Extracting files from the tape..." + $TAR -xvpf /dev/$which + echo "Done." +} + +Extract() +{ + Tmp_dir + echo -n "Would you like to list the files as they're extracted? [n] " + read verbose + case $verbose in + y*|Y*) + tarverbose=v + ;; + *) + tarverbose= + ;; + esac + cat "$1"* | $GUNZIP | (cd $dest_dir ; $TAR -xp"$tarverbose"f - ) +} diff --git a/distrib/i386/floppies/common/instbin-krb.conf b/distrib/i386/floppies/common/instbin-krb.conf new file mode 100644 index 00000000000..7553945c612 --- /dev/null +++ b/distrib/i386/floppies/common/instbin-krb.conf @@ -0,0 +1,25 @@ +# $OpenBSD: instbin-krb.conf,v 1.1 1997/04/13 17:17:44 mickey Exp $ +# +# instbin.conf - unified binary for the inst/upgr floppies +# + +srcdirs bin sbin usr.bin/less usr.bin usr.sbin gnu/usr.bin + +progs awk bad144 cat chmod chown chroot cp dd df disklabel ed expr fsck_ffs +progs ftp fdisk +progs ifconfig init less ln ls mkdir mknod mount mount_cd9660 +progs mount_ffs mount_msdos mount_nfs mount_kernfs +progs mv newfs pax pdksh ping pwd reboot rm route +progs sed shutdown slattach strings stty sync test tip umount +progs rsh restore gzip + +ln chown chgrp +ln fsck_ffs fsck +ln less more +ln pax tar +ln pdksh sh +ln pdksh -sh # init invokes the shell this way +ln test [ +ln reboot halt + +libs -ledit -lutil -ltermcap -lkrb -ldes -ll -lm diff --git a/distrib/i386/floppies/common/instbin.conf b/distrib/i386/floppies/common/instbin.conf new file mode 100644 index 00000000000..baf0aca95f7 --- /dev/null +++ b/distrib/i386/floppies/common/instbin.conf @@ -0,0 +1,25 @@ +# $OpenBSD: instbin.conf,v 1.1 1997/04/13 17:17:45 mickey Exp $ +# +# instbin.conf - unified binary for the inst/upgr floppies +# + +srcdirs bin sbin usr.bin/less usr.bin usr.sbin gnu/usr.bin + +progs awk bad144 cat chmod chown chroot cp dd df disklabel ed expr fsck_ffs +progs ftp fdisk +progs ifconfig init less ln ls mkdir mknod mount mount_cd9660 +progs mount_ffs mount_msdos mount_nfs mount_kernfs +progs mv newfs pax pdksh ping pwd reboot rm route +progs sed shutdown slattach strings stty sync test tip umount +progs rsh restore gzip + +ln chown chgrp +ln fsck_ffs fsck +ln less more +ln pax tar +ln pdksh sh +ln pdksh -sh # init invokes the shell this way +ln test [ +ln reboot halt + +libs -ledit -lutil -ltermcap -ll -lm diff --git a/distrib/i386/floppies/common/list b/distrib/i386/floppies/common/list new file mode 100644 index 00000000000..0caa2770b71 --- /dev/null +++ b/distrib/i386/floppies/common/list @@ -0,0 +1,82 @@ +# $Id: list,v 1.1 1997/04/13 17:17:45 mickey Exp $ + +# copy the crunched binary, link to it, and kill it +COPY ${OBJDIR}/instbin instbin +LINK instbin bin/cat +LINK instbin bin/chmod +LINK instbin bin/cp +LINK instbin bin/cpio +LINK instbin bin/dd +LINK instbin bin/df +LINK instbin bin/ed +LINK instbin bin/expr +LINK instbin bin/ln +LINK instbin bin/ls +LINK instbin bin/mkdir +LINK instbin bin/mv +LINK instbin bin/pwd +LINK instbin bin/rm +LINK instbin bin/sh +LINK instbin bin/stty +LINK instbin bin/sync +LINK instbin bin/tar +LINK instbin bin/test +LINK instbin bin/[ +LINK instbin sbin/disklabel +LINK instbin sbin/fdisk +LINK instbin sbin/fsck +LINK instbin sbin/fsck_ffs +LINK instbin sbin/halt +LINK instbin sbin/ifconfig +LINK instbin sbin/init +LINK instbin sbin/mknod +LINK instbin sbin/mount +LINK instbin sbin/mount_cd9660 +LINK instbin sbin/mount_ffs +LINK instbin sbin/mount_msdos +LINK instbin sbin/mount_nfs +LINK instbin sbin/mount_kernfs +LINK instbin sbin/newfs +LINK instbin sbin/ping +LINK instbin sbin/restore +LINK instbin sbin/reboot +LINK instbin sbin/route +LINK instbin sbin/shutdown +LINK instbin sbin/slattach +LINK instbin sbin/umount +SYMLINK /bin/cat usr/bin/awk +SYMLINK /bin/cat usr/bin/chgrp +SYMLINK /bin/cat usr/bin/ftp +SYMLINK /bin/cat usr/bin/gzip +SYMLINK /bin/cat usr/bin/gunzip +SYMLINK /bin/cat usr/bin/less +SYMLINK /bin/cat usr/bin/more +SYMLINK /bin/cat usr/bin/rsh +SYMLINK /bin/cat usr/bin/sed +SYMLINK /bin/cat usr/bin/strings +SYMLINK /bin/cat usr/bin/tip +SYMLINK /bin/cat usr/sbin/bad144 +SYMLINK /bin/cat usr/sbin/chown +SYMLINK /bin/cat usr/sbin/chroot +SPECIAL /bin/rm instbin + +# copy the MAKEDEV script and make some devices +COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV +SPECIAL cd dev; sh MAKEDEV floppy +SPECIAL /bin/rm dev/MAKEDEV + +# we need the contents of /usr/mdec +COPYDIR ${DESTDIR}/usr/mdec usr/mdec + +# various files that we need in /etc for the install +COPY ${DESTDIR}/etc/group etc/group +COPY ${DESTDIR}/etc/master.passwd etc/master.passwd +COPY ${DESTDIR}/etc/passwd etc/passwd +COPY ${DESTDIR}/etc/protocols etc/protocols +COPY ${DESTDIR}/etc/pwd.db etc/pwd.db +COPY ${DESTDIR}/etc/services etc/services +COPY ${DESTDIR}/etc/spwd.db etc/spwd.db + +# and the common installation tools +COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils +COPY ${TOPDIR}/inst-common/termcap.pc3 usr/share/misc/termcap diff --git a/distrib/i386/floppies/common/mtree.conf b/distrib/i386/floppies/common/mtree.conf new file mode 100644 index 00000000000..c68e3d047fe --- /dev/null +++ b/distrib/i386/floppies/common/mtree.conf @@ -0,0 +1,77 @@ +# $Id: mtree.conf,v 1.1 1997/04/13 17:17:46 mickey Exp $ + +/set type=dir uname=root gname=wheel mode=0755 +# . +. + +# ./bin +bin +# ./bin +.. + +# ./dev +dev +# ./dev +.. + +# ./etc +etc +# ./etc +.. + +# ./mnt +mnt +# ./mnt +.. + +# ./mnt2 +mnt2 +# ./mnt2 +.. + +# ./kern +kern +# ./kern +.. + +# ./sbin +sbin +# ./sbin +.. + +# ./tmp +tmp mode=01777 +# ./tmp +.. + +# ./usr +usr + +# ./usr/bin +bin +# ./usr/bin +.. + +# ./usr/mdec +mdec +# ./usr/mdec +.. + +# ./usr/sbin +sbin +# ./usr/sbin +.. + +# ./usr/share +share + +# ./usr/share/misc +misc +# ./usr/share/misc +.. + +# ./usr/share +.. + +# ./usr +.. diff --git a/distrib/i386/floppies/common/rdsetroot.c b/distrib/i386/floppies/common/rdsetroot.c new file mode 100644 index 00000000000..5e43390413d --- /dev/null +++ b/distrib/i386/floppies/common/rdsetroot.c @@ -0,0 +1,229 @@ +/* $OpenBSD: rdsetroot.c,v 1.1 1997/04/13 17:17:46 mickey Exp $ */ +/* $NetBSD: rdsetroot.c,v 1.2 1995/10/13 16:38:39 gwr Exp $ */ + +/* + * Copyright (c) 1994 Gordon W. Ross + * 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. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + */ + +/* + * Copy a ramdisk image into the space reserved for it. + * Kernel variables: rd_root_size, rd_root_image + */ + +#include +#include +#include + +#include +#include + +extern off_t lseek(); + +struct exec head; +char *file; + +/* Virtual addresses of the symbols we frob. */ +long rd_root_image_va, rd_root_size_va; + +/* Offsets relative to start of data segment. */ +long rd_root_image_off, rd_root_size_off; + +/* value in the location at rd_root_size_off */ +int rd_root_size_val; + +/* pointers to pieces of mapped file */ +char *dataseg; + +/* and lengths */ +int data_len; +int data_off; +int data_pgoff; + +main(argc,argv) + char **argv; +{ + int fd, n; + int *ip; + char *cp; + + if (argc < 2) { + printf("%s: missing file name\n", argv[0]); + exit(1); + } + file = argv[1]; + + fd = open(file, O_RDWR); + if (fd < 0) { + perror(file); + exit(1); + } + + n = read(fd, &head, sizeof(head)); + if (n < sizeof(head)) { + printf("%s: reading header\n", file); + exit(1); + } + + if (N_BADMAG(head)) { + printf("%s: bad magic number\n"); + exit(1); + } + +#ifdef DEBUG + printf(" text: %9d\n", head.a_text); + printf(" data: %9d\n", head.a_data); + printf(" bss: %9d\n", head.a_bss); + printf(" syms: %9d\n", head.a_syms); + printf("entry: 0x%08X\n", head.a_entry); + printf("trsiz: %9d\n", head.a_trsize); + printf("drsiz: %9d\n", head.a_drsize); +#endif + + if (head.a_syms <= 0) { + printf("%s: no symbols\n", file); + exit(1); + } + if (head.a_trsize || + head.a_drsize) + { + printf("%s: has relocations\n"); + exit(1); + } + + find_rd_root_image(file); + + /* + * Map in the whole data segment. + * The file offset needs to be page aligned. + */ + data_off = N_DATOFF(head); + data_len = head.a_data; + /* align... */ + data_pgoff = N_PAGSIZ(head) - 1; + data_pgoff &= data_off; + data_off -= data_pgoff; + data_len += data_pgoff; + /* map in in... */ + dataseg = mmap(NULL, /* any address is ok */ + data_len, /* length */ + PROT_READ | PROT_WRITE, + MAP_SHARED, + fd, data_off); + if ((long)dataseg == -1) { + printf("%s: can not map data seg\n", file); + perror(file); + exit(1); + } + dataseg += data_pgoff; + + /* + * Find value in the location: rd_root_size + */ + ip = (int*) (dataseg + rd_root_size_off); + rd_root_size_val = *ip; +#ifdef DEBUG + printf("rd_root_size val: 0x%08X (%d blocks)\n", + rd_root_size_val, (rd_root_size_val >> 9)); +#endif + + /* + * Copy the symbol table and string table. + */ +#ifdef DEBUG + printf("copying root image...\n"); +#endif + n = read(0, dataseg + rd_root_image_off, + rd_root_size_val); + if (n < 0) { + perror("read"); + exit(1); + } + + msync(dataseg - data_pgoff, data_len +#ifdef sun + ,0 +#endif + ); + +#ifdef DEBUG + printf("...copied %d bytes\n", n); +#endif + close(fd); + exit(0); +} + + +/* + * Find locations of the symbols to patch. + */ +struct nlist wantsyms[] = { + { "_rd_root_size", 0 }, + { "_rd_root_image", 0 }, + { NULL, 0 }, +}; + +find_rd_root_image(file) + char *file; +{ + int data_va; + int std_entry; + + if (nlist(file, wantsyms)) { + printf("%s: no rd_root_image symbols?\n", file); + exit(1); + } + std_entry = N_TXTADDR(head) + + (head.a_entry & (N_PAGSIZ(head)-1)); + data_va = N_DATADDR(head); + if (head.a_entry != std_entry) { + printf("%s: warning: non-standard entry point: 0x%08x\n", + file, head.a_entry); + printf("\texpecting entry=0x%X\n", std_entry); + data_va += (head.a_entry - std_entry); + } + + rd_root_size_off = wantsyms[0].n_value - data_va; + rd_root_image_off = wantsyms[1].n_value - data_va; +#ifdef DEBUG + printf(".data segment va: 0x%08X\n", data_va); + printf("rd_root_size va: 0x%08X\n", wantsyms[0].n_value); + printf("rd_root_image va: 0x%08X\n", wantsyms[1].n_value); + printf("rd_root_size off: 0x%08X\n", rd_root_size_off); + printf("rd_root_image off: 0x%08X\n", rd_root_image_off); +#endif + + /* + * Sanity check locations of db_* symbols + */ + if (rd_root_image_off < 0 || rd_root_image_off >= head.a_data) { + printf("%s: rd_root_image not in data segment?\n", file); + exit(1); + } + if (rd_root_size_off < 0 || rd_root_size_off >= head.a_data) { + printf("%s: rd_root_size not in data segment?\n", file); + exit(1); + } +} diff --git a/distrib/i386/floppies/common/termcap.pc3 b/distrib/i386/floppies/common/termcap.pc3 new file mode 100644 index 00000000000..feba9cc941d --- /dev/null +++ b/distrib/i386/floppies/common/termcap.pc3 @@ -0,0 +1,42 @@ +# Copyright (c) 1980, 1985, 1989 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. +# +# @(#)termcap.src 5.109 (Berkeley) 3/8/93 +# +pc3|ibmpc3|IBM PC 386BSD Console:\ + :DO=\E[%dB:K1=\E[H:K2=\E[E:K3=\E[I:K4=\E[F:K5=\E[G:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:am:bl=^G:bs:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:co#80:cr=^M:do=^J:ho=\E[H:is=\E[m:k0=\E[V:k1=\E[M:\ + :k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\ + :kD=\177:kH=\E[F:kN=\E[G:kP=\E[I:kb=\177:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:li#25:ms:nd=\E[C:rs=\E[m\E[x\E[14r:se=\E[m:\ + :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:te=\E[m:ti=\E[m:up=\E[A:km:pt:\ + :AL=\E[%dL:DL=\E[%dM:SF=\E[%dS:SR=\E[%dT:al=\E[L:dl=\E[M: diff --git a/distrib/i386/floppies/inst-common/Makefile.inc b/distrib/i386/floppies/inst-common/Makefile.inc deleted file mode 100644 index a8b0795d9a3..00000000000 --- a/distrib/i386/floppies/inst-common/Makefile.inc +++ /dev/null @@ -1,73 +0,0 @@ -# $Id: Makefile.inc,v 1.13 1997/01/25 09:16:39 deraadt Exp $ - -# TOP is assumed to be defined by Makefile including this one. - -CBIN= instbin -COMMONDIR= ${TOP}/inst-common - -MOUNT_POINT?= /mnt -VND?= vnd0 -VND_DEV= /dev/${VND}a -VND_RDEV= /dev/r${VND}a -IMAGE?= xxx${REV}.fs -PID!= echo $$$$ -REALIMAGE= /tmp/image.${PID} -MDEC= ${DESTDIR}/usr/mdec - -LISTS= ${COMMONDIR}/list ${.CURDIR}/list -.if defined(KERBEROS) -CRUNCHCONF= ${COMMONDIR}/${CBIN}-krb.conf -.else -CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf -.endif -MTREE= ${COMMONDIR}/mtree.conf - -all: ${CBIN} -.ifndef FLOPPY3 - dd if=/dev/zero of=${REALIMAGE} bs=10k count=120 - vnconfig -v -c ${VND} ${REALIMAGE} - disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd ${VND} floppy5 - newfs -O -m 0 -o space -i 3000 -c 80 ${VND_RDEV} floppy5 -.else - dd if=/dev/zero of=${REALIMAGE} bs=10k count=144 - vnconfig -v -c ${VND} ${REALIMAGE} - disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd ${VND} floppy3 - newfs -O -m 0 -o space -i 3000 -c 80 ${VND_RDEV} floppy3 -.endif - mount ${VND_DEV} ${MOUNT_POINT} - mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u - TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \ - TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS} - @echo "" - @df -i ${MOUNT_POINT} - @echo "" - umount ${MOUNT_POINT} - vnconfig -u ${VND} - cat /*bin/* > /dev/null - cp ${REALIMAGE} ${IMAGE} - rm ${REALIMAGE} - -unconfig: - -umount -f ${MOUNT_POINT} - -vnconfig -u ${VND} - -/bin/rm -f ${IMAGE} - -${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF} - crunchgen -D ${TOP}/../../.. -m ${CBIN}.mk -L ${DESTDIR}/usr/lib \ - ${CRUNCHCONF} - -${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c - make -f ${CBIN}.mk all -.if defined(KERBEROS) - mv ${CBIN}-krb ${CBIN} -.endif - -install: - cp ${IMAGE} ${DESTDIR}/snapshot/ - -clean cleandir: - /bin/rm -f *.core ${IMAGE} ${CBIN} ${CBIN}.mk \ - ${CBIN}.cache *.o *.lo *.c - -.include -.include diff --git a/distrib/i386/floppies/inst-common/dot.commonutils b/distrib/i386/floppies/inst-common/dot.commonutils deleted file mode 100644 index c7b605bc16a..00000000000 --- a/distrib/i386/floppies/inst-common/dot.commonutils +++ /dev/null @@ -1,131 +0,0 @@ -# $OpenBSD: dot.commonutils,v 1.7 1996/12/09 07:05:02 deraadt Exp $ -# -# Copyright (c) 1994 Christopher G. Demetriou -# 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 Christopher G. Demetriou. -# 4. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - -# Installation utilites (functions), to get OpenBSD installed on -# the hard disk. These are meant to be invoked from the shell prompt, -# by people installing OpenBSD. - -# we know that /etc/fstab is only generated on the hard drive -dest_dir=/ -if [ ! -f /etc/fstab ]; then - dest_dir=/mnt/ -fi - -# counter for possible shared library confusion -TAR=/bin/tar -GUNZIP="/usr/bin/gzip -d" - -Set_tmp_dir() -{ - def_tmp_dir=`pwd` - if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then - def_tmp_dir="$dest_dir"usr/distrib - fi - - echo -n "What directory should be used to find and/or store " - echo "installtion" - echo -n "files? [$def_tmp_dir] " - read tmp_dir - if [ "$tmp_dir" = "" ]; then - tmp_dir=$def_tmp_dir - fi - if [ ! -d "$tmp_dir" ]; then - /bin/rm -rf $tmp_dir - mkdir -p $tmp_dir - fi -} - -Tmp_dir() -{ - if [ "$tmp_dir" = "" ]; then - Set_tmp_dir - fi - cd $tmp_dir -} - -Load_fd() -{ - Tmp_dir - which= - echo "Don't forget that you can't load from the drive you booted from." - echo "" - - while [ "$which" != "0" -a "$which" != "1" ]; do - echo -n "Read from which floppy drive ('0' or '1')? [1] " - read which - if [ "X$which" = "X" ]; then - which=1 - fi - done - echo "" - echo "WARNING: during the floppy loading process, you should only" - echo "use Control-C at the prompt." - echo "" - while echo -n \ - "Insert floppy (hit Control-C to terminate, enter to load): " - do - read foo - mount -r -t msdos /dev/fd${which}a /mnt2 - cp -rp /mnt2/* . - umount /mnt2 - done -} - -Load_tape() -{ - Tmp_dir - echo -n "Which tape drive will you be using? [rst0] " - read which - if [ "X$which" = "X" ]; then - which=rst0 - fi - echo -n "Insert the tape into the tape drive and hit return to " - echo -n "continue..." - read foo - echo "Extracting files from the tape..." - $TAR -xvpf /dev/$which - echo "Done." -} - -Extract() -{ - Tmp_dir - echo -n "Would you like to list the files as they're extracted? [n] " - read verbose - case $verbose in - y*|Y*) - tarverbose=v - ;; - *) - tarverbose= - ;; - esac - cat "$1"* | $GUNZIP | (cd $dest_dir ; $TAR -xp"$tarverbose"f - ) -} diff --git a/distrib/i386/floppies/inst-common/instbin-krb.conf b/distrib/i386/floppies/inst-common/instbin-krb.conf deleted file mode 100644 index 3c113122631..00000000000 --- a/distrib/i386/floppies/inst-common/instbin-krb.conf +++ /dev/null @@ -1,25 +0,0 @@ -# $OpenBSD: instbin-krb.conf,v 1.3 1997/02/09 16:48:12 deraadt Exp $ -# -# instbin.conf - unified binary for the inst/upgr floppies -# - -srcdirs bin sbin usr.bin/less usr.bin usr.sbin gnu/usr.bin - -progs awk bad144 cat chmod chown chroot cp dd df disklabel ed expr fsck_ffs -progs ftp fdisk -progs ifconfig init less ln ls mkdir mknod mount mount_cd9660 -progs mount_ffs mount_msdos mount_nfs mount_kernfs -progs mv newfs pax pdksh ping pwd reboot rm route -progs sed shutdown slattach strings stty sync test tip umount -progs rsh restore gzip - -ln chown chgrp -ln fsck_ffs fsck -ln less more -ln pax tar -ln pdksh sh -ln pdksh -sh # init invokes the shell this way -ln test [ -ln reboot halt - -libs -ledit -lutil -ltermcap -lkrb -ldes -ll -lm diff --git a/distrib/i386/floppies/inst-common/instbin.conf b/distrib/i386/floppies/inst-common/instbin.conf deleted file mode 100644 index 42e6f2eb54f..00000000000 --- a/distrib/i386/floppies/inst-common/instbin.conf +++ /dev/null @@ -1,25 +0,0 @@ -# $OpenBSD: instbin.conf,v 1.16 1997/02/09 16:48:14 deraadt Exp $ -# -# instbin.conf - unified binary for the inst/upgr floppies -# - -srcdirs bin sbin usr.bin/less usr.bin usr.sbin gnu/usr.bin - -progs awk bad144 cat chmod chown chroot cp dd df disklabel ed expr fsck_ffs -progs ftp fdisk -progs ifconfig init less ln ls mkdir mknod mount mount_cd9660 -progs mount_ffs mount_msdos mount_nfs mount_kernfs -progs mv newfs pax pdksh ping pwd reboot rm route -progs sed shutdown slattach strings stty sync test tip umount -progs rsh restore gzip - -ln chown chgrp -ln fsck_ffs fsck -ln less more -ln pax tar -ln pdksh sh -ln pdksh -sh # init invokes the shell this way -ln test [ -ln reboot halt - -libs -ledit -lutil -ltermcap -ll -lm diff --git a/distrib/i386/floppies/inst-common/list b/distrib/i386/floppies/inst-common/list deleted file mode 100644 index bb4e50158c7..00000000000 --- a/distrib/i386/floppies/inst-common/list +++ /dev/null @@ -1,82 +0,0 @@ -# $Id: list,v 1.12 1997/03/21 03:33:23 kstailey Exp $ - -# copy the crunched binary, link to it, and kill it -COPY ${OBJDIR}/instbin instbin -LINK instbin bin/cat -LINK instbin bin/chmod -LINK instbin bin/cp -LINK instbin bin/cpio -LINK instbin bin/dd -LINK instbin bin/df -LINK instbin bin/ed -LINK instbin bin/expr -LINK instbin bin/ln -LINK instbin bin/ls -LINK instbin bin/mkdir -LINK instbin bin/mv -LINK instbin bin/pwd -LINK instbin bin/rm -LINK instbin bin/sh -LINK instbin bin/stty -LINK instbin bin/sync -LINK instbin bin/tar -LINK instbin bin/test -LINK instbin bin/[ -LINK instbin sbin/disklabel -LINK instbin sbin/fdisk -LINK instbin sbin/fsck -LINK instbin sbin/fsck_ffs -LINK instbin sbin/halt -LINK instbin sbin/ifconfig -LINK instbin sbin/init -LINK instbin sbin/mknod -LINK instbin sbin/mount -LINK instbin sbin/mount_cd9660 -LINK instbin sbin/mount_ffs -LINK instbin sbin/mount_msdos -LINK instbin sbin/mount_nfs -LINK instbin sbin/mount_kernfs -LINK instbin sbin/newfs -LINK instbin sbin/ping -LINK instbin sbin/restore -LINK instbin sbin/reboot -LINK instbin sbin/route -LINK instbin sbin/shutdown -LINK instbin sbin/slattach -LINK instbin sbin/umount -SYMLINK /bin/cat usr/bin/awk -SYMLINK /bin/cat usr/bin/chgrp -SYMLINK /bin/cat usr/bin/ftp -SYMLINK /bin/cat usr/bin/gzip -SYMLINK /bin/cat usr/bin/gunzip -SYMLINK /bin/cat usr/bin/less -SYMLINK /bin/cat usr/bin/more -SYMLINK /bin/cat usr/bin/rsh -SYMLINK /bin/cat usr/bin/sed -SYMLINK /bin/cat usr/bin/strings -SYMLINK /bin/cat usr/bin/tip -SYMLINK /bin/cat usr/sbin/bad144 -SYMLINK /bin/cat usr/sbin/chown -SYMLINK /bin/cat usr/sbin/chroot -SPECIAL /bin/rm instbin - -# copy the MAKEDEV script and make some devices -COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV -SPECIAL cd dev; sh MAKEDEV floppy -SPECIAL /bin/rm dev/MAKEDEV - -# we need the contents of /usr/mdec -COPYDIR ${DESTDIR}/usr/mdec usr/mdec - -# various files that we need in /etc for the install -COPY ${DESTDIR}/etc/group etc/group -COPY ${DESTDIR}/etc/master.passwd etc/master.passwd -COPY ${DESTDIR}/etc/passwd etc/passwd -COPY ${DESTDIR}/etc/protocols etc/protocols -COPY ${DESTDIR}/etc/pwd.db etc/pwd.db -COPY ${DESTDIR}/etc/services etc/services -COPY ${DESTDIR}/etc/spwd.db etc/spwd.db - -# and the common installation tools -COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils -COPY ${TOPDIR}/inst-common/termcap.pc3 usr/share/misc/termcap diff --git a/distrib/i386/floppies/inst-common/mtree.conf b/distrib/i386/floppies/inst-common/mtree.conf deleted file mode 100644 index 98872e02f86..00000000000 --- a/distrib/i386/floppies/inst-common/mtree.conf +++ /dev/null @@ -1,77 +0,0 @@ -# $Id: mtree.conf,v 1.4 1996/09/23 09:18:29 deraadt Exp $ - -/set type=dir uname=root gname=wheel mode=0755 -# . -. - -# ./bin -bin -# ./bin -.. - -# ./dev -dev -# ./dev -.. - -# ./etc -etc -# ./etc -.. - -# ./mnt -mnt -# ./mnt -.. - -# ./mnt2 -mnt2 -# ./mnt2 -.. - -# ./kern -kern -# ./kern -.. - -# ./sbin -sbin -# ./sbin -.. - -# ./tmp -tmp mode=01777 -# ./tmp -.. - -# ./usr -usr - -# ./usr/bin -bin -# ./usr/bin -.. - -# ./usr/mdec -mdec -# ./usr/mdec -.. - -# ./usr/sbin -sbin -# ./usr/sbin -.. - -# ./usr/share -share - -# ./usr/share/misc -misc -# ./usr/share/misc -.. - -# ./usr/share -.. - -# ./usr -.. diff --git a/distrib/i386/floppies/inst-common/termcap.pc3 b/distrib/i386/floppies/inst-common/termcap.pc3 deleted file mode 100644 index feba9cc941d..00000000000 --- a/distrib/i386/floppies/inst-common/termcap.pc3 +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (c) 1980, 1985, 1989 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. -# -# @(#)termcap.src 5.109 (Berkeley) 3/8/93 -# -pc3|ibmpc3|IBM PC 386BSD Console:\ - :DO=\E[%dB:K1=\E[H:K2=\E[E:K3=\E[I:K4=\E[F:K5=\E[G:LE=\E[%dD:\ - :RI=\E[%dC:UP=\E[%dA:am:bl=^G:bs:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ - :cm=\E[%i%d;%dH:co#80:cr=^M:do=^J:ho=\E[H:is=\E[m:k0=\E[V:k1=\E[M:\ - :k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\ - :kD=\177:kH=\E[F:kN=\E[G:kP=\E[I:kb=\177:kd=\E[B:kh=\E[H:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=^H:li#25:ms:nd=\E[C:rs=\E[m\E[x\E[14r:se=\E[m:\ - :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:te=\E[m:ti=\E[m:up=\E[A:km:pt:\ - :AL=\E[%dL:DL=\E[%dM:SF=\E[%dS:SR=\E[%dT:al=\E[L:dl=\E[M: diff --git a/distrib/i386/floppies/inst/Makefile b/distrib/i386/floppies/inst/Makefile index 4d32f2c3ed8..4406f88d82a 100644 --- a/distrib/i386/floppies/inst/Makefile +++ b/distrib/i386/floppies/inst/Makefile @@ -1,8 +1,8 @@ -# $Id: Makefile,v 1.2 1996/09/21 07:03:13 deraadt Exp $ +# $Id: Makefile,v 1.3 1997/04/13 17:17:47 mickey Exp $ TOP= ${.CURDIR}/.. .include "${TOP}/Makefile.inc" IMAGE= inst${REV}.fs -.include "${TOP}/inst-common/Makefile.inc" +.include "${TOP}/common/Makefile.inc" diff --git a/distrib/i386/floppies/ramdisk/Makefile b/distrib/i386/floppies/ramdisk/Makefile new file mode 100644 index 00000000000..053c46cda79 --- /dev/null +++ b/distrib/i386/floppies/ramdisk/Makefile @@ -0,0 +1,77 @@ +# $OpenBSD: Makefile,v 1.1 1997/04/13 17:17:52 mickey Exp $ +# $NetBSD: Makefile,v 1.1 1995/07/18 04:13:06 briggs Exp $ + +TOP= ${.CURDIR}/.. + +.include "${TOP}/Makefile.inc" +IMAGE= miniroot-${REV}.fs +CRUNCHCONF?= ${.CURDIR}/${CBIN}.conf +BASE=miniroot + +MOUNT_POINT= /mnt1 +BDEV= /dev/rd0a +CDEV= /dev/rrd0a +RDEV= /dev/rd0c + +KERNEL= /sys/arch/i386/compile/RAMDISK/bsd + +all: ${CBIN} ${IMAGE} + @echo "all done" + +.include "Makefile.inc" + +DISKTYPE= rdroot +NBLKS= 4046 +# old format, minfree, opt, b/i trks, sects, cpg +NEWFSARGS= -t ffs -m 0 -o space -c 16 -i 4096 + +${IMAGE}: do_prep do_mount do_files do_umount_copy do_unconfig + mv -f ${IMAGE}.tmp ${IMAGE} + -if [ -e ${.CURDIR}/${__objdir}/rd.pid ] ; then \ + kill `cat ${.CURDIR}/${__objdir}/rd.pid`; \ + rm ${.CURDIR}/${__objdir}/rd.pid;\ + fi + +rdsetroot: ${TOP}/common/rdsetroot.c + ${HOSTCC} -DDEBUG -o rdsetroot ${TOP}/common/rdsetroot.c + +setroot: ${IMAGE} bsd + ${.CURDIR}/${__objdir}/rdsetroot bsd < ${IMAGE} + +bsd: ${KERNEL} + cp ${KERNEL} bsd + +writetape: + echo rewinding tape < /dev/rst0 + buffer -i /usr/mdec/stboot -o /dev/nrst0 + buffer -i /usr/mdec/bootst -o /dev/nrst0 + buffer -B -p75 -i bsd -o /dev/nrst0 + echo rewinding tape < /dev/rst0 + + +do_prep: ${CBIN} do_unconfig + sh ${.CURDIR}/start_rdconfig.sh ${RDEV} ${NBLKS} + disklabel -w -r ${RDEV} ${DISKTYPE} + +do_mount: + -newfs ${NEWFSARGS} -s ${NBLKS} ${CDEV} ${DISKTYPE} + mount ${BDEV} ${MOUNT_POINT} + +do_umount_copy: + @echo "" + @df -i ${MOUNT_POINT} + @echo "" + -umount ${MOUNT_POINT} + dd if=${CDEV} of=${IMAGE}.tmp bs=4b count=`expr ${NBLKS} / 4 ` + +do_unconfig: + -umount ${MOUNT_POINT} + -if [ -e ${.CURDIR}/${__objdir}/rd.pid ] ; then \ + kill `cat ${.CURDIR}/${__objdir}/rd.pid`; \ + rm ${.CURDIR}/${__objdir}/rd.pid; \ + fi + + +.PRECIOUS: ${IMAGE} + + diff --git a/distrib/i386/floppies/ramdisk/Makefile.inc b/distrib/i386/floppies/ramdisk/Makefile.inc new file mode 100644 index 00000000000..39090ce2cdc --- /dev/null +++ b/distrib/i386/floppies/ramdisk/Makefile.inc @@ -0,0 +1,32 @@ +# +# $OpenBSD: Makefile.inc,v 1.1 1997/04/13 17:17:52 mickey Exp $ +# $NetBSD: Makefile.inc,v 1.1 1995/07/18 04:13:14 briggs Exp $ +# + +# TOP is assumed to be defined by Makefile including this one. + +CBIN?= raminst +COMMONDIR= ${TOP}/ramdisk + +MOUNT_POINT?= ${TOP}/${BASE}/fs + +LISTS= ${COMMONDIR}/../common/list ${.CURDIR}/list +CRUNCHCONF?= ${COMMONDIR}/${CBIN}.conf +MTREE= ${COMMONDIR}/mtree.conf + +${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF} + crunchgen -D ${BSDSRCDIR} -L ${DESTDIR}/usr/lib ${CRUNCHCONF} + +${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c + make -f ${CBIN}.mk all + +do_files: + mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u + TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \ + TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS} + +clean cleandir: + /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c + +.include +.include diff --git a/distrib/i386/floppies/ramdisk/disktab.preinstall b/distrib/i386/floppies/ramdisk/disktab.preinstall new file mode 100644 index 00000000000..5fe26a7d81c --- /dev/null +++ b/distrib/i386/floppies/ramdisk/disktab.preinstall @@ -0,0 +1,29 @@ +# 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, nc*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) +# diff --git a/distrib/i386/floppies/ramdisk/dot.hdprofile b/distrib/i386/floppies/ramdisk/dot.hdprofile new file mode 100644 index 00000000000..047adae43a8 --- /dev/null +++ b/distrib/i386/floppies/ramdisk/dot.hdprofile @@ -0,0 +1,59 @@ +# $OpenBSD: dot.hdprofile,v 1.1 1997/04/13 17:17:53 mickey Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# 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 Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ +export PATH +TERM=pc3 +export TERM + +umask 022 + +if [ "X${DONEPROFILE}" = "X" ]; then + DONEPROFILE=YES + + echo "Checking filesystems..." + fsck -y + + echo "Mounting filesystems..." + mount -a + mount -t kernfs /kern /kern + + # set up some sane defaults + echo 'erase ^?, werase ^W, kill ^U, intr ^C' + stty newcrt werase ^W intr ^C kill ^U erase ^? 9600 + echo '' + + # pull in the functions that people will use from the shell prompt. + . /.commonutils + . /.instutils + + echo "Follow the installation directions to install the OpenBSD" + echo "distribution sets." +fi diff --git a/distrib/i386/floppies/ramdisk/dot.instutils b/distrib/i386/floppies/ramdisk/dot.instutils new file mode 100644 index 00000000000..89acf73dcad --- /dev/null +++ b/distrib/i386/floppies/ramdisk/dot.instutils @@ -0,0 +1,156 @@ +# $OpenBSD: dot.instutils,v 1.1 1997/04/13 17:17:53 mickey Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# 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 Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# Installation configuration utilites (functions), to get OpenBSD configured +# reasonably once it is installed on the hard disk. These are meant to be +# invoked from the shell prompt, by people installing OpenBSD. + +Configure() +{ + DEV=/dev + ETC=/etc + if [ ! -f /etc/fstab ]; then + DEV=/mnt/dev + ETC=/mnt/etc + fi + + 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 "" + if [ -e $ETC/sendmail.cf ]; then + echo "WARNING: A default sendmail.cf exists, and probably" + echo "needs to be tuned and/or replaced, to work properly at" + echo "your site!" + else + echo "WARNING: No default sendmail.cf installed. Did you" + echo "forget to install the 'etc' distribution?" + fi + + echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts + + 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 " + echo -n "(e.g. ed0, ep0, 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 " + echo -n "interface ${intf}? " + 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? [link0] " + read ifflags + if [ "$ifflags" = "" ]; then + ifflags=link0 + fi + ;; + *) + ifflags= + ;; + esac + echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf + + echo "" + echo -n "WARNING: if you have any more ethernet interfaces, " + echo "you will have to configure" + echo -n "them by hand. Read the comments in /etc/netstart to " + echo "learn how to do this." + ;; + esac + + echo "" + echo -n "Making device nodes (may take a while)..." + cd ${DEV} + sh MAKEDEV all + echo " done." + + sync + + echo "" + echo "If you haven't already installed a kernel on the hard drive" + echo "using your kernel-copy floppy, do so now. Kernel" + echo "installation instructions can be found in the" + echo "installation notes." +} diff --git a/distrib/i386/floppies/ramdisk/dot.profile b/distrib/i386/floppies/ramdisk/dot.profile new file mode 100644 index 00000000000..01ec15b13ce --- /dev/null +++ b/distrib/i386/floppies/ramdisk/dot.profile @@ -0,0 +1,56 @@ +# +# Copyright (c) 1994 Christopher G. Demetriou +# 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 Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +# +# $Id: dot.profile,v 1.1 1997/04/13 17:17:54 mickey Exp $ + +PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ +export PATH +TERM=pc3 +export TERM + +umask 022 + +if [ "X${DONEPROFILE}" = "X" ]; then + DONEPROFILE=YES + + # set up some sane defaults + echo 'erase ^?, werase ^W, kill ^U, intr ^C' + stty newcrt werase ^W intr ^C kill ^U erase ^? 9600 + echo '' + + # mount the kern_fs so that we can examine the dmesg state + mount -t kernfs /kern /kern + + # pull in the functions that people will use from the shell prompt. + . /.commonutils + . /.instutils + + # run the installation script. + install +fi diff --git a/distrib/i386/floppies/ramdisk/install.md b/distrib/i386/floppies/ramdisk/install.md new file mode 100644 index 00000000000..7b9c47e3064 --- /dev/null +++ b/distrib/i386/floppies/ramdisk/install.md @@ -0,0 +1,638 @@ +#!/bin/sh +# $OpenBSD: install.md,v 1.1 1997/04/13 17:17:54 mickey Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# 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 Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# OpenBSD installation script. +# In a perfect world, this would be a nice C program, with a reasonable +# user interface. + +DT=/etc/disktab # /etc/disktab +FSTABDIR=/mnt/etc # /mnt/etc +#DONTDOIT=echo + +VERSION=2.0 +FSTAB=${FSTABDIR}/fstab + +getresp() { + read resp + if [ "X$resp" = "X" ]; then + resp=$1 + fi +} + +echo "Welcome to the OpenBSD ${VERSION} installation program." +echo "" +echo "This program is will put OpenBSD on your hard disk. It is not" +echo "painless, but it could be worse. You'll be asked several questions," +echo "and it would probably be useful to have your disk's hardware" +echo "manual, the installation notes, and a calculator handy." +echo "" +echo "In particular, you will need to know some reasonably detailed" +echo "information about your disk's geometry, because there is currently" +echo "no way this this program can figure that information out." +echo "" +echo "As with anything which modifies your hard drive's contents, this" +echo "program can cause SIGNIFICANT data loss, and you are advised" +echo "to make sure your hard drive is backed up before beginning the" +echo "installation process." +echo "" +echo "Default answers are displyed in brackets after the questions." +echo "You can hit Control-C at any time to quit, but if you do so at a" +echo "prompt, you may have to hit return. Also, quitting in the middle of" +echo "installation may leave your system in an inconsistent state." +echo "" +echo -n "Proceed with installation? [n] " +getresp "n" +case "$resp" in +y*|Y*) + echo "Cool! Let's get to it..." + ;; +*) + echo "OK, then. Enter 'halt' at the prompt to halt the" + echo "machine. Once the machine has halted, remove the" + echo "floppy and press any key to reboot." + exit + ;; +esac + +echo "" +echo "To do the installation, you'll need to provide some information about" +echo "your disk." + +echo "OpenBSD can be installed on ST506, ESDI, IDE, or SCSI disks." +echo -n "What kind of disk will you be installing on? [SCSI] " +getresp "SCSI" +case "$resp" in +esdi|ESDI|st506|ST506) + drivetype=wd + echo -n "Does it support _automatic_ sector remapping? [y] " + getresp "y" + case "$resp" in + n*|N*) + sect_fwd="sf:" + ;; + *) + sect_fwd="" + ;; + esac +;; +ide|IDE) + drivetype=wd + sect_fwd="" + type=ST506 + ;; +scsi|SCSI) + drivetype=sd + sect_fwd="" + type=SCSI + ;; +esac + +# find out what units are possible for that disk, and query the user. +driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'` +if [ "X${driveunits}" = "X" ]; then + echo "FATAL ERROR:" + echo "No devices for disks of type '${drivetype}'." + echo "This is probably a bug in the install disks." + echo "Exiting install program." + exit +fi +prefdrive=${drivetype}0 + +echo "The following ${drivetype}-type disks are supported by this" +echo "installation procedure:" +echo "${driveunits}" +echo "Note that they may not exist in _your_ machine; the list of" +echo "disks in your machine was printed when the system was booting." +while [ "X${drivename}" = "X" ]; do + echo -n "Which disk would like to install on? [${prefdrive}] " + getresp ${prefdrive} + otherdrives=`echo "${driveunits}" | sed -e s,${resp},,` + if [ "X${driveunits}" = "X${otherdrives}" ]; then + echo "\"${resp}\" is an invalid drive name. Valid choices" + echo "are: "${driveunits} + else + drivename=${resp} + fi +done + +echo "" +echo "Using disk ${drivename}." +echo -n "What kind of disk is it? (one word please) [my${drivetype}] " +getresp "my${drivetype}" +labelname=$resp + +echo "" +echo "You will now need to provide some information about your disk's" +echo "geometry. This should either be in the User's Manual for your disk," +echo "or you should have written down what OpenBSD printed when booting." +echo "(Note that he geometry that's printed at boot time is preferred.)" +echo "" +echo "You may choose to view the initial boot messages for your system" +echo "again right now if you like." +echo -n "View the boot messages again? [n] " +getresp "n" +case "$resp" in +y*|Y*) + less -rsS /kern/msgbuf + ;; +*) + echo "" + ;; +esac + +echo "You will now enter the disk geometry information" +echo "" + +bytes_per_sect=`cat /kern/msgbuf \ + | sed -n -e /^${drivename}:/p -e /^${drivename}:/q \ + | sed 's/\([^ ]*[ ]*\)\{8\}\([^ ]*\).*$/\2/'` +echo -n "Number of bytes per disk sector? [$bytes_per_sect] " +getresp $bytes_per_sect +bytes_per_sect="$resp" + +cyls_per_disk=`cat /kern/msgbuf \ + | sed -n -e /^${drivename}:/p -e /^${drivename}:/q \ + | sed 's/\([^ ]*[ ]*\)\{3\}\([^ ]*\).*$/\2/'` +echo -n "Number of disk cylinders? [$cyls_per_disk]" +getresp $cyls_per_disk +cyls_per_disk="$resp" + +tracks_per_cyl=`cat /kern/msgbuf \ + | sed -n -e /^${drivename}:/p -e /^${drivename}:/q \ + | sed 's/\([^ ]*[ ]*\)\{5\}\([^ ]*\).*$/\2/'` +echo -n "Number of disk tracks (heads) per disk cylinder? [$tracks_per_cyl]" +getresp $tracks_per_cyl +tracks_per_cyl="$resp" + +sects_per_track=`cat /kern/msgbuf \ + | sed -n -e /^${drivename}:/p -e /^${drivename}:/q \ + | sed 's/\([^ ]*[ ]*\)\{7\}\([^ ]*\).*$/\2/'` +echo -n "Number of disk sectors per disk track? [$sects_per_track]" +getresp $sects_per_track +sects_per_track="$resp" + +cylindersize=`expr $sects_per_track \* $tracks_per_cyl` +cylbytes=`expr $cylindersize \* $bytes_per_sect` +disksize=`expr $cylindersize \* $cyls_per_disk` + +echo "" +echo "Your disk has a total of $disksize $bytes_per_sect byte sectors," +echo "arranged as $cyls_per_disk cylinders which contain $cylindersize " +echo "sectors ($cylbytes bytes) each." +echo "" +echo "You can specify partition sizes in cylinders ('c') or sectors ('s')." +while [ "X${sizemult}" = "X" ]; do + echo -n "What units would you like to use? [cylinders] " + getresp cylinders + case "$resp" in + c*|C*) + sizemult=$cylindersize + sizeunit="cylinders" + maxdisk=$cyls_per_disk + ;; + s*|S*) + sizemult=1 + sizeunit="sectors" + maxdisk=$disksize; + ;; + *) + echo "Enter cylinders ('c') or sectors ('s')." + ;; + esac +done + +if [ $sizeunit = "sectors" ]; then + echo "For best disk performance or workable CHS-translating IDE systems," + echo "partitions should begin and end on cylinder boundaries. Wherever" + echo "possible, use multiples of the cylinder size ($cylindersize sectors)." +fi + +echo -n "" +echo -n "Size of OpenBSD portion of disk (in $sizeunit) ? [$maxdisk] " +getresp "$maxdisk" +partition=$resp +partition_sects=`expr $resp \* $sizemult` +part_offset=0 +if [ $partition_sects -lt $disksize ]; then + echo -n "Offset of OpenBSD portion of disk (in $sizeunit)? " + getresp + part_offset=$resp +fi +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 + +sects_left=`expr $partition_sects - $badspacesec` +units_left=`expr $sects_left / $sizemult` +echo "" +echo "There are $units_left $sizeunit left to allocate." +echo "" +root=0 +while [ $root -eq 0 ]; do + echo -n "Root partition size (in $sizeunit)? " + getresp + case $resp in + [1-9]*) + total=$resp + if [ $total -gt $units_left ]; then + echo -n "Root size is greater than remaining " + echo "free space on disk." + else + root=$resp + fi + ;; + esac +done +root_offset=$part_offset +part_used=`expr $root + $badspacesec / $sizemult` +units_left=`expr $partition - $part_used` +echo "" + +swap=0 +while [ $swap -eq 0 ]; do + echo "$units_left $sizeunit remaining in OpenBSD portion of disk." + echo -n "Swap partition size (in $sizeunit)? " + getresp + case $resp in + [1-9]*) + if [ $swap -gt $units_left ]; then + echo -n "Swap size is greater than remaining " + echo "free space on disk." + else + swap=$resp + fi + ;; + esac +done +swap_offset=`expr $root_offset + $root` +part_used=`expr $part_used + $swap` +echo "" + +fragsize=1024 +blocksize=8192 +$DONTDOIT fsck -t ffs /dev/rfd0a +$DONTDOIT mount -u /dev/fd0a / +cat /etc/disktab.preinstall > $DT +echo "" >> $DT +echo "$labelname|OpenBSD installation generated:\\" >> $DT +echo " :dt=${type}:ty=winchester:\\" >> $DT +echo -n " :nc#${cyls_per_disk}:ns#${sects_per_track}" >> $DT +echo ":nt#${tracks_per_cyl}:\\" >> $DT +echo " :se#${bytes_per_sect}:${sect_fwd}\\" >> $DT +_size=`expr $root \* $sizemult` +_offset=`expr $root_offset \* $sizemult` +echo -n " :pa#${_size}:oa#${_offset}" >> $DT +echo ":ta=4.2BSD:ba#${blocksize}:fa#${fragsize}:\\" >> $DT +_size=`expr $swap \* $sizemult` +_offset=`expr $swap_offset \* $sizemult` +echo " :pb#${_size}:ob#${_offset}:tb=swap:\\" >> $DT +echo " :pc#${disksize}:oc#0:\\" >> $DT + +echo "You will now have to enter information about any other partitions" +echo "to be created in the OpenBSD portion of the disk. This process will" +echo "be complete when you've filled up all remaining space in the OpenBSD" +echo "portion of the disk." + +while [ $part_used -lt $partition ]; do + part_size=0 + units_left=`expr $partition - $part_used` + while [ $part_size -eq 0 ]; do + echo "" + echo -n "$units_left $sizeunit remaining in OpenBSD portion of " + echo "the disk" + echo -n "Next partition size (in $sizeunit) [$units_left] ? " + getresp "$units_left" + case $resp in + [1-9]*) + total=`expr $part_used + $resp` + if [ $total -gt $partition ]; then + echo "That would make the parition too large to fit!" + else + part_size=$resp + part_used=$total + part_name="" + while [ "$part_name" = "" ]; do + echo -n "Mount point? " + getresp + part_name=$resp + done + fi + ;; + esac + done + # XXX we skip partition d to avoid user confusion + if [ "$ename" = "" ]; then + ename=$part_name + offset=`expr $part_offset + $root + $swap` + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pe#${_size}:oe#${_offset}" >> $DT + echo ":te=4.2BSD:be#${blocksize}:fe#${fragsize}:\\" >> $DT + offset=`expr $offset + $part_size` + elif [ "$fname" = "" ]; then + fname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pf#${_size}:of#${_offset}" >> $DT + echo ":tf=4.2BSD:bf#${blocksize}:ff#${fragsize}:\\" >> $DT + offset=`expr $offset + $part_size` + elif [ "$gname" = "" ]; then + gname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pg#${_size}:og#${_offset}" >> $DT + echo ":tg=4.2BSD:bg#${blocksize}:fg#${fragsize}:\\" >> $DT + offset=`expr $offset + $part_size` + elif [ "$hname" = "" ]; then + hname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :ph#${_size}:oh#${_offset}" >> $DT + echo ":th=4.2BSD:bh#${blocksize}:fh#${fragsize}:\\" >> $DT + part_used=$partition + elif [ "$iname" = "" ]; then + iname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pi#${_size}:oi#${_offset}" >> $DT + echo ":ti=4.2BSD:bi#${blocksize}:fi#${fragsize}:\\" >> $DT + part_used=$partition + elif [ "$jname" = "" ]; then + jname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pj#${_size}:oj#${_offset}" >> $DT + echo ":tj=4.2BSD:bj#${blocksize}:fj#${fragsize}:\\" >> $DT + part_used=$partition + elif [ "$kname" = "" ]; then + kname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pk#${_size}:ok#${_offset}" >> $DT + echo ":tk=4.2BSD:bk#${blocksize}:fk#${fragsize}:\\" >> $DT + part_used=$partition + elif [ "$lname" = "" ]; then + lname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pl#${_size}:ol#${_offset}" >> $DT + echo ":tl=4.2BSD:bl#${blocksize}:fl#${fragsize}:\\" >> $DT + part_used=$partition + elif [ "$mname" = "" ]; then + mname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pm#${_size}:om#${_offset}" >> $DT + echo ":tm=4.2BSD:bm#${blocksize}:fm#${fragsize}:\\" >> $DT + part_used=$partition + elif [ "$nname" = "" ]; then + nname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pn#${_size}:on#${_offset}" >> $DT + echo ":tn=4.2BSD:bn#${blocksize}:fn#${fragsize}:\\" >> $DT + part_used=$partition + elif [ "$oname" = "" ]; then + oname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :po#${_size}:oo#${_offset}" >> $DT + echo ":to=4.2BSD:bo#${blocksize}:fo#${fragsize}:\\" >> $DT + part_used=$partition + elif [ "$pname" = "" ]; then + pname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pp#${_size}:op#${_offset}" >> $DT + echo ":tp=4.2BSD:bp#${blocksize}:fp#${fragsize}:\\" >> $DT + part_used=$partition + fi +done +echo "" >> $DT +sync + +echo "" +echo "THIS IS YOUR LAST CHANCE!!!" +echo "" +echo -n "Are you SURE you want OpenBSD installed on your hard drive? (yes/no) " +answer="" +while [ "$answer" = "" ]; do + getresp + case $resp in + yes|YES) + echo "" + echo "Here we go..." + answer=yes + ;; + no|NO) + echo "" + echo -n "OK, then. enter 'halt' to halt the machine. " + echo "Once the machine has halted," + echo -n "remove the floppy, and press any key to " + echo "reboot." + exit + ;; + *) + echo -n "I want a yes or no answer... well? " + ;; + esac +done + +echo "" +echo -n "Labeling disk $drivename..." +$DONTDOIT disklabel -w -B $drivename $labelname +echo " done." + +if [ "$sect_fwd" = "sf:" ]; then + echo -n "Initializing bad144 badblock table..." + $DONTDOIT bad144 $drivename 0 + echo " done." +fi + +echo "Initializing root filesystem, and mounting..." +$DONTDOIT newfs /dev/r${drivename}a $name +$DONTDOIT mount -v /dev/${drivename}a /mnt +if [ "$ename" != "" ]; then + echo "" + echo "Initializing $ename filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}e $name + $DONTDOIT mkdir -p /mnt/$ename + $DONTDOIT mount -v /dev/${drivename}e /mnt/$ename +fi +if [ "$fname" != "" ]; then + echo "" + echo "Initializing $fname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}f $name + $DONTDOIT mkdir -p /mnt/$fname + $DONTDOIT mount -v /dev/${drivename}f /mnt/$fname +fi +if [ "$gname" != "" ]; then + echo "" + echo "Initializing $gname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}g $name + $DONTDOIT mkdir -p /mnt/$gname + $DONTDOIT mount -v /dev/${drivename}g /mnt/$gname +fi +if [ "$hname" != "" ]; then + echo "" + echo "Initializing $hname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}h $name + $DONTDOIT mkdir -p /mnt/$hname + $DONTDOIT mount -v /dev/${drivename}h /mnt/$hname +fi +if [ "$iname" != "" ]; then + echo "" + echo "Initializing $iname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}i $name + $DONTDOIT mkdir -p /mnt/$iname + $DONTDOIT mount -v /dev/${drivename}i /mnt/$iname +fi +if [ "$jname" != "" ]; then + echo "" + echo "Initializing $jname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}j $name + $DONTDOIT mkdir -p /mnt/$jname + $DONTDOIT mount -v /dev/${drivename}j /mnt/$jname +fi +if [ "$kname" != "" ]; then + echo "" + echo "Initializing $kname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}k $name + $DONTDOIT mkdir -p /mnt/$kname + $DONTDOIT mount -v /dev/${drivename}k /mnt/$kname +fi +if [ "$lname" != "" ]; then + echo "" + echo "Initializing $lname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}l $name + $DONTDOIT mkdir -p /mnt/$lname + $DONTDOIT mount -v /dev/${drivename}l /mnt/$lname +fi +if [ "$mname" != "" ]; then + echo "" + echo "Initializing $mname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}m $name + $DONTDOIT mkdir -p /mnt/$mname + $DONTDOIT mount -v /dev/${drivename}m /mnt/$mname +fi +if [ "$nname" != "" ]; then + echo "" + echo "Initializing $nname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}n $name + $DONTDOIT mkdir -p /mnt/$nname + $DONTDOIT mount -v /dev/${drivename}n /mnt/$nname +fi +if [ "$oname" != "" ]; then + echo "" + echo "Initializing $oname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}o $name + $DONTDOIT mkdir -p /mnt/$oname + $DONTDOIT mount -v /dev/${drivename}o /mnt/$oname +fi +if [ "$pname" != "" ]; then + echo "" + echo "Initializing $pname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}p $name + $DONTDOIT mkdir -p /mnt/$pname + $DONTDOIT mount -v /dev/${drivename}p /mnt/$pname +fi + +echo "" +echo "Populating filesystems with bootstrapping binaries and config files" +$DONTDOIT tar -cXf - . | (cd /mnt ; tar -xpf - ) +$DONTDOIT cp /tmp/.hdprofile /mnt/.profile + +echo "" +echo -n "Creating an fstab..." +echo /dev/${drivename}a / ffs rw 1 1 | sed -e s,//,/, > $FSTAB +if [ "$ename" != "" ]; then + echo /dev/${drivename}e /$ename ffs rw 1 2 | sed -e s,//,/, >> $FSTAB +fi +if [ "$fname" != "" ]; then + echo /dev/${drivename}f /$fname ffs rw 1 3 | sed -e s,//,/, >> $FSTAB +fi +if [ "$gname" != "" ]; then + echo /dev/${drivename}g /$gname ffs rw 1 4 | sed -e s,//,/, >> $FSTAB +fi +if [ "$hname" != "" ]; then + echo /dev/${drivename}h /$hname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +if [ "$iname" != "" ]; then + echo /dev/${drivename}i /$iname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +if [ "$jname" != "" ]; then + echo /dev/${drivename}j /$jname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +if [ "$kname" != "" ]; then + echo /dev/${drivename}k /$kname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +if [ "$lname" != "" ]; then + echo /dev/${drivename}l /$lname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +if [ "$mname" != "" ]; then + echo /dev/${drivename}m /$mname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +if [ "$nname" != "" ]; then + echo /dev/${drivename}n /$nname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +if [ "$oname" != "" ]; then + echo /dev/${drivename}o /$oname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +if [ "$pname" != "" ]; then + echo /dev/${drivename}p /$pname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi + +sync +echo " done." + +echo "OK! The preliminary work of setting up your disk is now complete." +echo "" +echo "The remaining tasks are:" +echo "" +echo "To copy a OpenBSD kernel to the hard drive's root filesystem." +echo "Once accomplished, you can boot off the hard drive." +echo "" +echo "To load and install the OpenBSD distribution sets." +echo "Currently the hard drive's root filesystem is mounted on /mnt" +echo "" +echo "Consult the installation notes which will describe how to" +echo "install the distribution sets and kernel. Post-installation" +echo "configuration is also discussed therein." +echo "" +echo "GOOD LUCK!" +echo "" diff --git a/distrib/i386/floppies/ramdisk/list b/distrib/i386/floppies/ramdisk/list new file mode 100644 index 00000000000..548186db6dc --- /dev/null +++ b/distrib/i386/floppies/ramdisk/list @@ -0,0 +1,11 @@ +# $Id: list,v 1.1 1997/04/13 17:17:55 mickey Exp $ + +# the disktab explanation file +COPY disktab.preinstall etc/disktab.preinstall + +# and the installation tools +COPY dot.profile .profile +COPY dot.instutils .instutils +COPY install.md install +COPY dot.hdprofile tmp/.hdprofile +SPECIAL chmod 755 install diff --git a/distrib/i386/floppies/ramdisk/mtree.conf b/distrib/i386/floppies/ramdisk/mtree.conf new file mode 100644 index 00000000000..e042cb0ff01 --- /dev/null +++ b/distrib/i386/floppies/ramdisk/mtree.conf @@ -0,0 +1,77 @@ +# $Id: mtree.conf,v 1.1 1997/04/13 17:17:55 mickey Exp $ + +/set type=dir uname=root gname=wheel mode=0755 +# . +. + +# ./bin +bin +# ./bin +.. + +# ./dev +dev +# ./dev +.. + +# ./etc +etc +# ./etc +.. + +# ./mnt +mnt +# ./mnt +.. + +# ./mnt2 +mnt2 +# ./mnt2 +.. + +# ./kern +kern +# ./kern +.. + +# ./sbin +sbin +# ./sbin +.. + +# ./tmp +tmp mode=01777 +# ./tmp +.. + +# ./usr +usr + +# ./usr/bin +bin +# ./usr/bin +.. + +# ./usr/mdec +mdec +# ./usr/mdec +.. + +# ./usr/sbin +sbin +# ./usr/sbin +.. + +# ./usr/share +share + +# ./usr/share/misc +misc +# ./usr/share/misc +.. + +# ./usr/share +.. + +# ./usr +.. diff --git a/distrib/i386/floppies/ramdisk/raminst.conf b/distrib/i386/floppies/ramdisk/raminst.conf new file mode 100644 index 00000000000..bae23665c81 --- /dev/null +++ b/distrib/i386/floppies/ramdisk/raminst.conf @@ -0,0 +1,25 @@ +# $OpenBSD: raminst.conf,v 1.1 1997/04/13 17:17:55 mickey Exp $ +# +# instbin.conf - unified binary for the inst/upgr floppies +# + +srcdirs bin sbin usr.bin/less usr.bin usr.sbin gnu/usr.bin + +progs bad144 cat chmod chown chroot cp dd df disklabel ed expr fsck_ffs +progs ftp fdisk +progs ifconfig init less ln ls mkdir mknod mount mount_cd9660 +progs mount_ffs mount_msdos mount_nfs mount_kernfs +progs mv newfs pax pdksh ping pwd reboot rm route +progs sed shutdown slattach strings stty sync test tip umount +progs rsh restore gzip + +ln chown chgrp +ln fsck_ffs fsck +ln less more +ln pax tar +ln pdksh sh +ln pdksh -sh # init invokes the shell this way +ln test [ +ln reboot halt + +libs -ledit -lutil -ltermcap -lkrb -ldes -ll -lm diff --git a/distrib/i386/floppies/ramdisk/start_rdconfig.sh b/distrib/i386/floppies/ramdisk/start_rdconfig.sh new file mode 100644 index 00000000000..d22552b968e --- /dev/null +++ b/distrib/i386/floppies/ramdisk/start_rdconfig.sh @@ -0,0 +1,4 @@ +echo rdconfig ${1} ${2} +rdconfig ${1} ${2} & +echo $! >rd.pid + diff --git a/distrib/i386/floppies/upgr/Makefile b/distrib/i386/floppies/upgr/Makefile index 5d65dfba77a..6f78740dcce 100644 --- a/distrib/i386/floppies/upgr/Makefile +++ b/distrib/i386/floppies/upgr/Makefile @@ -1,8 +1,8 @@ -# $Id: Makefile,v 1.3 1995/12/14 07:00:15 deraadt Exp $ +# $Id: Makefile,v 1.4 1997/04/13 17:17:56 mickey Exp $ TOP= ${.CURDIR}/.. .include "${TOP}/Makefile.inc" IMAGE= upgr${REV}.fs -.include "${TOP}/inst-common/Makefile.inc" +.include "${TOP}/common/Makefile.inc" -- cgit v1.2.3