1 1.20 tsutsui # $NetBSD: dot.profile,v 1.20 2009/12/24 14:56:14 tsutsui Exp $ 2 1.1 mrg # 3 1.11 pk # Copyright (c) 2000 The NetBSD Foundation, Inc. 4 1.1 mrg # All rights reserved. 5 1.11 pk # 6 1.11 pk # This code is derived from software contributed to The NetBSD Foundation 7 1.11 pk # by Paul Kranenburg. 8 1.11 pk # 9 1.1 mrg # Redistribution and use in source and binary forms, with or without 10 1.1 mrg # modification, are permitted provided that the following conditions 11 1.1 mrg # are met: 12 1.1 mrg # 1. Redistributions of source code must retain the above copyright 13 1.1 mrg # notice, this list of conditions and the following disclaimer. 14 1.1 mrg # 2. Redistributions in binary form must reproduce the above copyright 15 1.1 mrg # notice, this list of conditions and the following disclaimer in the 16 1.1 mrg # documentation and/or other materials provided with the distribution. 17 1.11 pk # 18 1.11 pk # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19 1.11 pk # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20 1.11 pk # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 1.11 pk # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22 1.11 pk # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 1.11 pk # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 1.11 pk # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 1.11 pk # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 1.11 pk # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 1.11 pk # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 1.11 pk # POSSIBILITY OF SUCH DAMAGE. 29 1.11 pk # 30 1.1 mrg 31 1.1 mrg PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ 32 1.1 mrg export PATH 33 1.1 mrg HOME=/ 34 1.1 mrg export HOME 35 1.1 mrg 36 1.1 mrg umask 022 37 1.1 mrg 38 1.15 pk MACHINE=sparc 39 1.12 pk INSTFS_MP=/instfs 40 1.12 pk MINIROOT_FSSIZE=10000 41 1.17 lukem MINIROOT_BPINODE=1024 42 1.12 pk 43 1.12 pk if [ "${BOOTFS_DONEPROFILE}" != "YES" ]; then 44 1.12 pk 45 1.12 pk BOOTFS_DONEPROFILE=YES 46 1.12 pk export BOOTFS_DONEPROFILE 47 1.12 pk 48 1.12 pk # mount root read-write 49 1.12 pk mount_ffs -o update /dev/md0a / 50 1.12 pk 51 1.12 pk # mount /instfs 52 1.17 lukem mount_mfs -s $MINIROOT_FSSIZE -i $MINIROOT_BPINODE swap $INSTFS_MP 53 1.1 mrg fi 54 1.11 pk 55 1.12 pk # A cat simulator 56 1.12 pk cat() 57 1.12 pk { 58 1.12 pk local l 59 1.12 pk while read l; do 60 1.12 pk echo "$l" 61 1.12 pk done 62 1.12 pk } 63 1.12 pk 64 1.12 pk _resp="" 65 1.12 pk getresp() { 66 1.12 pk read _resp 67 1.12 pk if [ "$_resp" = "" ]; then 68 1.12 pk _resp=$1 69 1.12 pk fi 70 1.12 pk } 71 1.11 pk 72 1.12 pk # Load instfs 73 1.11 pk 74 1.12 pk floppy() 75 1.12 pk { 76 1.14 pk local dev rval 77 1.14 pk 78 1.14 pk rval=0 79 1.20 tsutsui dev="/dev/fd0a" 80 1.14 pk 81 1.14 pk echo "Ejecting floppy disk" 82 1.18 pk eject $dev 83 1.14 pk 84 1.12 pk cat <<EOF 85 1.14 pk Remove the boot disk from the floppy station and insert the second disk of 86 1.14 pk the floppy installation set into the disk drive. 87 1.12 pk 88 1.12 pk The question below allows you to specify the device name of the floppy 89 1.12 pk drive. Usually, the default device will do just fine. 90 1.12 pk EOF 91 1.12 pk echo -n "Floppy device to load the installation utilities from [$dev]: " 92 1.12 pk getresp "$dev"; dev="$_resp" 93 1.12 pk 94 1.12 pk echo "Extracting installation utilities... " 95 1.14 pk (cd $INSTFS_MP && tar zxpf $dev) || rval=1 96 1.14 pk 97 1.14 pk echo "Ejecting floppy disk" 98 1.18 pk eject $dev 99 1.14 pk return $rval 100 1.12 pk } 101 1.12 pk 102 1.12 pk tape() 103 1.12 pk { 104 1.13 pk local dev fn bsa 105 1.12 pk cat <<EOF 106 1.12 pk By default, the installation utilities are located in the second tape file 107 1.12 pk on the NetBSD/sparc installation tape. In case your tape layout is different, 108 1.12 pk choose the appropriate tape file number below. 109 1.12 pk 110 1.12 pk EOF 111 1.12 pk dev="/dev/nrst0" 112 1.12 pk echo -n "Tape device to load the installation utilities from [$dev]: " 113 1.12 pk getresp "$dev"; dev="$_resp" 114 1.12 pk 115 1.12 pk fn=2 116 1.12 pk echo -n "Tape file number [$fn]: " 117 1.12 pk getresp "$fn"; fn="$_resp" 118 1.12 pk 119 1.13 pk echo -n "Tape block size (use only if you know you need it): " 120 1.13 pk getresp ""; if [ "$_resp" != "" ]; then 121 1.13 pk bsa="-b $_resp" 122 1.13 pk fi 123 1.12 pk 124 1.12 pk echo "Positioning tape... " 125 1.12 pk mt -f $dev asf $(($fn - 1)) 126 1.12 pk [ $? = 0 ] || return 1 127 1.12 pk 128 1.12 pk echo "Extracting installation utilities... " 129 1.13 pk (cd $INSTFS_MP && tar $bsa -z -x -p -f $dev) || return 1 130 1.12 pk } 131 1.12 pk 132 1.12 pk cdrom() 133 1.12 pk { 134 1.12 pk local dev tf rval 135 1.12 pk cat <<EOF 136 1.12 pk The installation utilities are located on the ISO CD9660 filesystem on the 137 1.12 pk NetBSD/sparc CD-ROM. We need to mount the filesystem from the CD-ROM device 138 1.12 pk which you can specify below. Note: after the installation utilities are 139 1.12 pk extracted this filesystem will be unmounted again. 140 1.12 pk 141 1.12 pk EOF 142 1.12 pk 143 1.12 pk rval=0 144 1.12 pk dev="/dev/cd0a" 145 1.12 pk echo -n "CD-ROM device to use [$dev]: " 146 1.12 pk getresp "$dev"; dev="$_resp" 147 1.12 pk 148 1.12 pk mount_cd9660 -o rdonly $dev /cdrom || return 1 149 1.12 pk 150 1.15 pk # Look for instfs.tgz in MACHINE subdirectory first 151 1.15 pk tf=/cdrom/$MACHINE/installation/bootfs/instfs.tgz 152 1.15 pk [ -f $tf ] || tf=/cdrom/installation/bootfs/instfs.tgz 153 1.16 pk [ -f $tf ] || { 154 1.16 pk echo "Note: instfs.tgz image not found in default location" 155 1.16 pk tf="" 156 1.16 pk } 157 1.16 pk 158 1.16 pk while :; do 159 1.16 pk echo -n "Path to instfs.tgz [$tf] " 160 1.16 pk [ -z "$tf" ] && echo -n "(<return> to abort) " 161 1.16 pk getresp "$tf"; tf="$_resp" 162 1.16 pk [ -z "$tf" ] && { rval=1; break; } 163 1.16 pk [ -f "$tf" ] && break; 164 1.16 pk echo "$tf not found" 165 1.16 pk tf="" 166 1.16 pk done 167 1.15 pk 168 1.15 pk [ $rval = 0 ] && (cd $INSTFS_MP && tar zxpf $tf) || rval=1 169 1.15 pk 170 1.12 pk umount /cdrom 171 1.12 pk return $rval 172 1.12 pk } 173 1.12 pk 174 1.12 pk cat <<EOF 175 1.12 pk Welcome to the NetBSD/sparc microroot setup utility. 176 1.12 pk 177 1.12 pk We've just completed the first stage of a two-stage procedure to load a 178 1.12 pk fully functional NetBSD installation environment on your machine. In the 179 1.12 pk second stage which is to follow now, a set of additional installation 180 1.12 pk utilities must be load from your NetBSD/sparc installation medium. 181 1.11 pk 182 1.12 pk EOF 183 1.11 pk 184 1.11 pk while :; do 185 1.12 pk cat <<EOF 186 1.12 pk This procedure supports one of the following media: 187 1.12 pk 188 1.12 pk 1) cdrom 189 1.12 pk 2) tape 190 1.12 pk 3) floppy 191 1.12 pk 192 1.12 pk EOF 193 1.12 pk echo -n "Installation medium to load the additional utilities from: " 194 1.12 pk read answer 195 1.12 pk echo "" 196 1.12 pk case "$answer" in 197 1.12 pk 1|cdrom) _func=cdrom;; 198 1.12 pk 2|tape) _func=tape;; 199 1.12 pk 3|floppy) _func=floppy;; 200 1.12 pk *) echo "option not supported"; continue;; 201 1.12 pk esac 202 1.12 pk $_func && break 203 1.11 pk done 204 1.11 pk 205 1.11 pk # switch to /instfs, and pretend we logged in there. 206 1.12 pk chroot $INSTFS_MP /bin/sh /.profile 207 1.12 pk 208 1.12 pk # 209 1.12 pk echo "Back in microroot; halting machine..." 210 1.12 pk halt 211