Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
NEXTBOOT(8)		  BSD System Manager's Manual		   NEXTBOOT(8)

     nextboot -- Install a default bootstring block on the boot	disk

     nextboot [-b] filename bootstring ...

     nextboot [-ed] filename

	      -b    Is used for	bootstrapping (initially configuring) the
		    nameblock. Without this,
	   nextboot will refuse	to write to a block that does not already con-
		    tain the magic number.

	      -d    temporarily	disables an existing name block	by changing a
		    bit	in the magic number.

	      -e    restores the good magic number on a	block disabled by -d.

     The FreeBSD program nextboot controls the actions of the boot blocks at
     the time of the next boot.	 If compiled with the correct option, the boot
     blocks will check the nameblock for a magic number	and a default name to
     use for booting. If compiled to do	so they	will also delete the name from
     the block,	ensuring that if the boot should fail, then it will not	be
     tried again. It is	the job	of /etc/rc to use nextboot to re-install the
     string if that boot is found to have succeeded.  This allows a one-time
     only boot string to be used for such applications as remote debugging,
     and installation of new, untrusted	kernels.  The nameblock	is defined at
     compile time to be	the second physical block on the disk.

     nextboot first checks that	the disk has an	fdisk table and	checks that
     none of the partitions defined in that table include the nameblock. If
     the name block is shown to	be unused, it will install the bootstrings
     given as arguments, one after the other, each preceded by a small magic
     number, and NULL terminated. The end of the list of strings is delimited
     by	a sequence of 0xff bytes. If the boot blocks are compiled to write
     back the nameblock	after each boot, it will zero out the supplied names
     as	it uses	them, one per boot, until it reaches the 0xff, at which	time
     it	will revert to the compiled in boot string. At this time the nameblock
     will contain only zeroed out names.

     An	example	of usage might be:

	nextboot -b  /dev/rwd0 1:sd(0,a)/kernel.experimental wd(0,a)/kernel.old

     Which would instruct the boot blocks at the next boot, to try boot	the
     experimental kernel off the scsi disk.  If	for any	reason this failed,
     the next boot attempt would boot the kernel /kernel.old off the IDE
     drive.  (assuming the write-back option were enabled) If this in turn
     failed. the compiled in default would be used.

     If	the write-back feature is disabled, the	nextboot program is a conve-
     nient way to change the default boot string. Note,	that should the	file
     specified in the nameblock	be non-existant, then the name compiled	into
     the boot blocks will be used for the boot rather than the next name in
     the nameblock. The	nameblock is only consulted ONCE per boot.

     boot(8), disklabel(8), fdisk(8)

     The entire	program	should be made more user-friendly.  The	option of
     whether to	write back or not should be stored on the disk and not a com-
     pile time option. I want to rethink this at some later stage to make it
     co-exist with disks that do not have a fdisk partitioning table (i.e.
     purely disklabel'd	systems).

     Whether to	write back or not should be specified at run-time in the name-
     block so that the boot blocks need	not be altered to get this feature.

				 July 9, 1996


Want to link to this manual page? Use this URL:

home | help