install revision 1.3 1 1.3 perry $NetBSD: install,v 1.3 1998/01/09 18:45:34 perry Exp $
2 1.3 perry
3 1.1 cjs 0. Introduction
4 1.1 cjs
5 1.2 cjs This is the first release of NetBSD/alpha with regular packaging
6 1.2 cjs and install tools, and the installation program is still rather
7 1.2 cjs primitive. It also hasn't been tested very well, so there may
8 1.2 cjs be bugs in both it and this document. However, if you have
9 1.1 cjs problems, don't despair; most problems you might encounter are
10 1.2 cjs very easy to fix. We strongly suggest you join the port-alpha
11 1.2 cjs list (see the section on mailing lists on www.netbsd.org) and
12 1.2 cjs ask questions there if you run into any problems. Also report
13 1.2 cjs problem you've gotten around there or by using send-pr so that
14 1.2 cjs they can be fixed for the next release.
15 1.2 cjs
16 1.1 cjs 1. General
17 1.1 cjs
18 1.1 cjs The following is a walk-through of the steps you will take
19 1.1 cjs while getting NetBSD installed on your hard disk. It's divided
20 1.1 cjs into three basic components: booting NetBSD (section 2 below),
21 1.1 cjs preparing the disk (section 3 below), and loading the operating
22 1.1 cjs system files onto the disk (section 4 below).
23 1.1 cjs
24 1.1 cjs 2. Booting NetBSD
25 1.1 cjs
26 1.1 cjs You have two choices of how to boot your machine. If you have a
27 1.1 cjs floppy drive, you may boot from that. This is probably the simplest
28 1.1 cjs way of getting started. If you don't have a floppy drive, you will
29 1.1 cjs need to set yourself up for a boot from a file server on the
30 1.1 cjs network, which is a little more complex.
31 1.1 cjs
32 1.1 cjs 2.1 Making and Booting a Floppy
33 1.1 cjs
34 1.1 cjs The 3.5", 1.44 MB boot floppy image is found under the
35 1.1 cjs NetBSD/alpha _VER distribution directory in the file
36 1.1 cjs alpha/installation/floppy/floppy-144. You need to take this disk
37 1.1 cjs image and put it on a floppy disk.
38 1.1 cjs
39 1.1 cjs If you have a Unix system handy, you can do this with a command
40 1.1 cjs like the following:
41 1.1 cjs
42 1.2 cjs dd if=floppy-144 of=/dev/rfd0a
43 1.1 cjs
44 1.1 cjs If the Unix system you are using is not a NetBSD system, you will
45 1.1 cjs probably need to replace `/dev/rfd0a' with the name of the floppy
46 1.1 cjs device on your particular system.
47 1.1 cjs
48 1.2 cjs If you have an MS-DOS or Windows system available, you can use
49 1.2 cjs the `rawrite.exe' utility to transfer the image to a floppy
50 1.2 cjs disk. (Note that rawrite.exe doesn't work under many, if not
51 1.2 cjs all, Windows NT systems.) This utility is provided with the
52 1.2 cjs NetBSD/i386 install tools, under i386/installation/misc; a
53 1.2 cjs documentation file, `rawrite.doc' is available there as well.
54 1.1 cjs
55 1.1 cjs Once the floppy has been made, you simply need to put it in the
56 1.1 cjs drive and type
57 1.1 cjs
58 1.2 cjs boot dva0
59 1.1 cjs
60 1.1 cjs Now you may skip to section 3.
61 1.1 cjs
62 1.1 cjs 2.2 Booting over the Network
63 1.1 cjs
64 1.1 cjs Booting NetBSD/alpha _VER over a network requires a BOOTP server,
65 1.1 cjs a TFTP server and an NFS server. (These are usually all run on
66 1.1 cjs the same machine.) There are three basic stages to the boot:
67 1.1 cjs
68 1.1 cjs 1.The Alpha console software sends a BOOTP request to get its own
69 1.1 cjs address, the address of the TFTP server and the file to
70 1.1 cjs download. It downloads this file, which is the second stage
71 1.1 cjs bootstrap, via TFTP and then executes it.
72 1.1 cjs
73 1.1 cjs 2.The second stage bootstrap uses further information in the BOOTP
74 1.1 cjs packet that the console received to find the NFS server and path
75 1.1 cjs and retreive the kernel (the file /netbsd). After loading the
76 1.1 cjs kernel into memory, it executes it.
77 1.1 cjs
78 1.1 cjs 3.The kernel probes and configures the devices, and then sends
79 1.1 cjs out another BOOTP request so it can find out its address, the NFS
80 1.1 cjs server, and path. (The kernel probably should get this information
81 1.1 cjs from the console, but it currently doesn't.) It then mounts its
82 1.1 cjs root via NFS and continues.
83 1.1 cjs
84 1.1 cjs 2.2.1 Setting Up the Server
85 1.1 cjs
86 1.1 cjs You will need to set up your server to serve BOOTP, TFTP and NFS.
87 1.1 cjs
88 1.1 cjs The NFS setup is quite simple. If you want to run a full system
89 1.2 cjs from the network, untar the NetBSD snapshot or distribution
90 1.2 cjs into a directory on your server and NFS export that directory
91 1.2 cjs to the client. (Make sure you put a kernel there as well, and
92 1.2 cjs create the device nodes in /dev with `sh ./MAKEDEV all'. In
93 1.2 cjs fact, see the full instructions available off the alpha port
94 1.2 cjs page at www.netbsd.org.)
95 1.1 cjs
96 1.1 cjs You'll want to map root to `root' (rather than the default
97 1.1 cjs `nobody') when you export your root filesystem. A typical
98 1.1 cjs /etc/exports line on a NetBSD system would be:
99 1.1 cjs
100 1.2 cjs /usr/export/alpha -maproot=0 myclient.mydom.com
101 1.1 cjs
102 1.1 cjs If you just want to get the install kernel loaded so that you
103 1.1 cjs can download sets to the local hard drive of that machine, you
104 1.1 cjs need nothing other than the install kernel in the NFS root
105 1.1 cjs directory on your server.
106 1.1 cjs
107 1.1 cjs For the TFTP setup, you need to copy the second stage bootstrap,
108 1.1 cjs netboot, into an appropriately named file (I use boot.netbsd.alpha)
109 1.1 cjs in the directory used by your TFTP server. If you extracted a full
110 1.1 cjs snapshot, you can get the netboot program from /usr/mdec/netboot;
111 1.1 cjs if not, you can get this from the installation/netboot directory
112 1.1 cjs where you found the alpha distribution.
113 1.1 cjs
114 1.1 cjs For the BOOTP server you need to specify the:
115 1.1 cjs
116 1.2 cjs hardware type (Ethernet)
117 1.2 cjs hardware address (Ethernet MAC address)
118 1.2 cjs IP address of the client
119 1.2 cjs subnet mask of the client
120 1.2 cjs address of of the TFTP/NFS server
121 1.2 cjs name of the second stage bootstrap loaded via TFTP
122 1.2 cjs path to the root for the client (mounted via NFS)
123 1.1 cjs
124 1.1 cjs Here's an example for a Unix system running bootpd:
125 1.1 cjs
126 1.2 cjs myhost.mydom.com:\
127 1.2 cjs :ht=ethernet:ha=0000c0391ae4:\
128 1.2 cjs :ip=192.168.1.2:sm=255.255.255.0:\
129 1.2 cjs :sa=192.168.1.1:bf=boot.netbsd.alpha:rp=/usr/export/alpha:
130 1.2 cjs
131 1.2 cjs And here's an example for a Unix system running dhcpd:
132 1.2 cjs
133 1.2 cjs host axp {
134 1.2 cjs hardware ethernet 0:0:c0:39:1a:e4;
135 1.2 cjs fixed-address 192.168.1.2;
136 1.2 cjs option host-name "myhost.mydom.com";
137 1.2 cjs filename "boot.netbsd.alpha";
138 1.2 cjs option root-path "/usr/export/alpha";
139 1.2 cjs option domain-name-servers 192.168.1.1;
140 1.2 cjs option broadcast-address 255.255.255.0;
141 1.2 cjs option domain-name "my.domain";
142 1.2 cjs }
143 1.1 cjs
144 1.1 cjs 2.2.2 The Alpha Console
145 1.1 cjs
146 1.2 cjs The only Ethernet device the console on most Alpha systems
147 1.2 cjs knows how to boot from is the onboard Ethernet interface or a
148 1.2 cjs DEC Tulip (21040, 21041, 21140) based PCI Ethernet card. Some
149 1.2 cjs older SMC 100 Mbps card that use this chip have been known to
150 1.2 cjs work as well. Many older systems will not be able to use the
151 1.2 cjs newer 2.0 stepping of the 21140, however. If your system appears
152 1.2 cjs not to be receiving packets, this may be the problem. (You may
153 1.2 cjs or may not be able to update your firmware to fix this; see
154 1.2 cjs the alpha port pages on www.netbsd.org for more information on
155 1.2 cjs this.)
156 1.1 cjs
157 1.1 cjs Once you're set up, you should be able to boot with:
158 1.1 cjs
159 1.2 cjs boot -proto bootp ewa0
160 1.2 cjs
161 1.2 cjs (The command may be different on some very old machines.)
162 1.1 cjs
163 1.1 cjs 3. Preparing the Disk
164 1.1 cjs
165 1.1 cjs If you're going to be running a diskless machine, the steps so
166 1.1 cjs far have prepared you to run, and you can skip to section 5
167 1.1 cjs ("Configuration") below.
168 1.1 cjs
169 1.1 cjs If you are going to run NetBSD from a local hard drive, however,
170 1.1 cjs this hard drive needs to be prepared. This preparation consists
171 1.1 cjs of putting a label on the disk, which includes information on
172 1.1 cjs the sizes and placement of the partition into which the disk
173 1.1 cjs is divided, putting the boot blocks on the disk, and initialising
174 1.1 cjs the filesystems on the partitions. This work is done by the
175 1.1 cjs `install' script from the boot floppy (or boot kernel, if you
176 1.1 cjs booted it via NFS with the INSTALL kernel).
177 1.1 cjs
178 1.1 cjs 3.1 Running Install
179 1.1 cjs
180 1.1 cjs When you first boot the INSTALL kernel you will be given the
181 1.1 cjs options of `install' or `shell'. Choose `install' and the
182 1.1 cjs install script will start.
183 1.1 cjs
184 1.1 cjs If, at any time, you have made a mistake in the install script
185 1.1 cjs and want to abort, press ^C. This will take you to a shell
186 1.1 cjs prompt. You can then restart the install script by typing
187 1.1 cjs `/install', or halt the machine by typing `halt'.
188 1.1 cjs
189 1.1 cjs 3.1 Answering the Install Questions
190 1.1 cjs
191 1.1 cjs These will for the most part be fairly obvious. You may install
192 1.1 cjs on either a SCSI or an IDE disk, and you will be prompted for
193 1.1 cjs the disk to install on. The disks in your system will be numbered
194 1.1 cjs starting at xd0 (where x is an `s' for SCSI disks, `w' for IDE
195 1.1 cjs disks) based on the SCSI ID or IDE drive order; if you have
196 1.1 cjs more than one disk, watch the boot messages carefully to see
197 1.1 cjs which ones are probed as which numbers.
198 1.1 cjs
199 1.1 cjs Once you've selected a disk to install on, you'll be prompted
200 1.1 cjs for the geometry. This is also displayed in the boot messages,
201 1.1 cjs and you'll be given a chance to review the boot messages again
202 1.1 cjs to get the exact figures for the number of cylinders, heads
203 1.1 cjs and sectors.
204 1.1 cjs
205 1.1 cjs After this you must specify the size of your partitions.
206 1.1 cjs Generally you'll be giving the sizes in cylinders; the install
207 1.1 cjs program will tell you how many bytes there are in each cylinder.
208 1.1 cjs
209 1.1 cjs The swap partition is the second thing you specify, after the
210 1.1 cjs root partition. Regardless of the size of your disk, you'll
211 1.1 cjs want to specify a swap partition that's at least as large as
212 1.1 cjs the amount of RAM you have, and probably not less than 64 MB
213 1.1 cjs in any case.
214 1.1 cjs
215 1.1 cjs If you have a small disk (under 500 MB), it's probably best to
216 1.1 cjs devote all of the disk (excepting 64 MB or more for the swap)
217 1.1 cjs to the root partition.
218 1.1 cjs
219 1.1 cjs If you have more space, we recommend devoting at least 32 MB,
220 1.1 cjs and preferably 48 MB, to the root partition. /usr will need
221 1.1 cjs 150 MB or so if you're not installing X, 200 MB or so if you
222 1.1 cjs are.
223 1.1 cjs
224 1.1 cjs Once you've specified this information, the install script will
225 1.1 cjs write the disklabel, install boot blocks to make the disk
226 1.1 cjs bootable, initialise the filesystems, and mount them all under
227 1.1 cjs /mnt. You're now ready to go on to the next step.
228 1.1 cjs
229 1.1 cjs 4. Installing NetBSD
230 1.1 cjs
231 1.1 cjs To install NetBSD you'll have to get access to the tar files
232 1.1 cjs that contain the operating system, and extract them to your
233 1.1 cjs disk. You can get access to the tar files through either a
234 1.1 cjs network or from a CD-ROM.
235 1.1 cjs
236 1.1 cjs 4.1 Preparing to Install from a CD-ROM
237 1.1 cjs
238 1.1 cjs All you need to do is mount the CD-ROM, which will generally
239 1.1 cjs be device cd0. (The initial boot messages will tell you what
240 1.1 cjs the CD-ROM drive as probed as.) This would be done with:
241 1.1 cjs
242 1.2 cjs mount -r -t cd9660 /dev/cd0a /mnt2
243 1.1 cjs
244 1.1 cjs 4.2 Preparing to Install from the Network
245 1.1 cjs
246 1.1 cjs The first thing you need to do is configure the loopback network
247 1.1 cjs interface, which is done with the command
248 1.1 cjs
249 1.2 cjs ifconfig lo0 127.0.0.1
250 1.1 cjs
251 1.1 cjs Then you will have to configure your Ethernet card. The command
252 1.1 cjs
253 1.2 cjs ifconfig -l
254 1.1 cjs
255 1.1 cjs will give you a list of the network interfaces on your system.
256 1.1 cjs It will show you your ethernet cards first, followed by lo0
257 1.1 cjs (the loopback interface that we configured above), ppp0 (the
258 1.1 cjs PPP interface) and sl0 (the SLIP interface).
259 1.1 cjs
260 1.1 cjs To configure your ethernet card, type
261 1.1 cjs
262 1.2 cjs ifconfig <if> inet <addr> [netmask <netmask>] [media <media>]
263 1.1 cjs
264 1.1 cjs Where <if> is the network card (interface), <addr> is the IP
265 1.1 cjs address, the optional <netmask> parameter is the network mask,
266 1.1 cjs and the optional <media> parameter is one of:
267 1.1 cjs
268 1.2 cjs 10base2 BNC connector, 10 Mbps
269 1.2 cjs AUI AUI connector, 10 Mbps
270 1.2 cjs 10baseT Twisted pair connector, 10 Mbps
271 1.2 cjs 100baseTX Twisted pair connector, 100 Mbps
272 1.2 cjs 100baseFX Fibre-optic connector, 100 Mbps
273 1.2 cjs 100baseT4 T4 twisted pair interface, 100 Mbps
274 1.1 cjs
275 1.1 cjs If the host you are getting the data files from is not on the
276 1.1 cjs local network, you will also have to configure a gateway into
277 1.1 cjs your system. Do this with
278 1.1 cjs
279 1.2 cjs route add default <gateway-IP-address>
280 1.1 cjs
281 1.1 cjs If you will need name services you can set up a /etc/resolv.conf
282 1.1 cjs file for those with a `nameserver <ip-address>' line in it, e.g.:
283 1.1 cjs
284 1.2 cjs echo "nameserver 198.41.0.4" >>/etc/resolv.conf
285 1.1 cjs
286 1.1 cjs Once networking has been configured, you may mount the directory
287 1.1 cjs with the install files via NFS, or download them via FTP.
288 1.1 cjs
289 1.1 cjs To mount them via nfs, type
290 1.1 cjs
291 1.2 cjs mount -t nfs <hostname:/path/to/nfs/volume> /mnt2
292 1.1 cjs
293 1.1 cjs If this volume has been exported read-only, you may need the
294 1.1 cjs `-r' option to mount.
295 1.1 cjs
296 1.1 cjs To download the install sets with ftp, create a directory in
297 1.1 cjs which to put them and then use the ftp client to download them.
298 1.1 cjs A typical session might be:
299 1.1 cjs
300 1.2 cjs mkdir /mnt/var/tmp
301 1.2 cjs cd /mnt/var/tmp
302 1.2 cjs ftp ftp.netbsd.org
303 1.2 cjs [all the following commmands are given to the ftp program
304 1.2 cjs after logging in]
305 1.2 cjs prompt
306 1.2 cjs cd /pub/NetBSD/NetBSD-1.3/alpha/binary/sets
307 1.2 cjs mget *
308 1.2 cjs cd /pub/NetBSD/NetBSD-1.3/alpha/binary/kernel
309 1.2 cjs get netbsd-GENERIC.gz
310 1.2 cjs cd /pub/NetBSD/NetBSD-1.3/alpha/binary/toolchain
311 1.2 cjs get netbsd-GENERIC.gz
312 1.2 cjs bye
313 1.1 cjs
314 1.1 cjs Feel free, of course, to leave off the sets that you don't need
315 1.2 cjs if you don't plan to install everything.
316 1.1 cjs
317 1.1 cjs You are now ready to proceed to step 4.3.
318 1.1 cjs
319 1.1 cjs 4.3 Extracting the Operating System Files
320 1.1 cjs
321 1.1 cjs This is quite simple. Change to the root directory of your hard
322 1.1 cjs drive (which is /mnt if you've used the standard install script
323 1.1 cjs to this point) by typing
324 1.1 cjs
325 1.2 cjs cd /mnt
326 1.1 cjs
327 1.1 cjs Then extract the kernel with:
328 1.1 cjs
329 1.2 cjs zcat /mnt/var/tmp/netbsd-GENERIC.gz >/mnt/netbsd
330 1.1 cjs
331 1.1 cjs For this and the following commands, replace `/mnt/var/tmp/'
332 1.1 cjs with the path to your NFS volume or CD-ROM if that's how you
333 1.1 cjs chose to access your install files instead.
334 1.1 cjs
335 1.1 cjs The sets are extracted with
336 1.1 cjs
337 1.2 cjs for file in base comp etc games man misc text; do
338 1.2 cjs tar --unlink -t -z -f /mnt/var/tmp/$file;
339 1.2 cjs done
340 1.1 cjs
341 1.1 cjs and the toolchain with
342 1.1 cjs
343 1.2 cjs tar --unlink -t -z -f /mnt/var/tmp/toolchain.tar.gz
344 1.1 cjs
345 1.1 cjs You will now be ready to reboot from your hard disk. Type `sync'
346 1.1 cjs twice to make sure all the data is written out to disk and then
347 1.1 cjs type `halt' to halt your system and go back to the monitor. At
348 1.1 cjs this point you should be able to reboot your system with
349 1.1 cjs
350 1.2 cjs boot dka0
351 1.1 cjs
352 1.2 cjs (or `boot dka100' if your disk drive is on ID 1, etc.--you can
353 1.2 cjs usually use `show device' to see a full list of bootable devices
354 1.2 cjs in your system). Your system will come up in single-user mode,
355 1.2 cjs ready for you to configure it.
356 1.1 cjs
357 1.1 cjs 5. Configuring NetBSD
358 1.1 cjs
359 1.1 cjs Configuring your NetBSD system requires editing the /etc/rc.conf
360 1.1 cjs file. Most of this file is fairly self-explanatory, but you
361 1.1 cjs can `man rc.conf' for further explanations. Remember to set
362 1.1 cjs `rc_configured' to YES so you will boot multi-user, set `hostname'
363 1.1 cjs and possibly `defaultroute', and add an ifconfig_int for your
364 1.1 cjs interface <int>, along the lines of
365 1.1 cjs
366 1.2 cjs ifconfig_de0="inet myname.my.dom 123.45.67.89 netmask 255.255.255.0"
367 1.1 cjs
368 1.1 cjs You will also want either to run named or add an /etc/resolv.conf
369 1.1 cjs file (`man resolv.conf' for information on this), use `vipw' to add
370 1.1 cjs accounts to your system, edit /etc/aliases to forward root mail to
371 1.1 cjs the right place (run `newaliases' afterwards) and edit /etc/rc.local
372 1.1 cjs to run any local daemons you use.
373