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:退出

grub启动引导程序配置及命令行接口详解的更多相关文章

  1. 简述grub启动引导程序配置及命令行接口详解

    一.版本 grub:Grand Unified Bootloader grub 0.x:grub legacy grub 1.x:grub2 二.grub legacy 三个过程 stage1:安装在 ...

  2. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  3. Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解

    http://hi.baidu.com/ltb6w/item/3a51f11926fda60ce75c361d Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解 ...

  4. OpenVPN下载、安装、配置及使用详解

    OpenVPN下载.安装.配置及使用详解   OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可 ...

  5. MySql绿色版配置及使用详解

    原文:MySql绿色版配置及使用详解 最近在做项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了.在使用的过程中还是出现了一些问题,因为使用的是绿色免安装版的MySq ...

  6. Linux NFS服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...

  7. Linux中redis安装配置及使用详解

    Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...

  8. 全网最详细的Windows系统里PLSQL Developer 64bit安装之后的一些配置(图文详解)

    不多说,直接上干货! 注意的是: 本地若没有安装Oracle服务端,Oracle server服务端64位,是远程连接,因此本地配置PLSQL Developer64位. PLSQL Develope ...

  9. Windows 7操作系统下PHP 7的安装与配置(图文详解)

    前提博客 Windows 7操作系统下Apache的安装与配置(图文详解) 从官网下载           PHP的官网 http://www.php.net/         特意,新建这么一个目录 ...

随机推荐

  1. MUI框架-03-自定义MUI控件样式

    MUI框架-03-自定义MUI控件样式 开发请查阅:官方文档:http://dev.dcloud.net.cn/mui/ui/ 如何自定义MUI控件样式 mui 以 iOS 7的 UI 为基础,补充了 ...

  2. 在Qt中使用Font Awesome图标

    官网: http://fontawesome.io/中文网: http://www.fontawesome.com.cn/GitHub: https://github.com/FortAwesome/ ...

  3. VS2010 创建 windows service 程序

    参考网上保护眼睛程序,自写程序如下. 1.创建一个名词为“CareEyeService”,类型为“WindowsService”的应用程序. 自动生成代码如下图: 2.修改ServiceCareEye ...

  4. 为什么懂云的IT高手能过得比你好

    盼望着,盼望着,一年一度的国庆7天长假还有不到24小时就到来了.各个部门的同事都已准备好满世界旅行去了. IT 部门各位同事的心还是悬着,信息系统还要持续的运转,对外的网站不能停,假期的线上促销也不能 ...

  5. 设计模式(17) 访问者模式(VISITOR) C++实现

    意图: 表示一个作用于某对象结构的各元素的操作.它使你可以再不改变各元素的类的前提下定义作用于这些元素的新操作. 动机: 之前在学校的最后一个小项目就是做一个编译器,当时使用的就是访问者模式. 在静态 ...

  6. Java实例---简单的个人管理系统

    代码分析 FileOperate.java package com.ftl.testperson; import java.io.File ; import java.io.FileInputStre ...

  7. Sybase常用时间日期函数

    Sybase日期函数日期函数getdate()得到当前时间,可以设置得到各种时间格式.datepart(日期部分,日期)取指定时间的某一个部分,年月天时分秒.datediff(日期部分,日期1,日期2 ...

  8. [EffectiveC++]item22:Declare data members private

    将成员变量隐藏在函数接口的背后,可以为“所有可能的实现”提供弹性, 假设我们有一个public成员变量,而我们最终取消了它,多少代码可能会被破坏呢?那是一个不可知的大量. protected成员变量就 ...

  9. VS2013打开项目 提示Asp.net4.5未在web服务器上注册 F5运行 启动不来 权限

    打一个补丁 http://blogs.msdn.com/b/webdev/archive/2014/11/11/dialog-box-may-be-displayed-to-users-when-op ...

  10. Nginx and PHP-FPM Configuration and Optimizing Tips and Tricks

    原文链接:http://www.if-not-true-then-false.com/2011/nginx-and-php-fpm-configuration-and-optimizing-tips- ...