Put in new code to make a ramdisk system for installation.
This commit is contained in:
parent
0a2d2af9e0
commit
aa897b228c
|
@ -1,5 +1,5 @@
|
|||
# $NetBSD: Makefile,v 1.1 1995/10/01 21:22:13 ragge Exp $
|
||||
# $NetBSD: Makefile,v 1.2 1999/03/12 18:36:52 ragge Exp $
|
||||
|
||||
SUBDIR= inst tk50 rx50 rx33
|
||||
SUBDIR= ramdisk miniroot #inst tk50 rx50 rx33
|
||||
|
||||
.include <bsd.subdir.mk>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: list2sh.awk,v 1.2 1998/01/06 04:45:40 perry Exp $
|
||||
# $NetBSD: list2sh.awk,v 1.3 1999/03/12 18:36:52 ragge Exp $
|
||||
|
||||
BEGIN {
|
||||
printf("cd ${CURDIR}\n");
|
||||
|
@ -10,14 +10,30 @@ BEGIN {
|
|||
}
|
||||
$1 == "COPY" {
|
||||
printf("echo '%s'\n", $0);
|
||||
printf("rm -f ${TARGDIR}/%s\n", $3);
|
||||
printf("cp %s ${TARGDIR}/%s\n", $2, $3);
|
||||
next;
|
||||
}
|
||||
$1 == "LINK" {
|
||||
printf("echo '%s'\n", $0);
|
||||
printf("rm -f ${TARGDIR}/%s\n", $3);
|
||||
printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
|
||||
next;
|
||||
}
|
||||
$1 == "SYMLINK" {
|
||||
printf("echo '%s'\n", $0);
|
||||
printf("rm -f ${TARGDIR}/%s\n", $3);
|
||||
printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $3);
|
||||
next;
|
||||
}
|
||||
$1 == "COPYDIR" {
|
||||
printf("echo '%s'\n", $0);
|
||||
printf("(cd ${TARGDIR}/%s && find . ! -name . | xargs /bin/rm -rf)\n",
|
||||
$3);
|
||||
printf("(cd %s && find . ! -name . | cpio -pdamu ${TARGDIR}/%s)\n", $2,
|
||||
$3);
|
||||
next;
|
||||
}
|
||||
$1 == "SPECIAL" {
|
||||
printf("echo '%s'\n", $0);
|
||||
printf("(cd ${TARGDIR};");
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
# $NetBSD: Makefile,v 1.1 1999/03/12 18:36:52 ragge Exp $
|
||||
|
||||
# TOP is assumed to be defined by Makefile including this one.
|
||||
|
||||
TOP= ${.CURDIR}/..
|
||||
|
||||
MOUNT_POINT?= /mnt
|
||||
VND?= vnd0
|
||||
VND_DEV= /dev/${VND}a
|
||||
VND_RDEV= /dev/r${VND}a
|
||||
VND_CDEV= /dev/${VND}c
|
||||
VND_CRDEV= /dev/r${VND}c
|
||||
IMAGE?= miniroot.fs
|
||||
KERN?= ${.CURDIR}/../../../sys/arch/vax/compile/INSTALL/netbsd
|
||||
MDEC= ${DESTDIR}/usr/mdec
|
||||
STRIP?= strip
|
||||
|
||||
LISTS= ${.CURDIR}/list
|
||||
RAMDISK !=cd $(.CURDIR)/../ramdisk/; \
|
||||
printf "xxx: .MAKE\n\t@echo \$${.OBJDIR}/ramdisk.fs\n" | \
|
||||
${MAKE} -s -f-
|
||||
|
||||
DISKTYPE?= rx33
|
||||
DISKSIZE?= 2400
|
||||
|
||||
# Some reasonable values for the -i parameter to newfs are:
|
||||
#
|
||||
# 6144 1147k, 189 inodes free
|
||||
# 16384 1159k, 93 inodes free
|
||||
# 204800 1167k, 29 inodes free
|
||||
INO_BYTES?= 204800
|
||||
|
||||
CLEANFILES+= netbsd.ram.gz
|
||||
|
||||
all: netbsd.ram.gz
|
||||
dd if=/dev/zero of=${IMAGE} count=${DISKSIZE}
|
||||
vnconfig -t ${DISKTYPE} -v -c ${VND_CDEV} ${IMAGE}
|
||||
disklabel -rw ${VND_CDEV} ${DISKTYPE}
|
||||
newfs -m 0 -o space -i ${INO_BYTES} -c 80 ${VND_RDEV} ${DISKTYPE}
|
||||
mount ${VND_DEV} ${MOUNT_POINT}
|
||||
TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
|
||||
TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
|
||||
@echo ""
|
||||
@df -i ${MOUNT_POINT}
|
||||
@echo ""
|
||||
@echo "installing new bootblocks"
|
||||
-disklabel ${VND} > blks
|
||||
disklabel -R -r ${VND} blks
|
||||
rm -f blks
|
||||
disklabel -B -b ${MDEC}/xxboot ${VND}
|
||||
umount ${MOUNT_POINT}
|
||||
vnconfig -u ${VND_CDEV}
|
||||
|
||||
unconfig:
|
||||
-umount -f ${MOUNT_POINT}
|
||||
-vnconfig -u ${VND_DEV}
|
||||
-/bin/rm -f ${IMAGE}
|
||||
|
||||
netbsd.ram.gz: ${KERN} ${RAMDISK}
|
||||
cp ${KERN} netbsd.tmp
|
||||
mdsetimage -v netbsd.tmp ${RAMDISK}
|
||||
${STRIP} netbsd.tmp
|
||||
gzip netbsd.tmp
|
||||
mv netbsd.tmp.gz ${.TARGET}
|
||||
|
||||
clean cleandir distclean:
|
||||
/bin/rm -f *.core ${IMAGE} ${CLEANFILES}
|
||||
|
||||
.include <bsd.obj.mk>
|
||||
.include <bsd.subdir.mk>
|
|
@ -0,0 +1,5 @@
|
|||
# $NetBSD: list,v 1.1 1999/03/12 18:36:52 ragge Exp $
|
||||
|
||||
# copy the kernel
|
||||
COPY ${OBJDIR}/netbsd.ram.gz netbsd.gz
|
||||
COPY ${DESTDIR}/boot boot
|
|
@ -0,0 +1,69 @@
|
|||
# $NetBSD: Makefile,v 1.1 1999/03/12 18:36:52 ragge Exp $
|
||||
|
||||
TOP= ${.CURDIR}/..
|
||||
|
||||
.include "${TOP}/Makefile.inc"
|
||||
IMAGE= ramdisk.fs
|
||||
|
||||
AUXTARGETS= install.sh upgrade.sh start.sh
|
||||
AUXCLEAN= ${AUXTARGETS}
|
||||
|
||||
CBIN= ramdiskbin
|
||||
|
||||
MOUNT_POINT?= /mnt
|
||||
# DEV/RDEV file system device, CDEV/RDEV vnconfig device
|
||||
VND?= vnd0
|
||||
VND_DEV= /dev/${VND}c
|
||||
VND_RDEV= /dev/r${VND}c
|
||||
VND_CDEV= /dev/${VND}c
|
||||
VND_CRDEV= /dev/r${VND}c
|
||||
IMAGE?= xxx.fs
|
||||
MDEC= ${DESTDIR}/usr/mdec
|
||||
|
||||
LISTS= list
|
||||
CRUNCHCONF= ${CBIN}.conf
|
||||
MTREE= mtree.conf
|
||||
|
||||
DISKTYPE= rx33
|
||||
|
||||
install.sh: install.tmpl
|
||||
sed "s/@@VERSION@@/${VER}/" < ${.ALLSRC} > ${.TARGET}
|
||||
|
||||
upgrade.sh: upgrade.tmpl
|
||||
sed "s/@@VERSION@@/${VER}/" < ${.ALLSRC} > ${.TARGET}
|
||||
|
||||
start.sh: start.tmpl
|
||||
sed "s/@@VERSION@@/${VER}/" < ${.ALLSRC} > ${.TARGET}
|
||||
|
||||
all: ${AUXTARGETS} ${CBIN}
|
||||
dd if=/dev/zero of=${IMAGE} count=2400
|
||||
vnconfig -t ${DISKTYPE} -v -c ${VND_CDEV} ${IMAGE}
|
||||
disklabel -rw ${VND_CDEV} ${DISKTYPE}
|
||||
newfs -m 0 -o space -c 80 ${VND_RDEV} ${DISKTYPE}
|
||||
mount ${VND_DEV} ${MOUNT_POINT}
|
||||
mtree -def ${.CURDIR}/${MTREE} -p ${MOUNT_POINT}/ -u
|
||||
TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
|
||||
TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${.CURDIR}/${LISTS}
|
||||
@echo ""
|
||||
@df -i ${MOUNT_POINT}
|
||||
@echo ""
|
||||
umount ${MOUNT_POINT}
|
||||
vnconfig -u ${VND_CDEV}
|
||||
|
||||
unconfig:
|
||||
-umount -f ${MOUNT_POINT}
|
||||
-vnconfig -u ${VND_DEV}
|
||||
-/bin/rm -f ${IMAGE}
|
||||
|
||||
${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
|
||||
crunchgen -D ${TOP}/../.. -L ${DESTDIR}/usr/lib ${.ALLSRC}
|
||||
|
||||
${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
|
||||
make -f ${CBIN}.mk all
|
||||
|
||||
clean cleandir distclean:
|
||||
/bin/rm -f ${AUXCLEAN} *.core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
|
||||
|
||||
.include <bsd.obj.mk>
|
||||
.include <bsd.subdir.mk>
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
# $NetBSD: Makefile.inc,v 1.1 1999/03/12 18:36:52 ragge Exp $
|
||||
|
||||
# TOP is assumed to be defined by Makefile including this one.
|
||||
|
||||
CBIN= ramdiskbin
|
||||
COMMONDIR= ${TOP}/ramdisk-common
|
||||
|
||||
MOUNT_POINT?= /mnt
|
||||
VND?= vnd0
|
||||
VND_DEV= /dev/${VND}a
|
||||
VND_RDEV= /dev/r${VND}a
|
||||
VND_CDEV= /dev/${VND}d
|
||||
VND_CRDEV= /dev/r${VND}d
|
||||
IMAGE?= xxx.fs
|
||||
MDEC= ${DESTDIR}/usr/mdec
|
||||
|
||||
LISTS= ${COMMONDIR}/list ${.CURDIR}/list
|
||||
CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
|
||||
MTREE= ${COMMONDIR}/mtree.conf
|
||||
|
||||
DISKTYPE= floppy3
|
||||
|
||||
all: ${AUXTARGETS} ${CBIN}
|
||||
dd if=/dev/zero of=${IMAGE} count=2880
|
||||
vnconfig -t ${DISKTYPE} -v -c ${VND_CDEV} ${IMAGE}
|
||||
disklabel -rw ${VND_CDEV} ${DISKTYPE}
|
||||
newfs -m 0 -o space -i 5120 -c 80 ${VND_RDEV} ${DISKTYPE}
|
||||
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_CDEV}
|
||||
|
||||
unconfig:
|
||||
-umount -f ${MOUNT_POINT}
|
||||
-vnconfig -u ${VND_DEV}
|
||||
-/bin/rm -f ${IMAGE}
|
||||
|
||||
${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
|
||||
crunchgen -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
|
||||
|
||||
${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
|
||||
make -f ${CBIN}.mk all
|
||||
|
||||
clean cleandir distclean:
|
||||
/bin/rm -f ${AUXCLEAN} *.core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
|
||||
|
||||
.include <bsd.obj.mk>
|
||||
.include <bsd.subdir.mk>
|
|
@ -0,0 +1,31 @@
|
|||
# $NetBSD: disktab.preinstall,v 1.1 1999/03/12 18:36:52 ragge Exp $
|
||||
#
|
||||
# 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)
|
||||
#
|
|
@ -0,0 +1,132 @@
|
|||
# $NetBSD: dot.commonutils,v 1.1 1999/03/12 18:36:52 ragge 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 NetBSD installed on
|
||||
# the hard disk. These are meant to be invoked from the shell prompt,
|
||||
# by people installing NetBSD.
|
||||
|
||||
# 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=/usr/bin/tar
|
||||
GUNZIP=/usr/bin/gunzip
|
||||
|
||||
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')? [0] "
|
||||
read which
|
||||
if [ "X$which" = "X" ]; then
|
||||
which=0
|
||||
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 --unlink -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 --unlink -xp"$tarverbose"f - )
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
# $NetBSD: dot.hdprofile,v 1.1 1999/03/12 18:36:52 ragge 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=vt100
|
||||
export TERM
|
||||
HOME=/
|
||||
export HOME
|
||||
|
||||
umask 022
|
||||
|
||||
if [ "X${DONEPROFILE}" = "X" ]; then
|
||||
DONEPROFILE=YES
|
||||
|
||||
echo "Checking filesystems..."
|
||||
fsck -y
|
||||
|
||||
echo "Mounting root..."
|
||||
mount -u /
|
||||
|
||||
# set up some sane defaults
|
||||
echo 'erase ^?, werase ^W, kill ^U, intr ^C'
|
||||
stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
|
||||
echo ''
|
||||
|
||||
TERMCAP=/.termcap ; export TERMCAP
|
||||
|
||||
[ -x /sysinst ] && /sysinst
|
||||
fi
|
|
@ -0,0 +1,209 @@
|
|||
# $NetBSD: dot.instutils,v 1.1 1999/03/12 18:36:52 ragge 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 utilities (functions), to get NetBSD configured
|
||||
# reasonably once it is installed on the hard disk. These are meant to be
|
||||
# invoked from the shell prompt, by people installing NetBSD.
|
||||
|
||||
config_int()
|
||||
{
|
||||
local intf resp ifname ifaddr ifflags
|
||||
intf=$1
|
||||
case "$intf" in
|
||||
""|lo*|ppp*|sl*|tun*)
|
||||
return 0;
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
echo -n "Configure" $intf "? [y]"
|
||||
read resp
|
||||
case "$resp" in
|
||||
n*|N*)
|
||||
return 0;
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
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_arg="netmask $ifnetmask"
|
||||
;;
|
||||
*)
|
||||
ifnetmask=
|
||||
ifnetmask_arg=
|
||||
;;
|
||||
esac
|
||||
|
||||
echo -n "Does this interface need a special media type? [n] "
|
||||
read resp
|
||||
case "$resp" in
|
||||
y*)
|
||||
echo -n "What media type? [10baseT/UTP] "
|
||||
read ifflags
|
||||
if [ "$ifflags" = "" ]; then
|
||||
ifflags="10baseT/UTP"
|
||||
fi
|
||||
ifflags_arg="media $ifflags"
|
||||
;;
|
||||
*)
|
||||
ifflags=
|
||||
ifflags_arg=
|
||||
;;
|
||||
esac
|
||||
echo "inet $ifname $ifnetmask_arg $ifflags_arg" > ${ETC}/ifconfig.$intf
|
||||
}
|
||||
|
||||
|
||||
Configure()
|
||||
{
|
||||
DEV=/dev
|
||||
ETC=/etc
|
||||
ROOT=/
|
||||
if [ ! -f /etc/fstab ]; then
|
||||
DEV=/mnt/dev
|
||||
ETC=/mnt/etc
|
||||
ROOT=/mnt
|
||||
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 "Configure network interfaces? [y] "
|
||||
read resp
|
||||
case "$resp" in
|
||||
n*)
|
||||
;;
|
||||
*)
|
||||
for if in `ifconfig -l`
|
||||
do
|
||||
config_int $if
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
echo ""
|
||||
echo -n "Making device nodes (may take a while)..."
|
||||
cd ${DEV}
|
||||
sh MAKEDEV all
|
||||
echo " done."
|
||||
|
||||
sync
|
||||
|
||||
if [ ! -f ${ROOT}/netbsd ]
|
||||
then
|
||||
echo "You have not unpacked the kernel installation"
|
||||
echo "set. You must do so before you reboot."
|
||||
fi
|
||||
}
|
||||
|
||||
# Upgrade cleanup utilities (functions), to make sure a recently-upgraded
|
||||
# system is safely runnable. These are meant to be invoked from the shell
|
||||
# prompt, by people installing NetBSD.
|
||||
|
||||
Cleanup()
|
||||
{
|
||||
upgrade_dir=/
|
||||
|
||||
if [ ! -f /etc/fstab ]; then
|
||||
upgrade_dir=/mnt
|
||||
fi
|
||||
|
||||
echo "Cleaning up miscellaneous files in /etc..."
|
||||
mv $upgrade_dir/etc/rc.bak $upgrade_dir/etc/rc
|
||||
chroot $upgrade_dir /usr/sbin/pwd_mkdb -p /etc/master.passwd
|
||||
chroot $upgrade_dir /bin/rm /etc/sendmail.fc > /dev/null 2>&1
|
||||
sync
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo "All that's left to do now is to install a new NetBSD kernel"
|
||||
echo "on your hard disk. You should now halt your machine using"
|
||||
echo "the 'halt' command. Once the machine is halted, replace the"
|
||||
echo "installation floppy with the kernel-copy floppy and hit any"
|
||||
echo "key to reboot. Use the kernel-copy floppy to copy a kernel"
|
||||
echo "to your hard disk."
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
# $NetBSD: dot.profile,v 1.1 1999/03/12 18:36:52 ragge Exp $
|
||||
#
|
||||
# Copyright (c) 1994 Christopher G. Demetriou
|
||||
# Copyright (c) 1997 Perry E. Metzger
|
||||
# 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=vt100
|
||||
export TERM
|
||||
HOME=/
|
||||
export HOME
|
||||
|
||||
umask 022
|
||||
|
||||
ROOTDEV=/dev/md0a
|
||||
|
||||
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 ''
|
||||
|
||||
# run update, so that installed software is written as it goes.
|
||||
update
|
||||
|
||||
# mount the ramdisk read write
|
||||
mount -u $ROOTDEV /
|
||||
|
||||
# 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 or upgrade script.
|
||||
sysinst
|
||||
fi
|
|
@ -0,0 +1,513 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $NetBSD: install.tmpl,v 1.1 1999/03/12 18:36:52 ragge Exp $
|
||||
#
|
||||
# Copyright (c) 1994 Christopher G. Demetriou
|
||||
# Copyright (c) 1997 Perry E. Metzger
|
||||
# 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.
|
||||
# This product includes software developed for the NetBSD Project
|
||||
# by Perry E. Metzger.
|
||||
# 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.
|
||||
#
|
||||
|
||||
# NetBSD 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
|
||||
ASYNC="-o async"
|
||||
|
||||
FSTAB=${FSTABDIR}/fstab
|
||||
|
||||
getresp() {
|
||||
read resp
|
||||
if [ "X$resp" = "X" ]; then
|
||||
resp=$1
|
||||
fi
|
||||
}
|
||||
|
||||
echo "Welcome to the NetBSD @@VERSION@@ installation program."
|
||||
echo ""
|
||||
echo "This program is designed to help you put NetBSD on your hard disk,"
|
||||
echo "in a simple and rational way. 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 ""
|
||||
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 ""
|
||||
echo "NetBSD 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 ""
|
||||
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."
|
||||
echo ""
|
||||
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 ""
|
||||
echo "\"${resp}\" is an invalid drive name. Valid choices"
|
||||
echo "are: "${driveunits}
|
||||
echo ""
|
||||
else
|
||||
drivename=${resp}
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Using disk ${drivename}."
|
||||
echo ""
|
||||
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 NetBSD 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*)
|
||||
more /kern/msgbuf
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo "You will now enter the disk geometry information"
|
||||
echo ""
|
||||
|
||||
echo -n "Number of bytes per disk sector? [512] "
|
||||
getresp 512
|
||||
bytes_per_sect="$resp"
|
||||
|
||||
echo -n "Number of disk cylinders? "
|
||||
getresp
|
||||
cyls_per_disk="$resp"
|
||||
|
||||
echo -n "Number of disk tracks (heads) per disk cylinder? "
|
||||
getresp
|
||||
tracks_per_cyl="$resp"
|
||||
|
||||
echo -n "Number of disk sectors per disk track? "
|
||||
getresp
|
||||
sects_per_track="$resp"
|
||||
|
||||
cylindersize=$(( $sects_per_track * $tracks_per_cyl ))
|
||||
cylbytes=$(( $cylindersize * $bytes_per_sect ))
|
||||
disksize=$(( $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"
|
||||
;;
|
||||
s*|S*)
|
||||
sizemult=1
|
||||
sizeunit="sectors"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "Enter cylinders ('c') or sectors ('s')."
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $sizeunit = "sectors" ]; then
|
||||
echo ""
|
||||
echo "For best disk performance, partitions should begin and end on"
|
||||
echo "cylinder boundaries. Wherever possible, pick sizes that are"
|
||||
echo "multiples of the cylinder size ($cylindersize sectors)."
|
||||
fi
|
||||
|
||||
echo -n ""
|
||||
echo -n "Size of NetBSD portion of disk (in $sizeunit)? "
|
||||
getresp
|
||||
partition=$resp
|
||||
partition_sects=$(( $resp * $sizemult ))
|
||||
part_offset=0
|
||||
if [ $partition_sects -lt $disksize ]; then
|
||||
echo -n "Offset of NetBSD portion of disk (in $sizeunit)? "
|
||||
getresp
|
||||
part_offset=$resp
|
||||
fi
|
||||
badspacesec=0
|
||||
if [ "$sect_fwd" = "sf:" ]; then
|
||||
badspacecyl=$(( $sects_per_track + 126 ))
|
||||
badspacecyl=$(( $badspacecyl + $cylindersize - 1 ))
|
||||
badspacecyl=$(( $badspacecyl / $cylindersize ))
|
||||
badspacesec=$(( $badspacecyl * $cylindersize ))
|
||||
echo ""
|
||||
echo -n "Using $badspacesec sectors ($badspacecyl cylinders) for the "
|
||||
echo "bad144 bad block table"
|
||||
fi
|
||||
|
||||
sects_left=$(( $partition_sects - $badspacesec ))
|
||||
units_left=$(( $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=$(( $root + $badspacesec / $sizemult ))
|
||||
units_left=$(( $partition - $part_used ))
|
||||
echo ""
|
||||
|
||||
swap=0
|
||||
while [ $swap -eq 0 ]; do
|
||||
echo "$units_left $sizeunit remaining in NetBSD 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=$(( $root_offset + $root ))
|
||||
part_used=$(( $part_used + $swap ))
|
||||
echo ""
|
||||
|
||||
fragsize=1024
|
||||
blocksize=8192
|
||||
|
||||
cat /etc/disktab.preinstall > $DT
|
||||
echo "" >> $DT
|
||||
echo "$labelname|NetBSD 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=$(( $root * $sizemult ))
|
||||
_offset=$(( $root_offset * $sizemult ))
|
||||
echo -n " :pa#${_size}:oa#${_offset}" >> $DT
|
||||
echo ":ta=4.2BSD:ba#${blocksize}:fa#${fragsize}:\\" >> $DT
|
||||
_size=$(( $swap * $sizemult ))
|
||||
_offset=$(( $swap_offset * $sizemult ))
|
||||
echo " :pb#${_size}:ob#${_offset}:tb=swap:\\" >> $DT
|
||||
_size=$(( $partition * $sizemult ))
|
||||
_offset=$(( $part_offset * $sizemult ))
|
||||
echo " :pc#${_size}:oc#${_offset}:\\" >> $DT
|
||||
|
||||
echo "You will now have to enter information about any other partitions"
|
||||
echo "to be created in the NetBSD portion of the disk. This process will"
|
||||
echo "be complete when you've filled up all remaining space in the NetBSD"
|
||||
echo "portion of the disk."
|
||||
|
||||
while [ $part_used -lt $partition ]; do
|
||||
part_size=0
|
||||
units_left=$(( $partition - $part_used ))
|
||||
while [ $part_size -eq 0 ]; do
|
||||
echo ""
|
||||
echo -n "$units_left $sizeunit remaining in NetBSD portion of "
|
||||
echo "the disk"
|
||||
echo -n "Next partition size (in $sizeunit)? "
|
||||
getresp
|
||||
case $resp in
|
||||
[1-9]*)
|
||||
total=$(( $part_used + $resp ))
|
||||
if [ $total -gt $partition ]; then
|
||||
echo -n "That would make the parition"
|
||||
echo "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
|
||||
if [ "$ename" = "" ]; then
|
||||
ename=$part_name
|
||||
offset=$(( $part_offset + $root + $swap ))
|
||||
_size=$(( $part_size * $sizemult ))
|
||||
_offset=$(( $offset * $sizemult ))
|
||||
echo -n " :pe#${_size}:oe#${_offset}" >> $DT
|
||||
echo ":te=4.2BSD:be#${blocksize}:fe#${fragsize}:\\" >> $DT
|
||||
offset=$(( $offset + $part_size ))
|
||||
elif [ "$fname" = "" ]; then
|
||||
fname=$part_name
|
||||
_size=$(( $part_size * $sizemult ))
|
||||
_offset=$(( $offset * $sizemult ))
|
||||
echo -n " :pf#${_size}:of#${_offset}" >> $DT
|
||||
echo ":tf=4.2BSD:bf#${blocksize}:ff#${fragsize}:\\" >> $DT
|
||||
offset=$(( $offset + $part_size ))
|
||||
elif [ "$gname" = "" ]; then
|
||||
gname=$part_name
|
||||
_size=$(( $part_size * $sizemult ))
|
||||
_offset=$(( $offset * $sizemult ))
|
||||
echo -n " :pg#${_size}:og#${_offset}" >> $DT
|
||||
echo ":tg=4.2BSD:bg#${blocksize}:fg#${fragsize}:\\" >> $DT
|
||||
offset=$(( $offset + $part_size ))
|
||||
elif [ "$hname" = "" ]; then
|
||||
hname=$part_name
|
||||
_size=$(( $part_size * $sizemult ))
|
||||
_offset=$(( $offset * $sizemult ))
|
||||
echo -n " :ph#${_size}:oh#${_offset}" >> $DT
|
||||
echo ":th=4.2BSD:bh#${blocksize}:fh#${fragsize}:\\" >> $DT
|
||||
part_used=$partition
|
||||
fi
|
||||
done
|
||||
echo " :pd#${disksize}:od#0:" >> $DT
|
||||
sync
|
||||
|
||||
echo ""
|
||||
echo "THIS IS YOUR LAST CHANCE!!!"
|
||||
echo ""
|
||||
echo -n "Are you SURE you want NetBSD 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 -r $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 $ASYNC /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 $ASYNC /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 $ASYNC /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 $ASYNC /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 $ASYNC /dev/${drivename}h /mnt/$hname
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Populating filesystems with bootstrapping binaries and config files"
|
||||
$DONTDOIT tar --one-file-system -cf - . | (cd /mnt ; tar --unlink -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
|
||||
echo /dev/${drivename}b none swap sw 0 0 | 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
|
||||
sync
|
||||
echo " done."
|
||||
|
||||
echo ""
|
||||
echo -n "Installing boot blocks on $drivename..."
|
||||
# shouldn't be needed, but...
|
||||
$DONTDOIT rm -f /mnt/boot
|
||||
$DONTDOIT /usr/mdec/installboot /usr/mdec/biosboot.sym /dev/r${drivename}a
|
||||
echo " done."
|
||||
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo "OK! The preliminary work of setting up your disk is now complete."
|
||||
echo ""
|
||||
echo "The remaining tasks are:"
|
||||
echo ""
|
||||
echo "To load and install the NetBSD distribution sets."
|
||||
echo "Currently the hard drive's root filesystem is mounted on /mnt"
|
||||
echo ""
|
||||
echo "To copy a NetBSD kernel to the hard drive's root filesystem."
|
||||
echo "Once accomplished, you can boot off the hard drive."
|
||||
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 ""
|
|
@ -0,0 +1,99 @@
|
|||
# $NetBSD: list,v 1.1 1999/03/12 18:36:52 ragge Exp $
|
||||
|
||||
# copy the crunched binary, link to it, and kill it
|
||||
COPY ${OBJDIR}/ramdiskbin ramdiskbin
|
||||
LINK ramdiskbin sysinst
|
||||
LINK ramdiskbin bin/cat
|
||||
LINK ramdiskbin bin/chmod
|
||||
LINK ramdiskbin bin/cp
|
||||
LINK ramdiskbin bin/dd
|
||||
LINK ramdiskbin bin/df
|
||||
LINK ramdiskbin bin/ed
|
||||
LINK ramdiskbin bin/ln
|
||||
LINK ramdiskbin bin/ls
|
||||
LINK ramdiskbin bin/mkdir
|
||||
LINK ramdiskbin bin/mt
|
||||
LINK ramdiskbin bin/mv
|
||||
LINK ramdiskbin bin/pwd
|
||||
LINK ramdiskbin bin/rm
|
||||
LINK ramdiskbin bin/sh
|
||||
LINK ramdiskbin bin/stty
|
||||
LINK ramdiskbin bin/sync
|
||||
LINK ramdiskbin bin/test
|
||||
LINK ramdiskbin bin/[
|
||||
LINK ramdiskbin sbin/disklabel
|
||||
LINK ramdiskbin sbin/fdisk
|
||||
LINK ramdiskbin sbin/fsck
|
||||
LINK ramdiskbin sbin/fsck_ffs
|
||||
LINK ramdiskbin sbin/halt
|
||||
LINK ramdiskbin sbin/ifconfig
|
||||
LINK ramdiskbin sbin/init
|
||||
LINK ramdiskbin sbin/mknod
|
||||
LINK ramdiskbin sbin/mount
|
||||
LINK ramdiskbin sbin/mount_cd9660
|
||||
LINK ramdiskbin sbin/mount_ffs
|
||||
LINK ramdiskbin sbin/mount_msdos
|
||||
LINK ramdiskbin sbin/mount_nfs
|
||||
LINK ramdiskbin sbin/mount_kernfs
|
||||
LINK ramdiskbin sbin/newfs
|
||||
LINK ramdiskbin sbin/ping
|
||||
LINK ramdiskbin sbin/reboot
|
||||
LINK ramdiskbin sbin/restore
|
||||
LINK ramdiskbin sbin/route
|
||||
LINK ramdiskbin sbin/rrestore
|
||||
LINK ramdiskbin sbin/shutdown
|
||||
LINK ramdiskbin sbin/slattach
|
||||
LINK ramdiskbin sbin/umount
|
||||
SYMLINK /bin/cat usr/bin/chgrp
|
||||
SYMLINK /bin/cat usr/bin/ftp
|
||||
SYMLINK /bin/cat usr/bin/gunzip
|
||||
SYMLINK /bin/cat usr/bin/gzcat
|
||||
SYMLINK /bin/cat usr/bin/gzip
|
||||
SYMLINK /bin/cat usr/bin/more
|
||||
SYMLINK /bin/cat usr/bin/sed
|
||||
SYMLINK /bin/cat usr/bin/strings
|
||||
SYMLINK /bin/cat usr/bin/tar
|
||||
# SYMLINK /bin/cat usr/sbin/bad144
|
||||
SYMLINK /bin/cat usr/sbin/chown
|
||||
SYMLINK /bin/cat usr/sbin/chroot
|
||||
SYMLINK /bin/cat usr/sbin/update
|
||||
SPECIAL /bin/rm ramdiskbin
|
||||
|
||||
# copy the MAKEDEV script and make some devices
|
||||
COPY ${CURDIR}/../../../etc/etc.vax/MAKEDEV dev/MAKEDEV
|
||||
SPECIAL cd dev; sh MAKEDEV std mt0 st0 rd0 rd1 dz0 dl0 dhu0 rx0
|
||||
SPECIAL cd dev; sh MAKEDEV ra0 ra1 hp0 hp1 sd0 sd1 md0
|
||||
SPECIAL /bin/rm dev/MAKEDEV
|
||||
|
||||
# we need the boot in /, and boot blocks in /usr/mdec
|
||||
COPY ${DESTDIR}/boot boot
|
||||
COPY ${DESTDIR}/usr/mdec/xxboot usr/mdec/xxboot
|
||||
LINK usr/mdec/xxboot usr/mdec/raboot
|
||||
LINK usr/mdec/xxboot usr/mdec/hpboot
|
||||
LINK usr/mdec/xxboot usr/mdec/rdboot
|
||||
LINK usr/mdec/xxboot usr/mdec/sdboot
|
||||
|
||||
# various files that we need in /etc for the install
|
||||
COPY ${CURDIR}/../../../etc/group etc/group
|
||||
COPY ${CURDIR}/../../../etc/master.passwd etc/master.passwd
|
||||
COPY ${CURDIR}/../../../etc/protocols etc/protocols
|
||||
COPY ${CURDIR}/../../../etc/services etc/services
|
||||
SPECIAL pwd_mkdb -p -d ./ etc/master.passwd
|
||||
|
||||
# and the common installation tools
|
||||
# COPY dot.commonutils .commonutils
|
||||
COPY termcap.vt100 usr/share/misc/termcap
|
||||
|
||||
# the disktab explanation file
|
||||
COPY disktab.preinstall etc/disktab.preinstall
|
||||
|
||||
# and the installation tools
|
||||
COPY dot.profile .profile
|
||||
# COPY dot.instutils .instutils
|
||||
# COPY ${OBJDIR}/install.sh install
|
||||
# COPY ${OBJDIR}/upgrade.sh upgrade
|
||||
# COPY ${OBJDIR}/start.sh start
|
||||
COPY dot.hdprofile tmp/.hdprofile
|
||||
# SPECIAL chmod 755 install
|
||||
# SPECIAL chmod 755 upgrade
|
||||
# SPECIAL chmod 755 start
|
|
@ -0,0 +1,77 @@
|
|||
# $NetBSD: mtree.conf,v 1.1 1999/03/12 18:36:52 ragge 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
|
||||
..
|
|
@ -0,0 +1,31 @@
|
|||
# $NetBSD: ramdiskbin.conf,v 1.1 1999/03/12 18:36:53 ragge Exp $
|
||||
#
|
||||
# ramdiskbin.conf - unified binary for the install ramdisk
|
||||
#
|
||||
|
||||
srcdirs bin sbin usr.bin/less usr.bin usr.sbin gnu/usr.bin
|
||||
|
||||
progs cat chmod chown chroot cp dd df disklabel ed
|
||||
progs fsck fsck_ffs ftp gzip ifconfig init less
|
||||
progs ln ls mkdir mknod mount mount_cd9660 mount_ffs
|
||||
progs mount_nfs mount_kernfs mt mv newfs ping pwd reboot restore rm
|
||||
progs route sed sh shutdown slattach stty swapctl sync tar test
|
||||
progs umount update
|
||||
progs sysinst
|
||||
|
||||
special sysinst srcdir distrib/utils/sysinst/arch/vax
|
||||
special init srcdir distrib/utils/init_s
|
||||
|
||||
ln chown chgrp
|
||||
ln gzip gzcat gunzip
|
||||
ln less more
|
||||
ln sh -sh # init invokes the shell this way
|
||||
ln test [
|
||||
ln mount_cd9660 cd9660
|
||||
ln mount_ffs ffs
|
||||
ln mount_nfs nfs
|
||||
ln mount_kernfs kernfs
|
||||
ln reboot halt
|
||||
ln restore rrestore
|
||||
|
||||
libs -ledit -lutil -lcurses -ltermcap -lrmt -lcrypt -ll -lm
|
|
@ -0,0 +1,49 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $NetBSD: start.tmpl,v 1.1 1999/03/12 18:36:53 ragge Exp $
|
||||
|
||||
again="true"
|
||||
|
||||
echo "Welcome to the NetBSD @@VERSION@@ installation floppy."
|
||||
echo
|
||||
|
||||
while [ $again = "true" ]; do
|
||||
|
||||
echo 'enter "sysinst" to run the new system install program,'
|
||||
echo ' "install" to install NetBSD,'
|
||||
echo ' "upgrade" to upgrade an existing NetBSD system,'
|
||||
echo ' or "shell" for a shell prompt.'
|
||||
echo
|
||||
echo -n "your choice? "
|
||||
read resp
|
||||
|
||||
case "$resp" in
|
||||
sysinst|install|upgrade|shell)
|
||||
again="false"
|
||||
;;
|
||||
"")
|
||||
echo
|
||||
;;
|
||||
*)
|
||||
echo "Sorry, $resp isn't valid."
|
||||
echo
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "$resp" in
|
||||
sysinst)
|
||||
sysinst
|
||||
;;
|
||||
install)
|
||||
install
|
||||
;;
|
||||
upgrade)
|
||||
upgrade
|
||||
;;
|
||||
shell)
|
||||
echo 'If you want to run install or upgrade later,'
|
||||
echo 'simply type "install" or "upgrade" to the shell.'
|
||||
echo 'good luck!'
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,13 @@
|
|||
# $NetBSD: termcap.vt100,v 1.1 1999/03/12 18:36:53 ragge Exp $
|
||||
#
|
||||
# This should be something that match most of VT100 control codes.
|
||||
#
|
||||
vt100|vt100-am|dec-vt100:\
|
||||
:cr=^M:do=^J:nl=^J:bl=^G:co#80:li#24:cl=50\E[;H\E[2J:\
|
||||
:le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\
|
||||
:ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
|
||||
:md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:is=\E[1;24r\E[24;1H:\
|
||||
:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\
|
||||
:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\
|
||||
:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:ta=^I:pt:sr=5\EM:vt#3:xn:\
|
||||
:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
|
|
@ -0,0 +1,257 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $NetBSD: upgrade.tmpl,v 1.1 1999/03/12 18:36:53 ragge Exp $
|
||||
#
|
||||
# Copyright (c) 1994 Christopher G. Demetriou
|
||||
# Copyright (c) 1997 Perry E. Metzger
|
||||
# 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.
|
||||
# This product includes software developed for the NetBSD Project
|
||||
# by Perry E. Metzger.
|
||||
# 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.
|
||||
#
|
||||
|
||||
# NetBSD upgrade 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
|
||||
UARGS="-c 2"
|
||||
|
||||
FSTAB=${FSTABDIR}/fstab
|
||||
|
||||
getresp() {
|
||||
read resp
|
||||
if [ "X$resp" = "X" ]; then
|
||||
resp=$1
|
||||
fi
|
||||
}
|
||||
|
||||
echo "Welcome to the NetBSD @@VERSION@@ upgrade program."
|
||||
echo ""
|
||||
echo "This program is designed to help you put the new version of NetBSD"
|
||||
echo "on your hard disk, in a simple and rational way. To upgrade, you"
|
||||
echo "must have plenty of free space on all partitions which will be"
|
||||
echo "upgraded. If you have at least 1MB free on your root partition,"
|
||||
echo "and several free on your /usr patition, you should be fine."
|
||||
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 "upgrade 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 "the upgrade may leave your system in an inconsistent (and unusable)"
|
||||
echo "state."
|
||||
echo ""
|
||||
echo -n "Proceed with upgrade? [n] "
|
||||
getresp "n"
|
||||
case "$resp" in
|
||||
y*|Y*)
|
||||
echo "Cool! Let's get to it..."
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
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
|
||||
|
||||
# find out what units are possible, and query the user.
|
||||
driveunits=`ls /dev/[sw]d?a | sed -e 's,/dev/\(...\)a,\1,g'`
|
||||
if [ "X${driveunits}" = "X" ]; then
|
||||
echo "FATAL ERROR:"
|
||||
echo "No disk devices."
|
||||
echo "This is probably a bug in the install disks."
|
||||
echo "Exiting install program."
|
||||
exit
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "The following disks are supported by this upgrade procedure:"
|
||||
echo " "${driveunits}
|
||||
echo "If your system was previously completely contained within the"
|
||||
echo "disks listed above (i.e. if your system didn't occupy any space"
|
||||
echo "on disks NOT listed above), this upgrade disk can upgrade your"
|
||||
echo "system. If it cannot, hit Control-C at the prompt."
|
||||
echo ""
|
||||
while [ "X${drivename}" = "X" ]; do
|
||||
echo -n "Which disk contains your root partition? "
|
||||
getresp
|
||||
otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
|
||||
if [ "X${driveunits}" = "X${otherdrives}" ]; then
|
||||
echo ""
|
||||
echo "\"${resp}\" is an invalid drive name. Valid choices"
|
||||
echo "are: "${driveunits}
|
||||
echo ""
|
||||
else
|
||||
drivename=${resp}
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Root partition is on ${drivename}a."
|
||||
|
||||
echo ""
|
||||
echo "If (and only if!) you are upgrading from NetBSD 0.9 or below,"
|
||||
echo "you should upgrade to the new file system format. Do not answer"
|
||||
echo "yes if you are upgrading from NetBSD 1.0 or above."
|
||||
echo "Would you like to upgrade your file systems to the new file system"
|
||||
echo -n "format? [y] "
|
||||
getresp "y"
|
||||
case "$resp" in
|
||||
n*|N*)
|
||||
echo ""
|
||||
echo "If you are upgrading from NetBSD 0.9 or below,"
|
||||
echo "you should upgrade your file systems with 'fsck -c 2'"
|
||||
echo "as soon as is feasible, because the new file system"
|
||||
echo "code is better-tested and more performant."
|
||||
upgrargs=""
|
||||
upgradefs=NO
|
||||
;;
|
||||
*)
|
||||
upgrargs=$UARGS
|
||||
upgradefs=YES
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ $upgradefs = YES ]; then
|
||||
echo ""
|
||||
echo "your file systems will be upgraded while they are checked"
|
||||
fi
|
||||
|
||||
echo "checking the file system on ${drivename}a..."
|
||||
|
||||
fsck -f -p $upgrargs /dev/r${drivename}a
|
||||
if [ $? != 0 ]; then
|
||||
echo "FATAL ERROR: FILE SYSTEM UPGRADE FAILED."
|
||||
echo "You should probably reboot the machine, fsck your"
|
||||
echo "disk(s), and try the upgrade procedure again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Mounting root partition on /mnt..."
|
||||
mount /dev/${drivename}a /mnt
|
||||
if [ $? != 0 ]; then
|
||||
echo "FATAL ERROR: MOUNT FAILED."
|
||||
echo "You should verify that your system is set up as you"
|
||||
echo "described, and re-attempt the upgrade procedure."
|
||||
exit 1
|
||||
fi
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo -n "Copying new fsck binary to your hard disk..."
|
||||
if [ ! -d /mnt/sbin ]; then
|
||||
mkdir /mnt/sbin
|
||||
fi
|
||||
cp /sbin/fsck /mnt/sbin/fsck
|
||||
if [ $? != 0 ]; then
|
||||
echo "FATAL ERROR: COPY FAILED."
|
||||
echo "It in unclear why this error would occur. It looks"
|
||||
echo "like you may end up having to upgrade by hand."
|
||||
exit 1
|
||||
fi
|
||||
echo " Done."
|
||||
|
||||
echo ""
|
||||
echo "Re-mounting root partition read-only..."
|
||||
mount -u -o ro /dev/${drivename}a /mnt
|
||||
if [ $? != 0 ]; then
|
||||
echo "FATAL ERROR: RE-MOUNT FAILED."
|
||||
echo "It in unclear why this error would occur. It looks"
|
||||
echo "like you may end up having to upgrade by hand."
|
||||
exit 1
|
||||
fi
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo "checking the rest of your file systems..."
|
||||
chroot /mnt fsck -f -p $upgrargs
|
||||
if [ $? != 0 ]; then
|
||||
echo "FATAL ERROR: FILE SYSTEM UPGRADE(S) FAILED."
|
||||
echo "You should probably reboot the machine, fsck your"
|
||||
echo "file system(s), and try the upgrade procedure"
|
||||
echo "again."
|
||||
exit 1
|
||||
fi
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo "Re-mounting root partition read-write..."
|
||||
mount -u -o rw /dev/${drivename}a /mnt
|
||||
if [ $? != 0 ]; then
|
||||
echo "FATAL ERROR: RE-MOUNT FAILED."
|
||||
echo "It in unclear why this error would occur. It looks"
|
||||
echo "like you may end up having to upgrade by hand."
|
||||
exit 1
|
||||
fi
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo "Updating boot blocks on ${drivename}..."
|
||||
# shouldn't be needed, but...
|
||||
$DONTDOIT rm -f /mnt/boot
|
||||
$DONTDOIT /usr/mdec/installboot /usr/mdec/biosboot.sym /dev/r${drivename}a
|
||||
if [ $? != 0 ]; then
|
||||
echo "FATAL ERROR: UPDATE OF DISK LABEL FAILED."
|
||||
echo "It in unclear why this error would occur. It looks"
|
||||
echo "like you may end up having to upgrade by hand."
|
||||
exit 1
|
||||
fi
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo "Copying bootstrapping binaries and config files to the hard drive..."
|
||||
$DONTDOIT cp /mnt/.profile /mnt/.profile.bak
|
||||
$DONTDOIT tar --exclude etc --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - )
|
||||
$DONTDOIT mv /mnt/etc/rc /mnt/etc/rc.bak
|
||||
$DONTDOIT cp /tmp/.hdprofile /mnt/.profile
|
||||
|
||||
echo ""
|
||||
echo "Mounting remaining partitions..."
|
||||
chroot /mnt mount -at ffs > /dev/null 2>&1
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo "OK! The preliminary work of setting up your disk is now complete,"
|
||||
echo "and you can now upgrade the actual NetBSD software."
|
||||
echo ""
|
||||
echo "Right now, your hard disk is mounted on /mnt. You should consult"
|
||||
echo "the installation notes to determine how to load and install the new"
|
||||
echo "NetBSD distribution sets, and how to clean up after the upgrade"
|
||||
echo "software, when you are done."
|
||||
echo ""
|
||||
echo "GOOD LUCK!"
|
||||
echo ""
|
Loading…
Reference in New Issue