FreeBSD handbook中文版 7 FreeBSD 的启动过程( 二 )


事,或你想替换FreeBSD 的MBR,你可以使用下面的命令:
# fdisk -B -b /boot/boot0 device
这儿的device是你用来启动的设备,如第一个IDE 磁盘ad0,在第二个IDE 控制器上的
第一个磁盘,在第一个SCSI 磁盘da0 等等 。
7.3.2 步骤1, /boot/boot1, 步骤2, /boot/boot2
Boot1 可以在引导分区的引导扇区上找到,它无论是在boot0 上,或是在MBR 上的其它
程序都能找到这样的程序继续启动进程 。
Boot1 是非常简单的,它也可能只有512 字节,只是表明了FreeBSD 的存储有磁盘分区
信息的磁盘标签(Disklabel),找到它之后,就会执行boot2 。
Boot2 稍微有点复杂,它记录着FreeBSD 的文件系统以便于在它上面找到文件,另外它
也提供了一个选择可运行的内核或引导程序的简单接口 。Loader 还要复杂一点,它提供了
一个易于使用的启动配置信息,通常boot2 之后就是运行它了,但以前它可以直接运行内核 。
例7-2. boot2 画面
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/kernel
boot:
如果你需要替换已安装的boot1 和boot2,可以使用disklabel 。
# disklabel -B diskslice
diskslice是启动系统的磁盘和slice 的地方,如ad0s1,在第一个IDE 磁盘的第一个
slice 上 。
危险的模式:如果你使用了刚才的磁盘名称,如ad0,在disklabel 命令中,你将创建
一个危险的磁盘,没有slices 。这可能不是你想要做的,所以确定你在键入RETURN 之前,
第3 页FreeBSD 使用手册
你已反复检查了命令disklabel 。
7.3.3 步骤3,/boot/loader
引导程序loader 是三步中的最后一步,它可能在/boot/loader 。Loader 有一个非常友
好的配置方法,使用一个易于使用的内建命令,通过一个强大的接口来备份 。
7.3.3.1 Loader 的执行过程
初始化过程中,引导程序探测到一个控制台和一些磁盘,计算出从哪个磁盘启动 。因此,
它可以设置成可变化的,然后解释程序就开始启动,命令就会被解释执行 。
最后,默认情况下启动程序停顿10 秒钟(当然你可以按任意键继续),然后启动内核 。
如果进程被打断了,用户可以使用命令来调整参数,卸载或装载模块,最后启动或重新启动 。
一个更深入的技术讨论,你可以阅读loader 的联机手册 。
7.3.3.2 Loader 内建命令
这些命令集包括:
autoboot seconds
在规定的时间内不被打断的话,继续启动内核 。如果显示一个倒计时,默认的时间
是10 秒钟 。
boot [-options] [kernelname]
直接配合所给的参数加载内核 。
boot-conf
在启动时,使用自动的变量配置模块,这只在你先用unload 时才有意义,并改变一
些变量,通常是kernel 。
help [topic]
第4 页FreeBSD 使用手册
显示来自/boot/loader.help 的求助信息,如果所给的主题(topic)是index,那就
显示所有的主题列表 。
include filename ...
执行所给的文件,这文件将被读入并一行一行地执行,一旦有错误发生就直接停止
这个inlucde 命令 。
load [-t type] filename
加载kernel,kernel 模块或原先指定的文件类型,再接着文件名 。任何跟在文件之
后的参数都将会传给这个文件来执行 。
ls [-l] [path]
列出在给定路径中的文件 。如果没有指定路径,将显示root 目录的文件列表 。如果
有附加-l 参数,那么将一起显示文件大小 。
lsdev [-v]
列出所有可以加载module 的设备,如果指定-v 参数,那么会列出更详细的信息
lsmod [-v]
显示已被加载的module,如果有指定-v 参数,那么更详细的信息会一起列出 。
more filename
显示所指定的文件内容,并在每LINES (环境变量) 暂停 。
reboot
直接重新启动机器 。
set variable, set variable=value

推荐阅读