summaryrefslogtreecommitdiff
path: root/distrib/notes/sun3/install
blob: 507b1f2d170ed52c9c18a57e619ba986e8587a97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
OpenBSDInstallPrelude

There are several ways to install OpenBSD onto a disk. The easiest way
in terms of preliminary setup is to use the OpenBSD miniroot that can
be booted off a tape.

If your Sun3 is hooked up in a network and you can find a server to
arrange for a diskless setup, which is a convenient way to install on a
machine whose disk does not currently hold a usable operating system.
This is difficult to get set up correctly the first time, but easy to
use afterwards.  (see ``Installing using a diskless setup'' below).

It is also possible to install OpenBSD "manually" from a running SunOS
system, using SunOS tools and gnu tar and gunzip (see ``Installing from
SunOS'' below).


Booting from the Installation Media:

Prior to attempting an installation, you should make sure that everything
of value on the target system has been backed up.  While installing OpenBSD
does not necessarily wipe out all the partitions on the hard disk, errors
during the install process can have unforeseen consequences and you will
probably render the system unbootable if you start, but do not complete
the installation.  Have the installation media for the prior installation,
be it a SunOS or OpenBSD tape is good insurance if you want to be able to
"go back" for some reason.

After taking care of all that, bring your system down gracefully using
the shutdown(8) and/or halt(8) commands.  This will get you to the monitor
prompt.
	
Booting from SCSI tape

Boot the miniroot by typing the appropriate command at the PROM:

	> b st()
	
The above instructions assume your tape drive is the default tape drive
using SCSI id 4. If your drive uses id 5, modify the boot command
accordingly:

	> b st(,28,)
	
This will cause the kernel contained in the miniroot to be booted.
After the initial device probe messages you'll be asked to start the
install or upgrade procedure. Proceed to the section ``Running the
installation scripts'' below.


Installing using a diskless setup:

First, you must setup a diskless client configuration on a server. If
you are using a OpenBSD system as the boot-server, have a look at the
diskless(8) manual page for guidelines on how to proceed with this.
If the server runs another operating system, you'll have to consult
documentation that came with it (on SunOS systems, add_client(8) and
the Sun System/Networks administrators guide constitute a good start).


