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


第5 页FreeBSD 使用手册
设置loader 的环境变量 。
unload
卸载所有被加载的module 。
7.3.3.3 Loader 举例
这里就是一些loader 使用的实际例子 。
1,在单用户模式下启动你的普通内核:
boot -s
2,卸载你的普通内核和模块,然后仅仅引导你的旧(或另一个)内核:
unload
load kernel.old
3,你可以使用kernel.GENERIC,这是安装光盘上的通用kernel,或是kernel.old,
这是你上一个安装的kernel (如果你有升级或重新配置你自己的kernel 的话) 。
注意: 照着下列的步骤可以配合原先的module 来加载其它的kernel:
unload
set kernel=”kernel.old”
boot-conf
4,加载内核配置的script 文件(这是一个自动的script 文件,用来执行你在kernel
启动阶段所要执行的命令):
load -t userconfig_script
/boot/kernel.conf
7.4 启动时内核的调节
一旦kernel 通过loader (一般来说) 或boot2 (略过执行loader),kernel 将会
检查它的启动标记,如果有,就开始按照标记做一些必要的调节 。
7.4.1 内核启动标记
这儿是一些启动标记:
a
在内核初始化期间,询问要使用哪一个设备作为root 文件系统
第6 页FreeBSD 使用手册
C
从CDROM 启动
c
运行UserConfig,启动时的内核配置
s
从单用户模式启动
v
在内核启动期间更详细的信息
7.5 Init:过程控制初始化
内核一旦启动完成,它就把控制权转交给用户层命令init,它就在/sbin/init 中,在
loader 中,程序路径可以通过init_path 指定 。
7.5.1 自动重新启动
这个程序会确定系统将要使用的文件系统是存在的 。如果不存在,那么fsck 就不能正
常地被执行去修复磁盘驱动器,接着init 将把系统切换成单用户模式,系统管理者就可以
在这时候直接处理这个错误 。
7.5.2 单用户模式
这个模式能够通过自动启动顺序来延伸,或用户启动时通过加上-s 选项,或在loader
中设置boot_single 。它也可以不重新启动通过呼叫shutdown 来达到,或在多用户模式下
加上-h 选项 。如果系统控制台console 被设置成insecure,那在开始单用户模式之前,系
统就要求键入root 密码 。
例如7-3. 在/etc/ttys 中设置一个console 为insecure
# name getty type status comments
#
# This entry needed for asking passWord when init goes to single-user mode
# If you want to be asked for password, change “secure” to “insecure” here
console none unknown off insecure
注意: 一个insecure 的console 代表你的console 的安全等级是insecure 的,并且
确定如果有人要进入单用户模式,就要输入root 密码,请注意,insecure 不代表你的
第7 页FreeBSD 使用手册
console 是inscure 的,而是,如果你要多一点的安全防护,请选择insecure,而不是secure 。
7.5.3 多用户模式
如果init 正确地找到了你的文件系统,或结束了单用户模式,系统就会进入多用户模
式,并开始系统的资源配置 。系统将先执行默认的配置文件/etc/defaults/rc.conf,和系
统的详细配置/etc/rc.conf,接着按照/etc/fstab 来加载文件系统,再激活网络服务,和
其它的系统守护程序(daemon),最后,执行部分程序的起始script 文件 。rc 是个参考资源
设置系统的好地方,同样,直接查阅那些scripts 也是个好方法 。
7.6 关机程序
使用shutdown 可以控制系统进行关机,init 将会执行/etc/rc.shutdown 这个script
文件,接着输出终止(terminate) 信号给所有的程序,这时如果有无法终止的程序,那么就
使用kill 来杀死信号 。

推荐阅读