系统启动过程

来源:互联网 发布:手机上平面设计软件 编辑:程序博客网 时间:2024/05/02 00:25

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)存取了系统启动的顺序。然后再在从定义的顺序对应的的MBRMBR中定义了对系统的引导,其中包括根目录的分区root,内核(vmlinuz)的位置,以及initrd。这都是引导linux的必要的配置。对于系统的引导以前常用的是LILO,而由于LILO对磁盘类型支持的种类比较少,被GRUB所取代。

grub引导之后系统开始启动init进程,该进程的配置文件时/etc/inittabinit进程的顺序:

1.       设定默认运行的等级

2.       启动系统初始化脚本rc.sysinit

3.       执行运行级别下的每一个脚本

4.       设定ctrl+alt+del组合键的功能

5.       设定电源故障时执行的脚本

6.       设定要启动的虚拟控制台/dev/tty[1-6]

7.       设定当指定运行级别为5时做GUI初始化脚本

之后系统启动完成。启动rc.sysinit的过程有:

1.       激活udevSElinux

2.       设置内核参数/etc/sysctl.conf

3.       设置系统时钟

4.       装载键盘映射

5.       启动交换分区

6.       设置主机名,/etc/sysconfig/network

7.       根文件系统并重新以读写方式挂载根文件系统

8.       激活RAIDLVM设备

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之外的其它RAIDLVM),第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和根文件夹在一个分区,则上述表示根分区,但kernelinitrd的路径该写成/boot/kernel /boot/initrd 切记两个文件的版本号都必须完全相同。如果在重新开机时,分别输入rootkernelinitrd,然后再引导。或者输入roothdNN)之后用setup hdNN是硬盘次序,来自动安装grub

2.                                   如果bootloader损坏则。如果开机情况下输入grep-install --root-directory=/boot /dev/sda重新安装grub。如果已经关机,则需把硬盘挂载到其他电脑上用上述命令安装grub,同时在配置文件中修改相应的数据。

 

原创粉丝点击