快速业务通道

Linux系统启动流程与Grub的配置方法

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-06

  一、Linux的启动流程
 
  1. 从BIOS到KERNEL
 
  BIOS自检->MBR(GRUB)->KERNEL->KERNEL自解压->内核初始化->内核启动
 
  2. 内核启动:创建1#进程并执行,由它创建若干内核线程(kernel thread),然后装入并执行程序/sbin/init(变成一个用户进程).此后,init根据/etc/inittab配置文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等.
 
  对于Redhat来说,执行的顺序为:
 
  /etc/rc.d/rc.sysinit # 由init执行的第一脚本
 
  /etc/rc.d/rc $RUNLEVEL # init执行指定运行级别($RUNLEVEL为缺省的运行模式)的各脚本;
 
  /etc/rc.d/rc.local #运行模式2、3、5时会运行的脚本
 
  /sbin/mingetty(或getty) # 等待用户登录
 
  /etc/inittab中指定了系统的运行级别(RUNLEVEL),init根据运行级别启动相关的服务(一些后台进程),实现不同的功能.
 
  RUNLEVEL值为:0-6
 
  0:halt, 1:单用户,2:多用户,3:多用户并启动NFS服务
 
  4:保留,5:运行xdm(X window)以图形界面方式登录
 
  6:reboot
 
  3./etc/inittab文件
 
  /etc/inittab的文件内容如下:
 
  # 设定系统开机预设的RUNLEVEL:
 
  id:3:initdefault:
 
  # 开始进行RUNLEVEL的服务启动前,使用来侦测与初始化系统环境的设定文件:
 
  si::sysinit:/etc/rc.d/rc.sysinit
 
  # 7 个不同 run level 的,需要启动的服务的 scripts 放置路径:
 
  l0:0:wait:/etc/rc.d/rc 0
 
  l1:1:wait:/etc/rc.d/rc 1
 
  l2:2:wait:/etc/rc.d/rc 2
 
  l3:3:wait:/etc/rc.d/rc 3
 
  l4:4:wait:/etc/rc.d/rc 4
 
  l5:5:wait:/etc/rc.d/rc 5
 
  l6:6:wait:/etc/rc.d/rc 6
 
  # 是否允许按下 [ctrl] [alt] [del] 就重新开机的设定项目:
 
  ca::ctrlaltdel:/sbin/shutdown -t3 -r now
 
  # 本机端终端机启动的个数:
 
  1:2345:respawn:/sbin/mingetty tty1
 
  2:2345:respawn:/sbin/mingetty tty2
 
  3:2345:respawn:/sbin/mingetty tty3 拥有帝国一切,皆有可能。欢迎访问phome.net
 
  4:2345:respawn:/sbin/mingetty tty4
 
  5:2345:respawn:/sbin/mingetty tty5
 
  6:2345:respawn:/sbin/mingetty tty6
 
  # 在 X Window (RUNLEVEL 5) 环境下的启动 script 设定项目:
 
  x:5:once:/etc/X11/prefdm -nodaemon
 
  这个文件的语法是这样的:
 
  标识符:级别:init 的动作行为:指令项目
 
  1. 标识符:
 
  最多四个字符,代表 init 的主要工作项目,只是一个简单的代表说明.
 
  2. 级别:
 
  该项目在哪些 run level 底下进行的意思.如果是 35 则代表 runlevel 3 与 5 都会执行.
 
  3. init 的动作行为:
 
  主要可以进行的动作项目意义有:
 
  initdefault :代表预设的 run level 设定值;
 
  sysinit :代表系统初始化的动作项目;
 
  ctrlaltdel :代表 [ctrl] [alt] [del] 三个按键是否可以重新开机的设定;
 
  wait :代表后面接的指令项目要执行完毕才能继续后面的动作;
 
  respawn :代表后面接的, init 仍会主动的「重新」启动.
 
  更多的设定项目请参考 man inittab 的说明.
 
  4. 指令项目:
 
  亦即应该可以进行的指令,通常是一些 script 啰.
 
  说明:如根据上面的文件,init程序执行时根据/etc/inittab文件的内容,完成以下功能
 
  (1)获取RUNLEVEL(文件中的这一行 id:3:initdefault:)为3
 
  (2)执行rc.sysinit(文件中的这一行 si::sysinit:/etc/rc.d/rc.sysinit)
 
  (3)执行/etc/rc.d/rc3.d目录中的脚本(文件中的这一行 l3:3:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号