boot里面我们可以根据自己的需求去设置一些启动选项,我们今天来了解一下Linux启动流程,以及boot下的选项。

     wKiom1fXmpOgvkf1AAFXG-vVIDs288.png

        1. 加载BIOS的硬件信息,获取第一个启动设备。

        2. 读取第一个启动设备MBR的引导加载程序(grub)的启动信息

        3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备。

        4. 核型执行init程序并获取运行信息。

        5. Init执行/etc/rc.d/rc.sysinit文件。

        6. 启动核心的外挂模块(/etc/modprobe.conf)

        7. Init执行运行的各个批处理文件(scripts).

        8. Init执行/etc/rc.d/rc.local.

        9. 执行/bin/login程序,等待用户登录。

        10. 登录之后开始以Shell控制主机。


   POSTPower-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、 CD-ROM光驱等硬件情况的检测。

   ROM BIOS Basic Inputand Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等。

   RAM CMOS互补金属氧化物半导体,保存各项参数的设定按次序查找引导设备,第一个有引导程序的设备为本次启动设备bootloader: 引导加载器,引导程序

    Boot Loader:主要功能识别.加载操作系统中的核心文件,并提交到内存中运行,进而启动对应的操作系统,每一种操作系统都有自己单独的Boot Loader,只有使用自己的Boot            Loader才可以加载到自己的核心文件。Boot Loader另一个主要功能是提供菜单信息(可以向使用者提供不同的启动项目,来加载不同的操作系统),并将启动管理功能

          转交给其他的加载程序。

   Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核

    stage1:运行boot Loader的程序与配置项加载分成三个阶段(stage)来运行,MBR空间有限,因此在MBR中仅安装Boot Loader的最小主程序,并没有安装Boot Loader的相关配置文件

    stage1_5:在MBR随后的扇区中存放,主要用于与stage2所在分区的文件系统进行交互。

    stage2:通过Boot Loader加载所有配置文件及相关的环境参数信息,这些配置文件及相关的环境参数都存放于磁盘分区上的/boot目录上。

    grub:最重要的一部分就是识别磁盘信息,grub对硬盘的识别是通过以下方式:

    (hd0,0)

     1.硬盘代号以小括号()括起来;

     2.硬盘以hd表示,后面会接一组数字,数字之间以逗号隔开;

     3.以搜寻到的顺序来作为磁盘的编号,而非根据磁盘的排线编号(多硬盘情况下, 搜寻的次序是根据bios中设置的启动顺序,而非插槽编号);

     4.第一个搜寻到的磁盘编号为0,第二个为1,一次类推。

     5.每块磁盘上的第一个分区编号为0,第二个分区为1,以此类推。

      #:因此(hd0,0)就表示第一块磁盘上的第一个分区。

     default=0

         表示默认的启动条目,假如同时装有多个操作系统,0表示定义的第一个title系统,1表示定义的第二个title系统,以此类推

     timeout=5

         表示可供选择的等待时间,如果超过5秒,则使用默认的启动条目default定义的

     splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz

          定义启动时的背景图片信息

     hiddenmenu

         启动时是否要显示菜单,默认情况下是不显示菜单信息,如果想要显示菜单,可以将该配置注释即可;

   注释菜单:

    title:定义操作系统的名称

    root :表示内核文件存放的位置,这里指定的是分区位置,而非根目录。

    kernel:内核的名称以及一些启动时的核心参数,由于启动过程中需要挂载根目录,因此就需要指定根目录所在的分区,rhgb表示色彩显示,quiet表示静默模式加载内核。

    initrd:指定用于辅助内核完成系统启动的ramdisk文件路径再次在内存缓存

     

   默认启动级别:

     wKiom1fXu5TAfTjHAACSE2UUE-8455.png

       0:关闭所有服务;关机

       1:维护模式;单用户模式,sigle模式,此级别可允许root用户直接登录而无需认证。

       2:维护模式;多用户模式,需要用户认证,会启动网络功能,但不支持使用NFS。

       3:正常级别:完全多用户模式,文本界面。

       4:预留级别:

       5:正常级别:完全多用户模式,图形界面。

       6:关闭所有服务;重启

      #:通常使用较多的默认级别为3或者5,服务器基本上默认使用3级别,即文本界面。

      #:查看当前运行的级别可以使用runlevel或者who -r

    wKiom1fXv4SirhdrAAANLaqb-50098.png

     #:禁用Ctrl+Alt+Delete重启;(centos 6)

       1.cp -v /etc/init/control-alt-delete.conf /etc/init/control-alt-delete.override

       2.vim /etc/init/control-alt-delete.override

       3.将exec /sbin/shutdown -r now "Control-Alt-Delete pressed"改为exec /usr/bin/logger -p authpriv.notice -t init"ctrl-alt-del was pressed and ignored"

