Expand PMF_FN_* macros.
[netbsd-mini2440.git] / share / man / man8 / man8.cobalt / boot.8
blob32226764db50e3206e5d5630e0b1712b1c46dafe
1 .\"     $NetBSD: boot.8,v 1.6 2008/11/06 19:40:03 wiz Exp $
2 .\"
3 .\" Copyright (c) 1991, 1993
4 .\"     The Regents of the University of California.  All rights reserved.
5 .\"
6 .\" This code is derived from software written and contributed
7 .\" to Berkeley by William Jolitz.
8 .\"
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
11 .\" are met:
12 .\" 1. Redistributions of source code must retain the above copyright
13 .\"    notice, this list of conditions and the following disclaimer.
14 .\" 2. Redistributions in binary form must reproduce the above copyright
15 .\"    notice, this list of conditions and the following disclaimer in the
16 .\"    documentation and/or other materials provided with the distribution.
17 .\" 3. Neither the name of the University nor the names of its contributors
18 .\"    may be used to endorse or promote products derived from this software
19 .\"    without specific prior written permission.
20 .\"
21 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 .\" SUCH DAMAGE.
32 .\"
33 .\"     @(#)boot_i386.8 8.2 (Berkeley) 4/19/94
34 .\"
35 .Dd November 6, 2008
36 .Dt BOOT 8 cobalt
37 .Os
38 .Sh NAME
39 .Nm boot
40 .Nd system bootstrapping procedures
41 .Sh DESCRIPTION
42 .Tn Cobalt
43 Networks' MIPS-based Microservers
44 .Po
45 now known as
46 .Tn Sun
47 Server Appliances
48 .Pc
49 that can run
50 .Nx Ns /cobalt
51 can use any of the following boot procedures:
52 .Pp
53 .Bl -bullet
54 .It
55 bootstrap
56 .Nx
57 from disk using the standard
58 .Tn Cobalt
59 .Tn Firmware
60 boot sequence
61 .It
62 bootstrap
63 .Nx
64 from disk using the
65 .Nx
66 boot loader
67 .It
68 network bootstrap
69 .Nx
70 using the standard
71 .Tn Cobalt
72 .Tn Firmware
73 means from a
74 .Tn TCP/IP
75 .Tn LAN
76 with
77 .Tn DHCP
78 and
79 .Tn NFS .
80 .It
81 network bootstrap
82 .Nx
83 using the
84 .Nx
85 boot loader which can be loaded by the standard Cobalt Firmware
86 with DHCP and NFS.
87 .El
88 .Ss Power fail and crash recovery
89 Normally, the system will reboot itself at power-up or after crashes.
90 An automatic consistency check of the file systems will be performed,
91 and unless this fails, the system will resume multi-user operations.
92 .Ss Cobalt Boot Sequence
93 The first program to take a control after reboot or at power-on is the
94 .Tn Cobalt
95 .Tn Firmware .
96 The
97 .Tn Firmware
98 can load a compressed kernel from disk, subject to a few limitations.
99 The
100 .Tn Firmware
101 expects the disk to contain DOS-style partition information with
102 the first partition being a boot one which is special in that it
103 should reside close to the beginning of the disk and must contain
105 .Tn Ext2
106 file system with a
107 .Pa boot
108 directory which is treated specially by the
109 .Tn Firmware .
110 The default sequence is pretty straightforward, the
111 .Tn Firmware
112 finds the boot partition, mounts the Ext2 file system from it and
113 tries to load a compressed kernel image from the
114 .Pa boot
115 directory.
116 The name of the kernel image differs from machine to machine and
117 this is the reason for having multiple copies of
119 kernel installed under different names.
120 The following kernel image names are known to be in use by certain
121 .Tn Cobalt
122 flavors:
123 .Bd -unfilled -offset indent
124 .Pa /boot/vmlinuz.gz
125 .Pa /boot/vmlinux.gz
126 .Pa /boot/vmlinux-nfsroot.gz
127 .Pa /boot/vmlinux_RAQ.gz
128 .Pa /boot/vmlinux_raq-2800.gz
131 where
132 .Pa /boot
133 is the directory on the boot partition.
136 .Tn Firmware
137 console provides the means to alter the default boot sequence and/or
138 to specify boot parameters.
139 Pressing
140 .Sq Aq space
141 right after the
142 .Tn Firmware
143 printed its greeting brings the
144 .Tn Firmware
145 console prompt and pressing
146 .Sq \&?
147 at the prompt prints a help screen with all commands supported by
149 .Tn Firmware .
150 For example, the
151 .Sq bfd
152 command can be used to boot a kernel image:
153 .Bd -unfilled -offset indent
154 Cobalt: bfd /boot/\*[Lt]kernel image\*[Gt] [options]
157 where
158 .Dq options
159 are the kernel options.
160 .Ss Bootstrap from disk using the standard Firmware sequence
162 .Tn Firmware
163 enters the standard boot sequence after reboot or at power-on when
164 no front-panel buttons are pressed and the
165 .Tn Firmware
166 console is not used to change the boot procedure.
167 At boot time, the
168 .Tn Firmware
169 checks the hardware, prints the banner and performs the standard
170 .Tn Cobalt
171 boot sequence.
172 There are a few culprits tightly connected to this boot method.
173 First of all, the kernel must be compressed.
174 Second, the
175 .Tn Firmware
176 enforces a hard restriction on the kernel size
178 it cannot exceed approximately 900,000/2,500,000 bytes
179 compressed/uncompressed
181 resulting in a lock-up should this requirement not be fulfilled.
183 .Nx ,
184 another pitfall is that the uncompressed kernel should be copied to
185 the root directory to make certain system binaries
187 such as e.g. netstat
189 work, and the kernel images in the
190 .Pa boot
191 directory should always be in sync with the ones installed in the
192 root directory.
193 .Ss Bootstrap from disk using the NetBSD boot loader
196 boot loader is an attempt to break through the limitations enforced
197 by the
198 .Tn Firmware
199 loader.
200 The main idea is to make the
201 .Tn Firmware
202 load the
204 boot loader and let the latter take care of loading the kernel.
205 To achieve this goal, multiple copies of the boot loader are
206 installed in the
207 .Pa boot
208 directory on the boot partition, one copy per each kernel image
209 name the
210 .Tn Cobalt
211 .Tn Firmware
212 might look for.
215 kernel is located in the root directory
217 usually
218 .Pa /dev/wd0a
220 like it is on other platforms.
221 Once running, the boot loader prints a banner to the serial console
222 similar to the following:
223 .Bd -unfilled -offset indent
224 \*[Gt]\*[Gt] NetBSD/cobalt 5.0 Bootloader, Revision 0.9 [@0x80f00000]
225 \*[Gt]\*[Gt] (user@buildhost, builddate)
226 \*[Gt]\*[Gt] Model:               Cobalt Qube 2
227 \*[Gt]\*[Gt] Memory:              32768 k
228 \*[Gt]\*[Gt] PROM boot string:    root=/dev/hda1 ro
229 Boot [wd0a:netbsd]: 
230 Loading: wd0a:netbsd
231 3763776+312244 [216944+209676]=0x44b97c
232 Starting at 0x80001000
235 The boot loader also prints a banner to the LCD panels as the following:
236 .Bd -unfilled -offset indent
237 .Nx Ns /cobalt
238 Bootloader
240 Loading:
241 wd0a:netbsd
243 .Ss Boot loader Options
244 It is possible to specify some options and boot devices on the boot loader
245 prompt:
247 .Xo No boot [wd0a:netbsd]:
248 .Op Va device : Ns
249 .Op Va filename
250 .Op Fl acdmqsvxz
253 The default
254 .Va device 
255 will be set to the disk that the boot loader was loaded from.
256 To boot from an alternate disk or partition, the full name of the device should
257 be given at the prompt.
258 .Va device
259 is of the form
260 .Va xdNx
261 where
262 .Va xd
263 is the device from which to boot,
264 .Va N
265 is the unit number, and
266 .Va x
267 is the partition letter of the NetBSD
268 .Xr disklabel 5
269 in the NetBSD partition of the MBR partitions.
272 boot loader recognizes FFS (both UFS1 and UFS2) and Linux Ext2fs.
274 The following list of supported devices may vary from installation to
275 installation:
277 .Bl -hang -compact
278 .It wd
279 IDE hard disks recognized by the
280 .Tn Firmware .
283 The default
284 .Va filename
286 .Pa netbsd ;
287 if the boot loader fails to successfully
288 open that image, it then tries
289 .Pa netbsd.gz
290 (expected to be a kernel image compressed by
291 .Xr gzip 1 ) ,
292 followed by
293 .Pa netbsd ,
294 .Pa netbsd.gz ,
295 .Pa onetbsd ,
296 .Pa onetbsd.gz ,
297 .Pa netbsd.bak ,
298 .Pa netbsd.bak.gz ,
299 .Pa netbsd.old ,
300 .Pa netbsd.old.gz ,
301 .Pa netbsd.cobalt ,
302 .Pa netbsd.cobalt.gz ,
303 .Pa netbsd.elf ,
304 and finally
305 .Pa netbsd.elf.gz .
306 Alternate system images can be loaded by just specifying the name
307 of the image, so it is always a good idea to have a copy of working kernel
308 in the
310 root partition before trying a new kernel.
312 Options are:
313 .Bl -tag -width xxx
314 .It Fl a
315 Prompt for the root file system device, the system crash dump
316 device, and the path to
317 .Xr init 8 .
318 .It Fl c
319 Bring the system up into the device configuration manager.
320 From here the device locators can be tuned to the hardware; see
321 .Xr userconf 4 .
322 .It Fl d
323 Bring the system up in debug mode.
324 Here it waits for a kernel debugger connect; see
325 .Xr ddb 4 .
326 .It Fl q
327 Boot the system in quiet mode.
328 .It Fl s
329 Bring the system up in single-user mode.
330 .It Fl v
331 Boot the system in verbose mode.
334 As the older version of the boot loader, it is also possible to specify
335 options to the boot loader by breaking into the
336 .Tn Firmware
337 and using the
338 .Dq bfd
339 command:
340 .Bd -unfilled -offset indent
341 Cobalt: bfd /boot/boot.gz [options]
344 The boot loader allows the following options:
345 .Bl -tag -width 04n -offset 04n
346 .It Ic nbsd= Oo Va device : Ns Oc Oo Va filename Oc Oo Fl acdqsv Oc
348 The device, filename and options on the bfd prompt are same with the boot
349 loader.
352 It is also a good idea to have a small rescue kernel in the
353 .Pa boot
354 directory in the Ext2 partition for the Firmware boot.
355 In an emergency case, this will allow you to use the
356 .Tn Firmware
357 .Sq bfd
358 command to boot the rescue image:
359 .Bd -unfilled -offset indent
360 Cobalt: bfd /boot/netbsd.gz
362 .Ss Network bootstrap using the standard Firmware sequence
364 .Tn Cobalt
365 .Tn Firmware
366 allows to boot a kernel over the network, with all the limitations
367 of the
368 .Tn Firmware
369 loader described above.
370 The simplest method is to break into the
371 .Tn Firmware
372 prompt and use
373 .Dq bfd
374 command to specify where to boot from:
375 .Bd -unfilled -offset indent
376 Cobalt: bfd /netbsd.gz nfsroot=/home/raq/root
380 .Tn Firmware
381 is picky about syntax and in general, so if things fail mysteriously,
382 try to conform to the conventions described above.
383 For netbooting, you need to NFS-export the directory given to
384 .Dq nfsroot= ,
385 and the named kernel
386 .Pq Pa netbsd.gz
387 needs to be executable and in that directory.
388 You will also need to setup
389 .Xr dhcpd 8 .
390 Once the kernel is loaded with the command line values, the data
391 given via DHCP is used to mount the root file system.
392 Here is a known working DHCP entry:
393 .Bd -unfilled -offset indent
394 host raq {
395         hardware ethernet 0:10:e0:0:52:62;      # raq MAC
396         fixed-address 10.0.0.15;                # raq address
397         filename "/netbsd.gz";                  # kernel name in root-path
398         option root-path "/home/raq/root";      # absolute dir on NFS server
399         server-name="10.0.0.3";                 # IP of NFS server
403 Another option is to hold down the left and right cursor buttons
404 during power-on which executes the command
405 .Bd -unfilled -offset indent
406 bfd /boot/vmlinux.gz root=/dev/nfs nfsroot=/nfsroot,
409 resulting in a netboot.
410 On RaQ 1's, the default kernel name is
411 .Pa vmlinux_RAQ.gz
412 and on RaQ 2's, it is
413 .Pa vmlinux_raq-2800.gz .
414 .Ss Network bootstrap using the NetBSD boot loader
415 The idea here is the same with the bootstrap from disk using the NetBSD
416 boot loader.
417 Make the firmware load the NetBSD boot loader via network and
418 let the latter take care of loading the kernel even via network.
419 A simple method to load the NetBSD boot loader is to use  the
420 .Dq bfd
421 command as well as booting the NetBSD kernel via network as described above:
422 .Bd -unfilled -offset indent
423 Cobalt: bfd /boot/boot.gz nfsroot=/home/raq/root
426 Note the boot loader binary needs to be
427 .Xr gzip 1 Ns -compressed .
428 Once the boot loader is successfully loaded it prints a banner as well as
429 booting from disk:
430 .Bd -unfilled -offset indent
431 \*[Gt]\*[Gt] NetBSD/cobalt 5.0 Bootloader, Revision 0.9 [@0x80f00000]
432 \*[Gt]\*[Gt] (user@buildhost, builddate)
433 \*[Gt]\*[Gt] Model:               Cobalt Qube 2
434 \*[Gt]\*[Gt] Memory:              32768 k
435 \*[Gt]\*[Gt] PROM boot string:    root=/dev/nfs nfsroot=/nfsroot nfsaddrs=bootp
436 Boot [nfs:netbsd]: 
437 Loading: nfs:netbsd
438 3763776+312244 [216944+209676]=0x44b97c
439 Starting at 0x80001000
442 The boot loader load the NetBSD kernel via NFS which should be specified
443 by the DHCP configuration on the server.
444 Note the nfsroot option specified on the
445 .Dq bfd
446 prompt will be ignored by the
448 boot loader so it's recommended to use the same directory on the
449 .Dq bfd
450 prompt and in the DHCP configuration.
451 .Sh FILES
452 .Bl -tag -width /usr/mdec/bootxx_fstype -compact
453 .It Pa /boot/boot.gz
454 boot program code loaded by the
455 .Tn Firmware
456 loader
457 .It Pa /boot/netbsd.gz
458 .Xr gzip 1 Ns -compressed
459 rescue system code
460 .It Pa /netbsd
461 system code
462 .It Pa /netbsd.gz
463 .Xr gzip 1 Ns -compressed
464 system code
465 .It Pa /usr/mdec/boot
466 master copy of the boot program (to be compressed and copied to /boot/boot.gz)
468 .Sh SEE ALSO
469 .Xr ddb 4 ,
470 .Xr userconf 4 ,
471 .Xr dhcpd.conf 5 ,
472 .Xr dhcpd 8 ,
473 .Xr fdisk 8 ,
474 .Xr halt 8 ,
475 .Xr reboot 8 ,
476 .Xr shutdown 8 ,
477 .Xr printf 9
479 .Lk http://www.NetBSD.org/docs/network/netboot/