zoukankan      html  css  js  c++  java
  • grub启动引导程序配置及命令行接口详解

      Grub(GRand Unified Bootloader),统一资源引导器,它的工作是提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,然后解压、展开,而后把系统控制权移交给内核。

      Grub目前有两个版本:

          1、GRUB 0.X:Grub Legacy(CentOS5、6,version 0.97);

          2、GRUB 1.X:Grub2(CentOS7,version 1.96)。

    Grub详解(Grub Legacy,CentOS6为例):

      1、Grub程序主要由3部分组成:

        stage1:MBR(0柱面 0磁道 1扇区)中

        stage1_5:MBR随后的扇区

        stage2:读取grub.conf配置文件,并实现引导功能的扩展

      释义:MBR只有512bytes的空间,给Bootloader的空间很小只有446bytes,因此Grub程序分为三段来进行:

              "stage 1" 被装入磁盘的MBR中;

              特殊的"stage 1_5"被装入MBR随后的扇区,它能够识别内核和"stage 2"所在分区的文件系统格式并帮助引导"stage 2";

              "stage 2"位于文件系统上;

          stage 2程序和配置文件grub.conf可以与内核文件处于不同的分区上(但必须位于同一磁盘),只要"stage 1.5"能够驱动它们各自所在的分区。

          在linux中,与启动相关的文件(grub目录、vmlinuz、initramfs)均位于boot目录下:

          

      2、Grub的配置文件:/boot/grub/grub.conf

       注意:必须确保grub目录、vmlinuz等在同一个目录;此外它创建了一个链接文件/etc/grub.conf 用于指向此配置文件,保证用户使用配置文件的一致性。

            default=#:设定默认启动的菜单项,编号从0开始

            timeout=#:等待菜单项选项的时长,超时自动启动系统

            splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径

            hiddenmenu:隐藏菜单

            password [--md5] STRING:菜单编辑认证

            title TITLE:定义菜单项“标题”, 可出现多次

                root (hd#,#):grub查找stage2及kernel文件所在的分区;为grub的“根”

                kernel /VMLINUZ_FILE [PARAMETERS]:启动的内核

                initrd /INITRAMFS_FILE:内核匹配的ramfs文件

                password [--md5] STRING:启动选定的内核或操作系统时进行认证

       示例:

       1)利用grub-md5-crypt生成密码

       

       2)修改/boot/grub/grub.conf配置文件

       

       3)效果

       

      3、Grub的功能:

        1)提供菜单,并提供交互式接口:

            e:编辑模式,用于编辑菜单;

            c:命令模式,交互式接口;

        2)加载用户选择的内核或操作系统:

            允许传递参数给内核;

            可隐藏此菜单;

        3)为菜单提供了保护机制:

            为编辑菜单进行认证;

            为启用内核或操作系统进行认证。

      4、Grub的编辑模式和命令行模式:

        1)开机按任意键进入菜单界面:

                 

        2)按c键进入编辑界面:

        

        3)按e键进入命令行界面:

        

        4)grub的命令行命令:

              help:获取帮助列表

              help KEYWORD:详细帮助信息

              find /FILENAME:查找文件所在的磁盘分区

              root (hd#,#):指定boot所在分区

              kernel /KERNEL_FILE:设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数,如:selinux=0,init=/path/to/init

              initrd /INITRAMFS_FILE:设定为选定的内核提供额外文件的ramfs

              boot:引导启动选定的内核、

        注意,grub识别到的磁盘(hd#, #),例如(hd0, 0),表示第1块磁盘,第1个分区。

        示例,通过命令行启动系统:

          

        5)grub的编辑命令:

          b键:表示boot,启动;

          e键:表示edit,编辑选中的项:

                o键:在选中行的下一行添加一行

                O键:在选中行的上一行添加一行

                d键:删除选中的行

                Esc键:退出编辑界面

        示例,进入单用户模式:

          

          

          

          

      5、安装Grub的方法

        方法1:

        grub-install [--root-directory=DIR] DEVICE

          DEVICE:针对哪个磁盘安装

          --root-directory=DIR:指定grub映像文件(主要是“stage 2”)的存放位置,默认为当前系统根目录。

        grub-install会在指定的目录下创建boot/grub/的层级目录,并将生成的“stage 2”置于DIR/boot/grub/下。因为内核vmlinuz-xxxx与虚拟文件系统initramfs通常位于boot目录下,故一般将DIR指定为boot目录的父目录即可。

        示例:

        

        方法2:

          输入grub命令进入grub命令行

            root (hd0,0):相当于上面的--root-directory=DIR

            setup (hd0):为哪个磁盘安装

            quit:退出

  • 相关阅读:
    【python-plt】二元正态密度函数图像
    【python-plt】一元正态分布图像
    【7】极大似然估计与贝叶斯估计
    实变函数【1】集合
    图形学-心得
    分布式网络架构
    shader的内置变量
    图形学-绘制
    python加载图片
    linux下批量删除utf8 bom
  • 原文地址:https://www.cnblogs.com/walk1314/p/9018919.html
Copyright © 2011-2022 走看看