| |
|
Domain Registration -
Domain registration & domain search service from just
$5.95/year only |
|
|
|
Webhosting Service -
Webhosting service for single or multiple domain names at affordable price. |
|
|
Back to Index
|
The FreeBSD MBR is located in /boot/boot0. This is a copy of the MBR, as the real MBR must be
placed on a special part of the disk, outside the FreeBSD area.
boot0 is very simple, since the program in the MBR can only be 512 bytes in size. If you have installed the
FreeBSD MBR and have installed multiple operating systems on your hard disks then you
will see a display similar to this one at boot time:
Example 7-1. boot0 Screenshot
F1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2
Other operating systems, in particular Windows® 95, have been known to overwrite an existing
MBR with their own. If this happens to you, or you want to replace your existing MBR with
the FreeBSD MBR then use the following command:
# fdisk -B -b /boot/boot0 device
Where device is the device that you boot from, such as
ad0 for the first IDE disk, ad2
for the first IDE disk on a second IDE controller, da0 for
the first SCSI disk, and so on.
If you are a Linux user, however, and prefer that LILO
control the boot process, you can edit the /etc/lilo.conf file
for FreeBSD, or select Leave The Master Boot Record Untouched
during the FreeBSD installation process. If you have installed the FreeBSD boot manager,
you can boot back into Linux and modify the LILO configuration
file /etc/lilo.conf and add the following option:
other=/dev/hdXY
table=/dev/hdb
loader=/boot/chain.b
label=FreeBSD
which will permit the booting of FreeBSD and Linux via LILO. In our example, we use XY to
determine drive number and partition. If you are using a SCSI drive, you will want to change /dev/hdXY to read something similar to /dev/sdXY, which again uses the XY syntax. The loader=/boot/chain.b
can be omitted if you have both operating systems on the same drive. You can now run /sbin/lilo -v to commit your new changes to the system, this should
be verified with screen messages.
Conceptually the first and second stages are part of the same program, on the same
area of the disk. Because of space constraints they have been split into two, but you
would always install them together.
They are found on the boot sector of the boot slice, which is where boot0, or any other program on the MBR expects to find the program to run to continue the boot
process. The files in the /boot directory are copies of the
real files, which are stored outside of the FreeBSD file system.
boot1 is very simple, since it too can only be 512 bytes in
size, and knows just enough about the FreeBSD disklabel, which
stores information about the slice, to find and execute boot2.
boot2 is slightly more sophisticated, and understands the
FreeBSD file system enough to find files on it, and can provide a simple interface to
choose the kernel or loader to run.
Since the loader is much more
sophisticated, and provides a nice easy-to-use boot configuration, boot2 usually runs it, but previously it was tasked to run the
kernel directly.
Example 7-2. boot2 Screenshot
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/kernel
boot:
If you ever need to replace the installed boot1 and boot2 use disklabel(8):
# disklabel -B diskslice
where diskslice is the disk and slice you boot from,
such as ad0s1 for the first slice on the first IDE disk.
Dangerously Dedicated Mode: If you use just the disk name, such as ad0, in the disklabel(8) command
you will create a dangerously dedicated disk, without slices. This is almost certainly
not what you want to do, so make sure you double check the disklabel(8) command
before you press Return.
The loader is the final stage of the three-stage bootstrap, and is located on the file
system, usually as /boot/loader.
The loader is intended as a user-friendly method for configuration, using an
easy-to-use built-in command set, backed up by a more powerful interpreter, with a more
complex command set.
During initialization, the loader will probe for a console and for disks, and figure
out what disk it is booting from. It will set variables accordingly, and an interpreter
is started where user commands can be passed from a script or interactively.
The loader will then read /boot/loader.rc, which by default
reads in /boot/defaults/loader.conf which sets reasonable
defaults for variables and reads /boot/loader.conf for local
changes to those variables. loader.rc then acts on these
variables, loading whichever modules and kernel are selected.
Finally, by default, the loader issues a 10 second wait for key presses, and boots the
kernel if it is not interrupted. If interrupted, the user is presented with a prompt
which understands the easy-to-use command set, where the user may adjust variables,
unload all modules, load modules, and then finally boot or reboot.
These are the most commonly used loader commands. For a complete discussion of all
available commands, please see loader(8).
- autoboot seconds
-
Proceeds to boot the kernel if not interrupted within the time span given, in seconds.
It displays a countdown, and the default time span is 10 seconds.
- boot [-options] [kernelname]
-
Immediately proceeds to boot the kernel, with the given options, if any, and with the
kernel name given, if it is.
- boot-conf
-
Goes through the same automatic configuration of modules based on variables as what
happens at boot. This only makes sense if you use unload first,
and change some variables, most commonly kernel.
- help [topic]
-
Shows help messages read from /boot/loader.help. If the
topic given is index, then the list of available topics is
given.
- include filename ...
-
Processes the file with the given filename. The file is read in, and interpreted line
by line. An error immediately stops the include command.
- load [-t type] filename
-
Loads the kernel, kernel module, or file of the type given, with the filename given.
Any arguments after filename are passed to the file.
- ls [-l] [path]
-
Displays a listing of files in the given path, or the root directory, if the path is
not specified. If -l is specified, file sizes will be shown
too.
- lsdev [-v]
-
Lists all of the devices from which it may be possible to load modules. If -v is specified, more details are printed.
- lsmod [-v]
-
Displays loaded modules. If -v is specified, more details
are shown.
- more filename
-
Displays the files specified, with a pause at each LINES
displayed.
- reboot
-
Immediately reboots the system.
- set variable, set variable=value
-
Sets the loader's environment variables.
- unload
-
Removes all loaded modules.
Here are some practical examples of loader usage:
-
To simply boot your usual kernel, but in single-user mode:
boot -s
-
To unload your usual kernel and modules, and then load just your old (or another)
kernel:
unload
load kernel.old
You can use kernel.GENERIC to refer to the generic kernel
that comes on the install disk, or kernel.old to refer to your
previously installed kernel (when you have upgraded or configured your own kernel, for
example).
Note: Use the following to load your usual modules with another kernel:
unload
set kernel="kernel.old"
boot-conf
-
To load a kernel configuration script (an automated script which does the things you
would normally do in the kernel boot-time configurator):
load -t userconfig_script /boot/kernel.conf
|
|
|
|
© 2002-2004 Active-Venture.com
Website Hosting
Service
|
| |
|
Disclaimer: This
documentation is provided only for the benefits of our website hosting customers.
For authoritative source of the documentation, please refer to http://www.freebsd.org
|
|
|