Linux 系统启动流程

  • 1.系统启动

(1)开启开机按钮,系统自动加载主板上的bios(基本输入输出系统)进行自检。

  ①检测系统硬件链接,显卡,内存,磁盘。"检测目的是将设备信息提供给操作系统"
  ②寻找启动磁盘,(光盘启动)(硬盘启动)(软驱启动)采取优先级最高的启动向进行启动。
  ③找到启动磁盘后,会找第一个启动扇区“主引导记录”(MBR)。

 

(2)MBR有512字节,由三个部分组成。

  ①引导程序(446字节)加载bootloader(启动载入器,启动内核的小程序)bootloader有两种。
   ⑴lilo:被1024柱面限制,如果lilo改动后必须重启系统后成效。
   ⑵grub:修改后立即生效,已经取代了lilo。
  ②分区表(64字节)每16做一个分区表,所以主分区加扩展分区最多只能做4个
  ③校验码(2字节)

 

 

(3)内核启动,它会接管查看bios电脑上的硬件信息,提供给linux使用。它会将包含在内核的驱动,将它启动。

(4)内核启动成功后,系统会开始初始化,它会initt执行/etc/ab这个文件并执行n个初始化文件。

  ①0关机,1单用户模式,2多用户模式不包括nfs,3完全多用户模式,4预留,5图形化,6重启。
  ②/etc/rc.d/rc.sysinit      #定义所有启动文件的初始化文件。
  ③/etc/rc.d/* #下面会找到指定默认数字的所有文件。S开机自启动,K开机不启动,数字代表启动排名
  ④/etc/init/control-alt-delete.conf    #设置了ctrl+a/t+delete重启文件
  ⑤/etc/rc.local       #初始化最后加载的文件,自动执行下面命令。

 

(5)初始化后,用户登陆,会执行4个文件。

①/etc/bashrc                          #全局文件
/etc/profile #全局文件
/root/.bash_profile #环境变量文件
/root/.bashrc #环境变量文件

 

  • 2.bootloader程序位置:/boot/grub/stage1   #stager1通过连接工具stager1_5加载stage2 核心。
  • 3.系统启动文件位置:/boot/grub/grub.conf 
default=0                     #0代表第一个title
timeout=5                     #停留5秒钟启动
*******************          #背景画面
hiddenmenu                    #隐藏菜单
title **************          #title启动名字
root (hd0,0)                #指定boot分区在哪里,hd0代表第一块硬盘第一个分区。
kernel  **************        #告诉相对路径下的内核位置 
initrd **************         #系统静态驱动位置,内核有两部分(动态驱动,静态驱动

 

  • 4.用户删除自身的环境变量后变为-bash:恢复命令cp -p(连同权限)/etc/skel/.bash* /home/aa。
posted @ 2018-01-14 17:30  kevin.Xiang  阅读(270)  评论(0编辑  收藏  举报