linux
启动过程
linux
启动过程有以下的步骤:
BIOS
à
(boot sequence
à
MBR:Master Boot Record(1 sector, 512 bytes)) Bootloader
à
kernel
à
init(/etc/inittab)
à
/etc/rc.local
à
login
。
以下我将对以上每部分解释一下:
先读取
BIOS
,其中(
boot sequence
)存取了系统启动的顺序。然后再在从定义的顺序对应的的
MBR
,
MBR
中定义了对系统的引导,其中包括根目录的分区
root
,内核(
vmlinuz
)的位置,以及
initrd
。这都是引导
linux
的必要的配置。对于系统的引导以前常用的是
LILO
,而由于
LILO
对磁盘类型支持的种类比较少,被
GRUB
所取代。
grub
引导之后系统开始启动
init
进程,该进程的配置文件时
/etc/inittab
。
init
进程的顺序:
1.
设定默认运行的等级
2.
启动系统初始化脚本
rc.sysinit
3.
执行运行级别下的每一个脚本
4.
设定
ctrl+alt+del
组合键的功能
5.
设定电源故障时执行的脚本
6.
设定要启动的虚拟控制台
/dev/tty[1-6]
7.
设定当指定运行级别为
5
时做
GUI
初始化脚本
之后系统启动完成。启动
rc.sysinit
的过程有:
1.
激活
udev
和
SElinux
2.
设置内核参数
/etc/sysctl.conf
3.
设置系统时钟
4.
装载键盘映射
5.
启动交换分区
6.
设置主机名,
/etc/sysconfig/network
7.
根文件系统并重新以读写方式挂载根文件系统
8.
激活
RAID
和
LVM
设备
9.
启动磁盘配额
10.
检查并挂载其它文件系统,
/etc/fstab
11.
清楚不再使用锁和
PID
文件
在执行一定等级时,启动的脚本在
/etc/rc.d/
下对应等级
rcN.d
目录下,以
S
开头的脚本,同理关闭的脚本是以
K
开头的脚本。
GRUB
知识小结
GRUB
为最新的
linux
的引导程序,假设系统存在硬盘上,其
MAB
大小为
512byte
,其中
bootloader
大小为
446byte
,还有
64byte
存储磁盘分区,每个分区用
16byte
表示,还有
2
两个字节存储其它信息。其中
bootloader
只有
446
字节存储引导信息,很难提供强大的功能,所以
GRUB
提供了分段式的方式,在
bootloader
中只有第一段,其第
1.5
段和第
2
段存在于
/boot/grup
文件夹下,其中第
1.5
段提供了对多种文件系统硬盘的驱动(除了
RAID1
之外的其它
RAID
和
LVM
),第
2
段中则提供了
grub
的主配置文件,其中分别定义了一下几部分:
default=1
在有多个启动菜单中默认启动的系统
timeout=5
默认等待的时间
splashimage=(hd0,0)/grub/11.xpm.gz grub
背景图片
hiddenmenu
是否隐藏启动的菜单
title Red Hat Enterprise Linux Server (2.6.28.10-zly)
系统名称
root (hd0,0)
核心所在的分区
kernel /vmlinuz-2.6.28.10-zly ro root=/dev/vol0/root rhgb quiet
核心所在的具体位置,真是分区所在的位置,及挂载的位置,是否显示加载的信息
initrd /initrd-2.6.28.10-zly.img initrd
所在的位置,这是一个虚拟的系统的位置,启动系统所必须的文件。
每一个
title
代表有启动选项的一个菜单。
GRUB
的修复:
grup
的损坏分为两种:
1.
配置文件损坏。这种情况我们可以手动编写配置文件,如果在开机情况下,可以将上面介绍的
grub
配置文件写入。注意:
root
(
hd0,0
)表示
boot
文件夹所在的分区,(
hd0,0
)表示第一块儿硬盘的第一个分区,第一个
0
是顺序,第二个
0
表示分区顺序。如果
boot
和根文件夹在一个分区,则上述表示根分区,但
kernel
和
initrd
的路径该写成
/boot/kernel /boot/initrd
切记两个文件的版本号都必须完全相同。如果在重新开机时,分别输入
root
,
kernel
,
initrd
,然后再引导。或者输入
root
(
hdN
,
N
)之后用
setup
(
hdN
)
N
是硬盘次序,来自动安装
grub
2.
如果
bootloader
损坏则。如果开机情况下输入
grep-install --root-directory=/boot /dev/sda
重新安装
grub
。如果已经关机,则需把硬盘挂载到其他电脑上用上述命令安装
grub
,同时在配置文件中修改相应的数据。