linux的引导过程包括以下几个阶段:开机自检、MBR引导、GRUB菜单、加载内核、INIT进程初始化。

1.开机自检

    服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候交给本机硬盘。

2.MBR引导

    当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单,如GRUB,MBR位于0面0道1扇区,共512字节,512=446+64+2,其中446为grub引导器,64为分区表,2为校验结束。

3.GRUB菜单

    对于Linux系统来说,GRUB是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB后,将会显示启动菜单提供给用户选择,并根据所选项加载Linux内核文件,然后将系统控制权交给内核,/boot/grub/grub.conf。

4.加载Linux内核

    Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权交以后,将完全掌控整个Linux操作系统的运行过程。在RHEL5系统中,默认的内核文件位于“/boot/vmlinuz-2.6.18-8.el5",/boot。

5.INIT进程初始化

    Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init进程负责完成一系列的系统初始化过程:读取配置文件/etc/inittab,根据配置文件内容首先执行初始化脚本文件/etc/rc.d/rc.sysinit,并通过脚本文件/etc/rc.d/rc控制应该启动哪些程序和服务,最后运行终端程序“/sbin/mingerry”,等待用户进行登录(登录过程由“/bin/login”程序负责验证),第一个进程init:/etc/inittab。(该文件中可以改变运行级别,关闭三键热启动功能,添加字符终端)

6.第一个初始化文件/etc/rc.d/rc.sysinit脚本(设置网络、主机名、加载文件系统、设置时钟、检测文件系统等)

7.运行级别/etc/rc.d/rc脚本

8.启动mingetty进程进入到登录界面。

  runlevels--7个运行级别

    0:关机状态,使用该级别时将会关闭主机。

    1:单用户模式,不需要密码验证即可登录系统,多用于系统维护。

    2:字符界面的多用户模式(不支持访问网络)。

    3:字符界面的完整多用户模式,大多数服务器主机运行在此级别。

    4:未分配使用。

    5:图形界面的多用户模式,提供了图形桌面操作环境。

    6:重新启动,使用该级别时将会启动主机。

 action--动作类型

    initdefault:设置初始化进程后默认进入的运行级别。

    sysinit:设置系统初始化的操作脚本。

    wait:init进程将等待该行配置所对应的脚本操作完成后,再继续执行其他操作。

    ctrlaltdel:设置当用户按下Ctrl+Alt+Delete组合键后的操作。

    powerfail:设置当系统收到断电信号时采取何种动作。

    respawn:一旦该行配置所对应的进程被终止,则重新启动该进程。



 rc脚本文件

   rc脚本由init进程进行调用,文件位于“/etc/rc.d/rc”。rc脚本动过使用不同的级别参数,分别加载及终止不同的系统服务,进入到相应的系统运行级别。

 rc.local脚本文件

   rc.local脚本是一个额外的启动控制文件,位于/etc/rc.d/rc.local,由rc脚本在最后时进行加载。凡是需要在系统启动后自动执行的一些命令操作,可以添加到该文件中。


 系统服务控制

  格式 service 服务名称 控制类型  或  /etc/rc.d/init.d/服务名称 控制类型

    start(启动):运行制定的系统服务程序,实现服务功能。

    stop(停止):终止指定的系统服务程序,关闭相应的功能。

    restart(重启):先退出,再重新运行指定的系统服务程序。

    reload(重载):不退出服务程序,只是刷新配置。在某些服务中与restart的操作相同。

    status(查看状态):查看指定的系统服务的运行状态及相关信息。


 切换运行级别

  1.查看系统的运行级别: runlevel (第一个字符为N,表示之前未切换运行级别)

  2.切换系统的运行级别:init 0-6


 优化开机自动加载的服务

  1.使用ntsysv工具(交互式界面) 

       可以通过“--level”选项对指定运行级别中的服务进行管理。

  2.使用chkconfig工具

       可以与“--list”选项配合使用,查看指定的系统服务在不同运行级别中的默认启动状态。例:chkconfig --list network。

       可以与“--level”选项配合使用,指定不同运行级别中服务的默认启动状态。例:chkconfig --level 2345 network on|off。当此项缺少时,是指定所有运行级别中的默认启动状态。 


 修改系统选择时间,设置密码,修改显示标题

  在文件/boot/grub/grub.conf中修改,其中:

     default=0 是加载第一个操作系统,如果为多系统则自动定位在最后安装的系统上。

     timeout=5 是选择系统等待时间。

     splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz “hd0”表示第一块硬盘“0”表示第一个分区,此句是加载颜色。

     hiddenmenu 隐藏以下菜单

     title Red Hat Enterprise Linux Server (2.6.18-194.e15) 此句为grub界面系统的提示信息。

              root(hd0,0) 是定位在/boot分区。

    kernel /vmlinuz-2.6-194.e15 ro root=/dev/volgroup00/logvol00(在此可以改为LABEL=/或/dev/sda3是根分区位置) rhgb quiet initrd /initrd-2.6.18-194.e15.img(内核扩展临时镜像文件) 此句为内核文件位置。