Boot your workstation from the server by entering the appropriate `boot'
command at the monitor prompt. Depending on the ethernet chip in your
machine, this command takes one of the following forms:

	> b le()bsd.rd		# for sun pizza boxes (3/50, 3/60)
	> b ie()bsd.rd		# for other sun3s

This will cause the kernel provided by the diskless setup to be booted.
After the initial probe messages you'll asked to start the install
or upgrade procedure. Proceed to the section ``Running the installation
scripts'' below.

In order to have a sun3 machine boot diskless by default, you need to
do some nvram wizardry:

	> q 18
	12
then, if your machine is a model 3/50 or 3/60, continue with:
	6c
	65
	00
	00
	00
or, for other sun3 machines:
	69
	65
	00
	00
	00
and return to the prom prompt with:
	q
	>

The above set of commands has changed the boot path strategy to the
network interface, thus a diskless boot.
To change the strategy in diagnostic mode (when the "Diag/Norm" switch
is set to "Diag"), enter the same set of data after a "q 22" command
instead of "q 18".
Remember that the prom having a limited number of write cycles, you
shouldn't abuse this feature.


OpenBSDInstallPart2

	Boot your machine from the installation media as described above.

	It will take a while to load the kernel especially from a
	slow network connection, most likely more than a minute.  If
	some action doesn't eventually happen, or the spinning cursor has
	stopped and nothing further has happened, either your boot medias
	is probably bad, your diskless setup isn't correct or you may have
	a hardware or configuration problem.

OpenBSDBootMsgs

	While booting, you will probably see several warnings.  You
	may be warned that the kernel can't figure out what device
	it booted from and that no swap space is present.  Do not be
	alarmed, these are completely normal.

	You will next be asked for your terminal type.  If you are
	installing from a keyboard/monitor console, the default of
	"sun" if correct.  If you are installing from a serial console
	you should choose the terminal type from amongst those listed.
	(If your terminal type is xterm, just use vt100).

	After entering the terminal type you will be greeted by a
	welcome message and asked if you really want to continue.
	Assuming you answered yes, the install program will then tell
	you which disks of that type it can install on, and ask you
	which it should use.  The name of the disk is typically "sd0".
	Reply with the name of your disk.

	Next you will have to edit or create a disklabel for the disk
	OpenBSD is being installed on.  The installation script will
	invoke the text editor allowing you to do this.  Note that
	partition 'c' inside this disk label should ALWAYS reflect the
	entire disk, including any non-OpenBSD portions.  The root file
	system should be in partition 'a', and swap is usually in partition
	'b'.  It is recommended that you create separate partitions for
	root and /usr, you may also want to specify /var and /home
	partitions.

	The swap partition (usually 'b') should have a type of "swap", all
	other native OpenBSD partitions should have a type of "4.2BSD".
	Block and fragment sizes are usually 8192 and 1024 bytes, but can
	also be 16384 and 2048 bytes.

	The install program will now label your disk and ask which file
	systems should be created on which partitions.  It will auto-
	matically select the 'a' partition to be the root file system.
	Next it will ask for which disk and partition you want a file
	system created on.  This will be the same as the disk name (e.g.
	"sd0") with the letter identifying the partition (e.g. "d")
	appended (e.g. "sd0d").  Then it will ask where this partition is
	to be mounted, e.g. /usr.  This process will be repeated until
	you type "done".

	At this point you will be asked to confirm that the file system
	information you have entered is correct, and given an opportunity
	to change the file system table.  Next it will create the new file
	systems as specified, OVERWRITING ANY EXISTING DATA.  This is the
	point of no return.

	After all your file systems have been created, the install program
	will give you an opportunity to configure the network.  The network
	configuration you enter (if any) can then be used to do the install
	from another system using NFS, HTTP or FTP, and will also be the
	configuration used by the system after the installation is complete.

	If you select to configure the network, the install program will
	ask you for a name of your system and the DNS domain name to use.
	Note that the host name should be without the domain part, and that
	the domain name should NOT {:-include-:} the host name part.

	Next the system will give you a list of network interfaces you can
	configure.  For each network interface you select to configure, it
	will ask for the IP address to use, the symbolic host name to use,
	the netmask to use and any interface-specific flags to set.  The
	interface-specific flags are usually used to determine which media
	the network card is to use.  This is driver dependent, but for the
	sun3 le(4) driver, the flags usually carry meaning:

		-link0 -link1	Use existing setting (only setup by netboot)
		link0 -link1	Use UTP (twisted pair) port
		-link0 link1 	Use AUI port

*** IMPORTANT - these are the correct setting for sun3 ethernet cards,
		the suggestions shown by the install script are generic
		and may or may not be correct...

	After all network interfaces have been configured the install pro-
	gram will ask for a default route and IP address of the primary
	name server to use.  You will also be presented with an opportunity
	to edit the host table.

	At this point you will be allowed to edit the file system table
	that will be used for the remainder of the installation and that
	will be used by the finished system, following which the new file
	systems will be mounted to complete the installation.

	After these preparatory steps has been completed, you will be
	able to extract the distribution sets onto your system.  There
	are several install methods supported; FTP, HTTP, tape, CD-ROM, NFS
	or a local disk partition.  To install from a tape, the distrib-
	ution sets must have been written to tape prior to running the
	installation program, either as tar images or as gzipped tar
	images.

OpenBSDFTPInstall

OpenBSDHTTPInstall

OpenBSDTAPEInstall

OpenBSDNFSInstall

OpenBSDDISKInstall({:-"xdN" or -:},{:-only -:})

OpenBSDCommonFS
		
OpenBSDCommonURL

OpenBSDCongratulations

If you will be running your OpenBSD system from a serial console, you may
need to edit /etc/ttys and change the terminal type, and getty method from
"sun" and "console" to "vt100" and "std.9600" or something similar.

In order to use 'tip' on OpenBSD/sun3, you'll need to edit /etc/ttys
and add "local" to the end of the tty configuration line, and run 
'ttyflags -a' to put your changes into effect.

If you are unfamiliar with UN*X-like system administration, 
it's recommended that you buy a book that discusses it.



Installing from SunOS.

You need a SunOS machine to install OpenBSD.  You also need at
least the following pieces:

    the *.tgz files you want to install (as a minimum, base{:--:}OSrev.tgz and
        etc{:--:}OSrev.tgz)
    gunzip (GNU gzip) SunOS binary
    gtar (GNU tar) SunOS binary
    a "/boot" file from a SunOS sun3 machine (not sun3x!)
    a kernel, most likely "/bsd"

All these pieces, except "/boot" and the GNU utilities are supplied in
the OpenBSD/sun3 distribution.

You need to format and partition the disk using SunOS (since
OpenBSD/sun3 uses SunOS disk labels.)  Give yourself adequate
partition sizes.  Here is an example layout:

    partition    size   offset	  will be..
    sd0a        80000        0	  /
    sd0b       256000    80000	  swap
    sd0c      4165271        0	  `whole disk'
    sd0d       100000   436000    /var
    sd0f       100000   336000    /tmp
    sd0g      3229271   936000    /usr
    sd0h       400000   536000    /var/tmp