破坏及修复:

    stage1:破坏

        [root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=1 count=446

        [root@localhost ~]# hexdump -Cv /dev/sda -n 446

    stage1:修复

    1.重启并进入救援模式

   wKioL1fX49awI9ZPAAaPweiQpDs109.png

    2.选择语言

   wKiom1fX49eAO2vXAAAgZ9F8xuY564.png

    3.设置网络选择NO

   wKioL1fX49fAhxldAAAQtj1BbWU326.png

    4.输入continue

   wKiom1fX49jzcJ0oAAA4dlILxeU534.png

    5.打开shell终端,并切换至根目录,chroot /mnt/sysp_w_picpath/

   wKiom1fX49jCVy3vAAAt24xGrcM164.png

    6.错误输出信息可以忽略,看到设设备信息即可。

   wKioL1fX49jiaqbPAABMH7Cz1YA450.png

   wKiom1fX49njaKodAAAeMC6y6iI013.png

    7.就此stage1已经修复完成,重启即可完成。

 stage1_5:破坏

    dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1

 stage1_5:修复

    1.重启系统

    2.光盘启动,进入救援模式。

   wKiom1fX557i1Jp8AABbIdJfE8I313.png

    3.使用grub工具修复引导文件,修复完成,直接重启即可。

 boot:破坏,直接删除boot目录

 boot:修复

    1.删除boot目录下全部文件并重启

     [root@localhost ~]# rm -rf /boot/*

    2.重启并进入救援模式

   wKiom1fX7V6yCnJPAAAOckqUR5A100.png

    3.进入根目录,挂载镜像

   wKioL1fX7V_D9MLBAAAczt0S0NI284.png

    4.重新安装kernel

   wKiom1fX7V_iSKEWAAAS60MhvuQ563.png

    5.修复引导文件

   wKioL1fX7V-xsEYuAAAQOJECVzg863.png

    6.编辑/etc/grub.conf配置文件

   wKioL1fX7WCioHiNAAAwbP91_gk683.png

    7.修复完成,重启即可。

 boot:破坏    

    [root@localhost ~]# rm -rf /boot/*

 fstab:破坏

    [root@localhost ~]# rm -rf /etc/fstab

 引导修复,fstab文件修复。

    1.重启并进入救援模式。

    2.我们会发现系统检测不到根目录,因为我们把/etc/fstab删除了

   wKioL1fX9nuinS0lAAArbI9sj64838.png

    3.查看逻辑卷,并激活逻辑卷,默认关闭状态

   wKioL1fX9nyz31ECAAAaUugGEzw071.png

    4.挂载根目录。

   wKiom1fX9nzzonHHAAAFe9tMKps663.png

    5.新建/etc/fstab并写入挂载信息,重启进入救援模式,让系统自动检测。

   wKioL1fX9nzjvJ4bAAAqG7z5LQM133.png

    6.这里我们发现系统已经检测到了路径/etc/sysp_w_picpath

   wKiom1fX9n2BUsbhAAA6zxq8hLA435.png

    7.重新进入根目录,挂载镜像文件。

   wKioL1fX9n7iogc1AAAWXe5cEzY544.png

    8.重新安装kernel,并修复引导文件

   wKiom1fX9n7xihH3AAApErgQoBY624.png

    9.编辑/etc/group引导文件

   wKiom1fX9n6Rzv4tAAAvObH63oQ324.png

    10.到这一步已经修复完成了,直接重启即可正常进入系统。