linux启动流程

             复习linux系统的启动流程

 linux在启动的时候,大概可以分为以下几个部分:

  1.加电自检

  2.初始化BLOS

  3.执行启动加载器

  4.加载内核

  5.启动init服务

  6.登录

下面具体分析下系统启动的详细过程:

   1.加电自检,检查硬件信息(cpu,内存,硬盘,主板,显卡,cmos等),如果存在严重问题,则系统无法启动,如果一切正常,则交给BLOS。

   2.BLOS会根据其设置寻找启动磁盘(boot disk),找到启动磁盘后开始执行启动加载器

   3.启动加载器阶段,首先是MBR(Master Boot Record)找到boot loader,通过boot loader寻找到grub。grub阶段主要执行   装载stage1--装载stage1.5--装载stage2--读取/boot/grub.conf文件并显示启动菜单--装载所选的kernel和initrd文件到内存中。其中grub.conf这个文件很重要。

   4.加载内核,在此阶段主要检测所有的硬件设备并驱动硬件设备,以只读方式挂载根文件系统,启动init服务。

   5.启动init服务,首先寻找/sbin中是否有init服务,没有则寻找/etc/init ,还没有寻找/bin、init 如果都找不到则执行/bin/sh。正常情况下内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。

      其中/etc/inittab文件最主要的作用就是设定Linux的运行等级

     在/etc/inittab过程中主要执行以下任务:

      1)  /etc/rc.d/rc.sysinit

    主要作用:

     启动udev与SELinux子系统

     设置内核参数

     设置系统时间

     加载键盘对应表

     启用置换内存空间

     设置主机名

     检查并挂载所有的文件系统

     初始化硬件设备

     定义在/etc/modprobe.conf的模块

     usb设备

     启动软件磁盘阵列与lvm

     初始化穿行端口设备

     重设磁盘参数等等

      2)   /etc/rc.d/rc

     主要是用来建立Runlevel的环境

      3)   /etc/rc.d/rc.local

      rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。是整个启动过程中,唯一可以修改的RC Script。

    6.执行/bin/login程序,进入登录状态

    

    

你可能感兴趣的:(linux,系统,启动)