The FreeBSD Boot Manager
You can install the FreeBSD boot manager during the FreeBSD installation to enable booting of multiple operating systems. After the install, you can configure the boot manager with the boot0cfg program.
boot0cfg -B will install the boot manager onto the hard disk's MBR. This is one way to restore the boot manager if Windows should wipe it out (if, for example, you install Windows after you install FreeBSD). Of course, you would have to boot from a FreeBSD boot disk to use boot0cfg -B if the boot manager has been wiped out. In addition, if you wish to make changes to the boot manager configuration, you will need to reinstall it using this command, followed by the changes you wish to make.
boot0cfg is command-line driven. Fortunately, you probably do not need to be concerned with most of the options, although you might be interested in a few of them. The list of options shown in Table 3.1 is supported for making changes to the boot manager configuration.
Table 3.1 Boot Manager Configuration Options
Option |
Description |
-v |
boot0cfg will be more verbose about what it is doing. |
-b image |
Here, image is the name of the boot image to use. The default is /boot/boot0. |
-d drive |
Here, drive is the drive number used by the PC's BIOS for referencing the disk. Usually this is 0x80 for the first drive, 0x81 for the second, and so on. |
-f file |
Here, file is the name of a file that the original MBR should be backed up to in case there are problems. If the file already exists, it will be truncated. |
The -o option is also supported, and it allows a comma-separated list of arguments, whose meanings are listed in Table 3.2.
Table 3.2 Arguments for boot0cfg -o
Argument |
Description |
packet |
If the PC's BIOS supports it, this will tell boot0cfg to use int 0x13 extensions instead of CHS for disk I/O. This will get around the 1,024 cylinder boot limit described previously. However, if the PC's BIOS does not support this option, it may cause the system to hang on the next reboot. |
setdrv |
Forces boot0cfg to use the drive number specified in the d option to reference the drive you're working with. |
noupdate |
By default, the boot manager can write to the MBR and update it (to set the active flag and so on). This can cause problems if you have hardware antivirus support enabled that prevents writing to the MBR and such. The noupdate option will prevent the boot manager from attempting to write to the MBR. |
boot0cfg also supports the -s n option, where n is a number from 1 to 5 that specifies the default slice (commonly referred to as a partition in MS-DOS/Windows) to boot if no selection is made. The -t n option is also supported, where n is a number representing the number of "ticks" to wait before booting the default operating system. There are approximately 18.2 ticks in a second.