Use SunOS to newfs the partitions which will have filesystems on them.
(OpenBSD's filesystem format is identical to SunOS).

    sunos# newfs /dev/rsd0a
    [... lots of output]
 
Repeat for any other partition (in this example, /dev/rsd0d, /dev/rsd0f,
/dev/rsd0g, /dev/rsd0h).

NOTE: If you are able to, there is a performance benefit from
newfs'ing using OpenBSD.  If you newfs using the OpenBSD newfs command,
be sure to use the -O flag for your / partition, so that newfs will
use the 4.3BSD filesystem format, rather than the new 4.4BSD filesystem
format.  If you forget, you will not be able to boot -- the SunOS boot
blocks do not understand the extended 4.4BSD filesystem format.

Mount those partitions in a tree formation, under /mnt; ie:

    sunos# df
    Filesystem            kbytes    used   avail capacity  Mounted on
    [...]
    /dev/sd0a              38427       0   38427     0%    /mnt
    /dev/sd0d              48249       0   48249     0%    /mnt/var
    /dev/sd0f              48249       0   48249     0%    /mnt/tmp
    /dev/sd0g            1564024       0 1564024     0%    /mnt/usr
    /dev/sd0h             193536       0  193536     0%    /mnt/var/tmp

Place a standard SunOS "boot" program in /mnt (your new root
partition), and use the SunOS command "installboot" to make it work.
The installboot man page says to do something like this:

    sunos# cp /usr/mdec/ufsboot /mnt/boot
    sunos# sync; sync
    sunos# /usr/mdec/installboot -vlt /mnt/boot /usr/mdec/bootxx /dev/rsd0a

You can now extract the provided "*.tgz files onto your disk.

    sunos# ls -FC
    base{:--:}OSrev.tgz   comp{:--:}OSrev.tgz   man{:--:}OSrev.tgz       xfont{:--:}OSrev.tgz
    bsd             etc{:--:}OSrev.tgz    misc{:--:}OSrev.tgz      xserv{:--:}OSrev.tgz
    game{:--:}OSrev.tgz   xbase{:--:}OSrev.tgz
    sunos{:-#-:} gunzip < base{:--:}OSrev.tgz | (cd /mnt; gtar xvpf -)
    [...] for each set

And finally copy the OpenBSD kernel onto your disk.

    sunos# cp bsd /mnt/bsd

The GNU gunzip and gtar programs are not distributed as part of SunOS,
but may be present in your /usr/local/bin.  If not, you will need to
obtain them from a GNU archive and install before proceeding.  The
OpenBSD tar files are in the "new format" that includes directory
information, and the standard SunOS tar will not extract from them
successfully.

After the files have been extracted, setup /mnt/etc/fstab to match
your actual disk layout.  (Minus the "/mnt" component of each path, of
course :-)

Now proceed to reboot the machine and the customize your installation.


Net Boot or Diskless Setup Information:

The setup is similar to SunOS diskless setup, but not identical, because
the Sun setup assumes that the bootblocks load a kernel image, which then
uses NFS to access the exported root partition, while the OpenBSD bootblocks
use internal NFS routines to load the kernel image directly from the
exported root partition.

Please understand that no one gets this right the first try, since
there is a lot of setup and all the host daemons must be running and
configured correctly.  If you have problems, extract the diskless(8)
manpage, find someone who's been through it before and use the host
syslog and tcpdump(8) to get visibility of what's happening (or not).

Your sun3 expects to be able to download a second stage bootstrap
program via TFTP after having acquired its IP address through RevARP when
instructed to boot "over the net". It will look for a filename
corresponding to the machine's IP address. For example, a sun3 machine
which has been assigned IP address 130.115.144.11, will make an TFTP
request for `8273900B'.
Normally, this file is a symbolic link to an appropriate second-stage
boot program, which should be located in a place where the TFTP daemon
can find it (remember, many TFTP daemons run in a chroot'ed environment).

You can find the boot program in `/usr/mdec/netboot' in the OpenBSD/sun3
distribution.

Here's an example to illustrate this whole mess:

    server# cd /<client-root-dir>/usr/mdec
    server# cp boot /tftpboot/boot.sun3.OpenBSD
    server# cd /tftpboot
    server# ln -s boot.sun3.OpenBSD 8273900B


After the boot program has been loaded into memory and given control by
the PROM, it starts locating the machine's remote root directory through
the BOOTPARAM protocol. First a BOOTPARAM WHOAMI request is broadcast
on the local net. The answer to this request (if it comes in) contains
the client's name. This name is used in next step, a BOOTPARAM GETFILE
request -- sent to the server that responded to the WHOAMI request --
requesting the name and address of the machine that will serve the client's
root directory, as well as the path of the client's root on that server.

Finally, this information (if it comes in) is used to issue a REMOTE MOUNT
request to the client's root filesystem server, asking for an NFS file
handle corresponding to the root filesystem. If successful, the boot
program starts reading from the remote root filesystem in search of the
kernel which is then read into memory.

You will want export the miniroot{:--:}OSrev.fs filesystem to the client.  You
can dd this filesystem image to some spare partition, mount and export
that partition or use tar to copy the contents to a more convenient spot.

Alternatively you can build a bootable partition from the distribution sets
as follows:

Unpack `base{:--:}OSrev.tgz' and `etc{:--:}OSrev.tgz' on the server in the root directory
for your target machine. If you elect to use a separately NFS-mounted
filesystem for `/usr' with your diskless setup, make sure the "./usr" base
files in base{:--:}OSrev.tgz end up in the correct location. One way to do this is
to temporarily use a loopback mount on the server, re-routing <root>/usr to
your server's exported OpenBSD "/usr" directory. Also put the kernel and
the install/upgrade scripts into the root directory.

A few configuration files need to be edited:

	<root>/etc/hosts
		Add the IP addresses of both server and client.

	<root>/etc/myname
		This files contains the client's hostname; use the same
		name as in <root>/etc/hosts.

	<root>/etc/fstab
		Enter the entries for the remotely mounted filesystems.
		For example:
			server:/export/root/client       /     nfs  rw 0 0
			server:/export/exec/sun3.OpenBSD /usr  nfs  rw 0 0

Now you must populate the the `/dev' directory for your client. For
this, you can simply change your working directory to `<root>/dev'
and run the MAKEDEV script: `sh MAKEDEV all'.