Linux启动顺序详解

了解Linux如何启动很有用,之后您就可以改变登录界面的类型,或者自由选择启动时加载哪些程序。

您或许还记得,当初安装Linux时,安装程序显示了一份硬盘分区的列表,包含各个分区的大小,您的文件系统将安装在这些分区上。

当为各个分区分配磁盘空间时,每个分区的第一个数据单元,或称之为“扇区”,总是预留给启动代码。整块硬盘的第一个扇区也用于同样的目的,该扇区被称作主引导记录(MBR)。

当由硬盘启动PC时,BIOS被加载,之后运行MBR中的启动引导代码。MBR需要知道哪个分区的引导扇区中包含了操作系统的启动引导代码,之后MBR会试着启动其中的一个。

Fedora Linux发行版使用了非常复杂的GRUB启动引导程序,该程序无法放入MBR的512字节中。GRUB启动引导程序仅搜寻特定的启动分区,找到后加载第二阶段的启动引导程序。GRUB从包含各类操作系统和操作系统的启动参数的配置文件/boot/grub/grub.conf中读取启动配置数据。当GRUB启动引导程序完成后,第二阶段的启动引导程序在屏幕上显示有Fedora标记的所有你选择的操作系统核心配置。

注意: 在一些操作系统中,如Debian / Ubuntu,配置文件 /boot/grub/grub.conf 可能会被下面的文件取代 /boot/grub/menu.lst

以下显示了能够同时启动Fedora Linux和Windows 2000系统的一个典型grub.conf文件。

grub.conf 文件示例

default=0timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztitle Fedora Core (2.6.8-1.521)        root (hd0,0)        kernel /vmlinuz-2.6.8-1.521 ro root=LABEL=/        initrd /initrd-2.6.8-1.521.imgtitle Windows 2000      rootnoverify (hd0,1)      chainloader +1

当Linux开始启动内核时,首先运行/sbin/init脚本程序进行一些系统检查,如文件系统完整性的确认和操作系统正常运作的重要程序的启动。 Linux开始检测/etc/initab文件,并决定Linux的全部运行模式和运行级别。有效的运行级别列表见表。

Linux 运行级别

Mode Directory Run Level Description

0 /etc/rc.d/rc0.d 关机 1 /etc/rc.d/rc1.d 单用户模式 2 /etc/rc.d/rc2.d 未使用,用户自定义 3 /etc/rc.d/rc3.d 多用户模式,无图形界面 4 /etc/rc.d/rc4.d 未使用(用户定义) 5 /etc/rc.d/rc5.d 多用户模式(图形界面) 6 /etc/rc.d/rc6.d 重启

init程序依据选定的运行级别执行在子目录 /etc/rc.d 下的脚本程序.。运行级别0-6分别对应子目录中的 /etc/rc.d/rc0.d -/etc/rc.d/rc6.d。

以下是/etc/rc.d/rc3.d目录下的脚本文件列表

[root@bigboy tmp]# ls /etc/rc.d/rc3.d...    ...    K75netfs      K96pcmcia    ...    ......    ...    K86nfslock    S05kudzu     ...    ......    ...    K87portmap    S09wlan      ...    ......    ...    K91isdn       S10network   ...    ......    ...    K92iptables   S12syslog    ...    ......    ...    K95firstboot  S17keytable  ...    ...[root@bigboy tmp]#

如上,你会发现,这些目录中的每个文件名要么是以“S”开头,以表明这些脚本是在系统启动的时候运行,或以“K”开头,表示这类脚本在系统正在关闭的时候被调用。如果一个脚本不在此目录,那么此脚本不会被运行。

大多数linux软件包将它们的启动脚本放在/etc/init.d目录下,相应的符号连接放在相应的/etc/rc.d子目录中。如此使得文件管理更为容易。比如说,删除文件的符号连接,而不会删除真实文件,这样以后你还可以使用它。

跟在K或者S后的数字按升序排列也就是这些脚本运行的次序。如,kudzu(后05)将比wlan(后09)先运行。幸运的是,你不必需要一个总的脚本,或者符号连接来保证所有脚本运行正常。因为Fedora中有一个名为chkconfig的组件,Debian/Ubuntu使用update-rc.d命令来帮你做所有的事情。我们等会在详细讲它。

无论如何,没有人有办法把自己抑或他人的刺拔掉。那是一碰便痛的软肋,

Linux启动顺序详解

相关文章:

你感兴趣的文章:

标签云: