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:退出
grub启动引导程序配置及命令行接口详解的更多相关文章
- 简述grub启动引导程序配置及命令行接口详解
一.版本 grub:Grand Unified Bootloader grub 0.x:grub legacy grub 1.x:grub2 二.grub legacy 三个过程 stage1:安装在 ...
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...
- Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解
http://hi.baidu.com/ltb6w/item/3a51f11926fda60ce75c361d Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解 ...
- OpenVPN下载、安装、配置及使用详解
OpenVPN下载.安装.配置及使用详解 OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可 ...
- MySql绿色版配置及使用详解
原文:MySql绿色版配置及使用详解 最近在做项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了.在使用的过程中还是出现了一些问题,因为使用的是绿色免安装版的MySq ...
- Linux NFS服务器的安装与配置方法(图文详解)
这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...
- Linux中redis安装配置及使用详解
Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...
- 全网最详细的Windows系统里PLSQL Developer 64bit安装之后的一些配置(图文详解)
不多说,直接上干货! 注意的是: 本地若没有安装Oracle服务端,Oracle server服务端64位,是远程连接,因此本地配置PLSQL Developer64位. PLSQL Develope ...
- Windows 7操作系统下PHP 7的安装与配置(图文详解)
前提博客 Windows 7操作系统下Apache的安装与配置(图文详解) 从官网下载 PHP的官网 http://www.php.net/ 特意,新建这么一个目录 ...
随机推荐
- Android adb命令查看sharedpreferences
adb shell run-as com.example.android //对应包名 ls查看当前目录下的所有文件,找到shared_prefs cd shared_prefs ls 查看所有的 s ...
- 路飞学城知识点3缓存知识点之二redis
redis:支持的字符类型多,可以做持久化 memchache:只能存储到内存中,不能做持久化,仅支持字符串类型. 参考博客 redis安装服务端: github安装包 安装客户端: pip inst ...
- 网络爬虫入门(二)模拟提交以及HttpClient修正
模拟提交就是说我们不自己登陆到客户端,仅仅靠发送请求就模拟了客户端的操作,在现实使用的时候经常用来接收一些需要登录才能获取到的数据,来模拟表单的提交,所以很多时候也被称作虚拟登录,这次的例子是我自己为 ...
- 毕向东_Java基础视频教程第20天_IO流(1~4)
第20天-01-IO流(File概述) File类: 用来将文件或者文件夹封装成对象, 方便进行操作. File对象可以作为参数, 传递给流对象的构造函数. 流对象不能操作文件夹; 流对象不能操作文件 ...
- webpack学习笔记丁点积累
webpack是什么? https://webpack.js.org/concepts/ https://code.tutsplus.com/tutorials/introduction-to-web ...
- resin下发布项目报错java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index
我的resin版本为4.0.56; 项目在tomcat下启动正常,打包在resin下发布时报错:java.lang.NoSuchMethodError: javax.persistence.Table ...
- [翻译] VLDContextSheet
VLDContextSheet 效果: A clone of the Pinterest iOS app context menu. 复制了Pinterest应用的菜单效果. Example Usag ...
- Linux入门-6 Linux网络基本配置
1. 网络基础知识 网络编址 IP编址 子网掩码 同一网络主机之间通信--MAC地址 不同网络之间的通信 路由 域名 DNS 基本网络参数 2. Linux网络基础配置 以太网连接 配置网络信息 网络 ...
- 沉淀再出发:关于IntelliJ IDEA使用的一些总结
沉淀再出发:关于IntelliJ IDEA使用的一些总结 一.前言 在使用IDEA的时候我们会发现,如果我们先写了一个类的名字,而没有导入这个类的出处,就会提示出错,但是不能自动加入,非常的苦恼,并且 ...
- fill & stroke
- (void)stroke Draws a line along the receiver’s path using the current drawing properties. - (void) ...