1.\" $NetBSD: boot.cfg.5,v 1.15 2008/12/13 23:36:21 christos Exp $ 2.\" 3.\" Copyright (c) 2007 Stephen Borrill 4.\" All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. The name of the author may not be used to endorse or promote products 15.\" derived from this software without specific prior written permission 16.\" 17.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25.\" INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27.\" 28.Dd December 13, 2008 29.Dt BOOT.CFG 5 30.Os 31.Sh NAME 32.Nm boot.cfg 33.Nd configuration file for /boot 34.Sh DESCRIPTION 35The file 36.Pa /boot.cfg 37is used to alter the behaviour of the standard boot loader described in 38.Xr boot 8 . 39Configuration changes include setting the timeout, choosing a console device, 40altering the banner text and displaying a menu allowing boot commands to be 41easily chosen. 42If a 43.Nm 44file is not present, the system will boot as normal. 45.Ss FILE FORMAT 46The format of the file is a series of lines containing keyword/value pairs 47separated by an equals sign 48.Pq Sq = . 49There should be no whitespace surrounding the equals sign. 50Lines beginning with a hash 51.Pq Sq # 52are comments and will be ignored. 53.Pp 54Some keywords can be present multiple times in the file to define additional 55items. 56Such keywords are noted below. 57.Pp 58.Bl -tag -width timeout 59.It Sy banner 60(may be present multiple times) 61The text from banner lines is displayed instead of the standard welcome text 62by the boot loader. 63Up to 10 lines can be defined. 64No special character sequences are recognised, so to specify a blank line, a 65banner line with no value should be given. 66.It Sy clear 67If nonzero, clear the screen before printing the banner. 68If zero, do not clear the screen (the default). 69.It Sy consdev 70Changes the console device to that specified in the value. 71Valid values are any of those that could be specified at the normal boot 72prompt with the consdev command. 73.It Sy default 74Used to specify the default menu item which will be chosen in the case of 75Return being pressed or the timeout timer reaching zero. 76The value is the number of the menu item as displayed. 77As described above, the menu items are counted from 1 in the order listed in 78.Nm . 79If not specified, the default value will be option 1, i.e. the first item. 80.It Sy format 81Changes how the menu options are displayed. 82Should be set to one of 83.Sq a 84for automatic, 85.Sq l 86for letters and 87.Sq n 88for numbers. 89If set to automatic (the default), menu options will be displayed numerically 90unless there are more than 9 options and the timeout is greater than zero. 91If there are more than 9 options with a timeout greater than zero and 92the format is set to number, only the first 9 options will be available. 93.It Sy load 94Used to load kernel modules, which will be passed on to the kernel for 95initialization during early boot. 96The argument is the complete path and file name of the module to be loaded. 97May be used as many times as needed. 98.It Sy menu 99(may be present multiple times) 100Used to define a menu item to be displayed to the end-user at boot time 101which allows a series of boot commands to be run without further typing. 102The value consists of the required menu text, followed by a colon 103.Pq Sq \&: 104and then the desired command(s). 105Multiple commands can be specified separated by a semi-colon. 106If the specified menu text is empty 107(the colon appears immediately after the equals sign), 108then the displayed menu text is the same as the command. 109For example: 110.Bd -literal 111menu=Boot normally:boot 112menu=Boot single-user:boot -s 113menu=Boot with module foo:load /foo.kmod;boot 114menu=Boot with serial console:consdev com0;boot 115menu=:boot hd1a:netbsd -as 116.Ed 117.Pp 118Each menu item will be prefixed by an ascending number when displayed, 119i.e. the order in the 120.Nm 121file is important. 122.Pp 123Each command is executed just as though the user had typed it in 124and so can be any valid command that would be accepted at the 125normal boot prompt. 126In addition, 127.Dq Ic prompt 128can be used to drop to the normal boot prompt. 129.It Sy timeout 130If the value is greater than zero, this specifies the time in seconds 131that the boot loader will wait for the end-user to choose a menu item. 132During the countdown period, they may press Return to choose the default 133option or press a number key corresponding to a menu option. 134If any other key is pressed, the countdown will stop and the user will be 135prompted to choose a menu option with no further time limit. 136If the timeout value is set to zero, the default option will be booted 137immediately. 138If the timeout value is negative or is not a number, there will be no 139time limit for the user to choose an option. 140.El 141.Sh EXAMPLES 142Here is an example 143.Nm 144file: 145.Bd -literal -offset indent 146banner=Welcome to NetBSD 147banner================== 148banner= 149banner=Please choose an option from the following menu: 150menu=Boot normally:boot 151menu=Boot single-user:boot -s 152menu=Boot from second disk:boot hd1a: 153menu=Boot with module foo:load /foo.kmod;boot 154menu=Boot with modules foo and bar:load /foo.kmod;load /bar.kmod;boot 155menu=Boot Xen with 256MB for dom0:load /netbsd-XEN3_DOM0 console=pc;multiboot /usr/pkg/xen3-kernel/xen.gz dom0_mem=256M 156menu=Boot Xen with 256MB for dom0 (serial):load /netbsd-XEN3_DOM0 console=com0;multiboot /usr/pkg/xen3-kernel/xen.gz dom0_mem=256M console=com1 com1=115200,8n1 157menu=Boot Xen with dom0 in single-user mode:load /netbsd-XEN3_DOM0 -s;multiboot /usr/pkg/xen3-kernel/xen.gz dom0_mem=256M 158menu=Go to command line (advanced users only):prompt 159clear=1 160timeout=-1 161default=1 162# Always load ramdisk module 163load=/miniroot.kmod 164.Ed 165.Pp 166N.B. Xen counts serial ports from com1 upwards, but 167.Nx 168counts from com0, so the appropriate device name must be used. 169Please see the Xen with serial console example above. 170.Pp 171This will clear the screen and display: 172.Bd -literal -offset indent 173Welcome to NetBSD 174================= 175 176Please choose an option from the following menu: 177 178 1. Boot normally 179 2. Boot single-user 180 3. Boot from second disk 181 4. Boot with module foo 182 5. Boot with modules foo and bar 183 6. Boot Xen with 256 MB for dom0 184 7. Boot Xen with 256 MB for dom0 (serial) 185 8. Boot Xen with dom0 in single-user mode 186 9. Go to command line (advanced users only) 187 188Option [1]: 189.Ed 190.Pp 191It will then wait for the user to type 1, 2, 3, 4, 5, 6, 7, 8 or 9 followed by 192Return. 193Pressing Return by itself will run option 1. 194There will be no timeout. 195.Sh SEE ALSO 196.Xr boot 8 197.Sh HISTORY 198The 199.Nm 200utility appeared in 201.Nx 5.0 . 202.Sh AUTHORS 203The 204.Nm 205extensions to 206.Xr boot 8 207were written by 208.An Stephen Borrill 209.Aq sborrill@NetBSD.org . 210.Sh BUGS 211Support for 212.Nm 213is currently for 214.Nx Ns /i386 215and 216.Nx Ns /amd64 217only. 218It is hoped that its use will be extended to other appropriate ports that 219use the 220.Xr boot 8 221interface. 222