grub配置详细过程
grub 使用手册

grub 使用手册Grub,全称为 GRand Unified Bootloader,是一款功能强大的引导管理程序。
它主要用于在计算机启动时选择操作系统,并加载相应的内核。
Grub 的灵活性和可配置性使其成为了许多操作系统的首选引导程序。
本文将为您详细介绍 Grub 的使用方法和配置选项,以帮助您更好地理解和应用这一工具。
一、Grub 安装和基础配置1. 安装 GrubGrub 可以通过命令行工具或者图形界面进行安装。
在大多数Linux 系统中,您可以通过包管理器来安装 Grub。
例如,在 Ubuntu 系统上,您可以使用以下命令安装 Grub:```sudo apt-get install grub```2. Grub 配置文件Grub 的配置文件位于 /etc/grub.d/ 目录中,主要文件为 grub.cfg。
您可以使用任意文本编辑器来修改这个文件。
其中,每个菜单项对应着一个操作系统或者启动项。
二、Grub 引导菜单的创建和编辑1. 创建新菜单项您可以通过编辑 grub.cfg 文件来创建新的菜单项。
每个菜单项包含以下几个关键部分:- 标题(title):菜单项的名称,用于在引导菜单中显示。
- 根目录(root):操作系统所在的分区或者磁盘。
- 内核(kernel):要启动的操作系统内核的路径。
- 参数(options):传递给内核的参数,如运行级别或者启动参数。
2. 编辑现有菜单项如果您需要编辑已有的菜单项,可以通过修改 grub.cfg 文件中的对应部分来实现。
注意,修改配置文件需要具备一定的技巧和知识,确保文件的完整性和正确性。
三、Grub 引导程序的高级配置1. 高级引导选项Grub 提供了一些高级的引导选项,用于调整引导过程中的行为。
例如:- 设置默认启动项:您可以修改配置文件中的默认启动项,以自动选择在引导菜单中的排序顺序或者指定一个特定的菜单项。
- 自定义启动画面:Grub 允许您更改引导菜单的外观,例如更换背景图片或者调整菜单字体的颜色。
grub 语法

grub 语法Grub 语法指的是 GRand Unified Bootloader(简称GRUB)的配置文件语法,它是用于多操作系统启动的引导程序。
在这篇文章中,我们将详细介绍 Grub 语法的各种用法和配置选项。
一、GRUB配置文件的基本结构Grub 的配置文件通常位于/boot/grub 目录下,文件名为grub.cfg。
该配置文件采用一种类似于 Shell 脚本的语法,用于定义启动菜单和相关的选项。
配置文件的基本结构如下:```set root=(hdX,Y)```这一行用于设置 Grub 的根目录,其中 hdX 是硬盘的编号,Y 是分区的编号。
根目录是指 Grub 搜索内核和模块文件的起始位置。
二、定义启动菜单在 Grub 的配置文件中,可以通过 menuentry 关键字定义不同的启动菜单。
每个启动菜单对应一个操作系统或内核镜像。
定义启动菜单的语法如下:```menuentry '操作系统名称' {# 启动选项}```其中,操作系统名称可以是任意字符串,用于标识不同的启动菜单。
三、设置启动选项在每个启动菜单中,可以设置不同的启动选项,如指定内核文件、初始化内存文件系统等。
设置启动选项的语法如下:```linux /boot/vmlinuz 内核参数```其中,/boot/vmlinuz 是内核文件的路径,内核参数是传递给内核的额外参数。
四、设置根文件系统在启动选项中,还可以设置根文件系统。
设置根文件系统的语法如下:```root=/dev/sdXY```其中,/dev/sdXY 是根文件系统所在的分区路径。
五、设置启动命令在启动选项中,可以使用 initrd 命令加载初始化内存文件系统。
设置启动命令的语法如下:```initrd /boot/initrd.img```其中,/boot/initrd.img 是初始化内存文件系统的路径。
六、设置启动模式在启动选项中,可以设置启动模式。
第6讲GRUB启动管理器

命令格式:#password 口令字 //为GRUB 旳开启菜单和菜单项设置口令
设置全局口令(设置GRUB旳全局口令为12345) password12345
GRUB开启引导器
GRUB简介 安装GRUB Grub旳操作界面 GRUB旳配置文件grub.conf GRUB旳安全设置 GRUB旳配置使用技巧
GRUB简介
1、grub与开启引导器
开启引导器是计算机开启过程中运营旳第一种真正旳软件,一般计算机 开启时在经过BIOS自检后读取并运营硬盘旳主引导扇中旳开启引导器程 序,开启引导器再负责加载开启硬盘分区中旳操作系统。
b:开启目前旳菜单项 e:编辑目前选中旳行 c:进入GRUB旳命令行方式 o:在目前行背面插入一行 O:在目前行前面插入一行 d:删除目前行 Esc:返回GRUB开启菜单界面,取消对目前开启菜单项所做旳任何修改:
GRUB旳操作界面
3、GRUB命令行界面 Guub命令行界面提供了以便友好旳命令行交互方式,其 特点涉及:
在开启菜单项间移动 Enter:开启目前旳菜单项 e:编辑目前旳开启菜单项 a:添加内核旳开启参数 c:单项编辑界面 在此模式下能够对GRUB配置文件中已经存在旳开启项做进 一步旳调整. 例如:对既有行进行编辑、添加删除命令行。
GRUB开启菜单编辑界面按键: 选择菜单项中旳行
能从非活动分区开启) chainloader:使用chainloader命令调用windows分区旳
开启引导器引导windows系统
GRUB旳安全设置
主要功能: 能够针对开启菜单设置全局口令 可对某菜单项使用全局口令 可对某菜单项设置独立口令 对全部旳口令都能够使用MD5进行加密
grub详解

grub详解应樱家冢、Bluedata以及其他兄弟的要求,这里谈一谈自己在配置Grub当中积累的点滴,不存在什么高深的使用技巧——^_^,我自己也没有掌握,实际上就是我们常用的功能整理了一下。
如有错误和疑问,请大家指教!因为时间不够用,所以才这么迟的出来,希望两位兄弟谅解,同时感谢网络上曾经为了Linux的事业不停奋斗而无私贡献的人们——因为本文参考了他们的经验!1、一个GRUB配置文件2、解读grub.conf文件3、配置grub4、GRUB的交互性5、常见grub除错方法的思路1 一个GRUB配置文件基于本例的分区如下:hda 15Ghda1 8G / RED HA T LINUX8.0hda5 7G /homehdc 20Ghdc1 6.4G WinXPhdc5 6.4Ghdc6 6.4Ghdc7 6.4G#fdisk -l# Disk /dev/hdc: 255 heads, 63 sectors, 2434 cylindersUnits = cylinders of 16065 * 512 bytesDevice Boot Start End Blocks Id System/dev/hdc1 * 1 894 7181023+ b Win95 FA T32/dev/hdc2 895 2434 12370050 f Win95 Ext'd (LBA)/dev/hdc5 895 1787 7172991 b Win95 FA T32/dev/hdc6 1788 2434 5196996 b Win95 FA T32Disk /dev/hda: 255 heads, 63 sectors, 1867 cylindersUnits = cylinders of 16065 * 512 bytesDevice Boot Start End Blocks Id System/dev/hda1 * 1 1020 8193118+ 83 Linux/dev/hda2 1021 1802 6281415 83 Linux/dev/hda3 1803 1867 522112+ 82 Linux swapgrub.conf,这个文件位于;/boot/grub/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: Y ou do not have a /boot partition. This means that# all kernel and initrd paths are relative to /, eg.# root (hd0,0)# kernel /boot/vmlinuz-version ro root=/dev/hda1# initrd /boot/initrd-version.img#boot=/dev/hdadefault=0timeout=3splashimage=(hd0,0)/boot/grub/splash.xpm.gztitle Red Hat Linux (2.4.18-14)root (hd0,0)kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/initrd /boot/initrd-2.4.18-14.imgtitle Microsoft Windows XProot (hd1,0)chainloader (hd1,0)+1makeactivemap (hd0) (hd1)map (hd1) (hd0)boot2 解读grub.conf文件我们将来看看grub.conf文件内语句,(注:...)内的东西是我们的解读内容.# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: Y ou do not have a /boot partition. This means that# all kernel and initrd paths are relative to /, eg.# root (hd0,0)# kernel /boot/vmlinuz-version ro root=/dev/hda1# initrd /boot/initrd-version.img#boot=/dev/hda (注:以上以符号井"#"开头的行表示被注释掉,没有任何意义)default=0 (注:默认的操作系统就是由default控制的。
GRUB基础教程

GRUB基础教程目录[隐藏]∙ 1 教程提示o 1.1 我应该学习这门教程吗?∙ 2 GRUB 基础o 2.1 什么是 GRUB?o 2.2 GRUB 很棒o 2.3 为什么使用 GRUB?∙ 3 安装 GRUBo 3.1 下载 GRUBo 3.2 安装步骤o 3.3 制作引导盘▪ 3.3.1 准备开始▪ 3.3.2 准备磁盘▪ 3.3.3 启动GRUB▪ 3.3.4 完成引导盘∙ 4 使用 GRUBo 4.1 准备o 4.2 启动 GRUBo 4.3 首次接触o 4.4 "root"o 4.5 GRUB 命名约定o 4.6 装入内核∙ 5 GRUB 内幕o 5.1 重新调查引导软盘o 5.2 两阶段过程o 5.3 阶段 1、1.5 和 2o 5.4 搜索和恢复o 5.5 硬盘引导o 5.6 引导菜单o 5.7 理解引导菜单∙ 6 总结o 6.1 GRUB 的弹性o 6.2 优秀的 GRUB 参考资料[编辑]教程提示[编辑]我应该学习这门教程吗?本教程向您显示如何安装和使用 GRUB (Grand Unified Boot Loader)。
就像 LILO 一样,GRUB 允许引导 Linux 系统,它负责装入和引导内核。
但与 LILO 不同,GRUB 的功能非常多,更易于使用,更可靠和灵活,而且非常小巧。
如果已经有些熟悉 LILO,并了解了磁盘分区的基本知识,那么您就掌握了学习本教程应具备的预备知识。
通过学习本教程和安装 GRUB 之后,您将改进 Linux 系统的可靠性和可用性。
如果只是想尝试 GRUB,可以学习本教程的前半部分,并制作 GRUB 引导盘,然后练习使用它来引导系统。
这样做以后,您将学会在紧急情况下如何使用 GRUB 来引导系统。
但是,如果想更深入地体验 GRUB,可以学完整个教程,它将为您演示如何将 GRUB 设置成缺省引导装入器。
[编辑] GRUB 基础[编辑]什么是 GRUB?GRUB 是引导装入器 -- 它负责装入内核并引导 Linux 系统。
GRUB 2和grub配置文件

可以使用这个命令将所有后续的重新启 动的选项设为第二个菜单选项 (menuentry): 命令:grub2-set-default 1 二、GRUB 2的配置文件内容 (/boot/grub2/grub.cfg)包含了若干个 menuentry段,而每一个段就代表安装 了一个Linux内核。每一个段都是以带有 一些选项的menuentr关键字开始。 每个menuentry也是在GRUB2选单中 的一个单独的菜单选项(即可以系统)
GRUB 2和/etc/default/grub配置文件
一、GRUB 2的配置文件是 /boot/grub2/grub.cfg,早期版本的GRUB 配置文件是可以直接更改的,但是到了 Linux 7.0后是不可以直接更改(编辑) 的, 必须使用命令grub2-mkconfig命令 来生成这一个配置文件。当生成grub.cfg 配置文件时,grub2-mkconfig命令使用 /etc/grub.d目录中的一些模板脚本并从
/boot/grub2/grub.cfg文件生成后,系 统要从/etc/default/grub文件中获取 GRUB 2 菜单-配置的设置。内容如下
要想改变/etc/default/grub文件的配置信 息,必须运行命令grub2-mkconfig重新生成
/boot/grub2/grub.cfg文件,命令如下:
grub2-mkconfig -o /boot/grub2ቤተ መጻሕፍቲ ባይዱgrub.cfg
如果GRUB_DEFAULT的值是saved,则 可以使用grub2-set-default命令和grub2reboot命令指定默认选项。这两个命令 的功能如下: grub2-set-default:为所有后续的重新 启动系统设置默认选项。 grub2-reboot:仅为下一次重新启动 系统设置默认选项。 如果GRUB_DEFAULT的值为saved,则
grub启动流程及原理

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
-rw-r--r-- 1 root root 8904 2010-10-23 xfs_stage1_5
[cent@localhost ~]$
现在我们把Grub再安装一次,安装在MBR(MBR广义可指主引导扇区):
[cent@localhost ~]$ sudo grub
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
Grub、磁盘分区配置详解

Grub引导程序的安装、配置及使用汇总(一)安装linux时安装grub.安装redhat linux时会提示安装引导程序,如果选择grub为引导程序,建议把grub安装到硬盘的引导扇区MBR. grub 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT、2000、XP。
(二)grub的配置一旦选择了grub为引导程序,下面我们来了解一下它的配置./boot/grub/grub.conf是grub产生一个引导选择菜单以及设置一些选项.下面是我的grub.conf:#==========例子开始==========# grub.conf generated by anaconda# Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,6)# kernel /vmlinuz-version ro root=/dev/hda10 # initrd /initrd-version.img#boot=/dev/hdadefault=0timeout=10splashimage=(hd0,6)/grub/splash.xpm.gz# --> Redhat Linux 8.0 <--title Red Hat Linux (2.4.18-14)root (hd0,6)kernel /vmlinuz-2.4.18-14 ro root=LABEL=/initrd /initrd-2.4.18-14.img# --> Microsoft Windows XP <--title Microsoft Windows XProotnoverify (hd0,0)chainloader +1#===========例子结束==========配置选项解释:以"#"开头的是注释行.我这里有两个操作系统,分别是Red Hat Linux和Microsoft Windows XP.其中 timeout标识默认等待时间,我这设置为10秒,超过10秒用户还没作出选择的话,将自动选择默认的操作系统(我这里默认的是Redhat linux 8.0)里0表示第一个,1表示第二个.所以如果你想修改默认的操作系统,就修改default后的数字.title一项是设置操作系统的名称,grub不支持中文(有点遗憾).splashimage一项指定grub界面的背景图片,有兴趣的朋友可以修改grub的背景哦!root (hd0,6)标识从第一个硬盘,第7个分区来启动搜索引导内核.注意这儿的root与linux的root分区不同,此root非彼root也! grub的硬盘标识方法与linux的有点不同.在linux中第一个主分区为hda1,第二个主分区为hda2,第一个逻辑分区为hda5,而在 grub 中是以(hdx,y)来标识的,如第一个主分区为(hd0,0)第一个逻辑分区为(hd0,4)依此类推.所以这儿root后面的是你的 /boot所在分区标识.知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是Grub
GNU GRUB(简称“GRUB”)是一个来自GNU项目的多重操作系统 启动程序。GRUB是多启动规范的实现,它允许用户可以在计算 机内同时拥有多个操作系统,并在计算机启动时选择希望运行的 操作系统。GRUB可用于选择操作系统分区上的不同内核,也可 用于向这些内核传递启动参数。
grub> linux (loop)/isolinux/vmlinuz0 root=live:/root/rtm.iso liveimg
grub> initrd (loop)/isolinux/initrd0.img grub> boot
手写插入图片
grub> root=(hd0,3) grub> prefix=(hd0,3)/boot/grub2/ grub> linux /boot/vmlinuz-3.1.5-2-i686 root=/dev/sda3 grub> initrd /boot/initramfs-3.1.5-2-i686.img grub> boot
2、设备的命名
grub2同样以fd表示软盘,hd表示硬盘(包含IDE和SCSI硬盘)。设备 是从0开始编号,分区则是从1开始,主分区从1-4,逻辑分区从5开始, 而grub分区编号是从0开始的。下面给出几个例子 : (fd0):表示整个软盘 (hd0,1):表示BIOS中的第一个硬盘的第1个分区 (hd0,5)/boot/vmlinuz:表示BIOS中的第一个硬盘的第一个逻辑分区下 的boot目录下的vmlinuz文件
GRUB的菜单界面
GRUB的菜单项目编辑器界面
GRUB的菜单项目编辑器界面
菜单项编辑命令 按<e>键:编辑当前选中的行 按<c>键:进入GRUB的命令行界面 按<o>键:在当前行后面插入一行 按<O>键:在当前行前面插入一行 按<d>键:删除当前行 按<b>键:启动当前的菜单项命令并引导操作系统 按<Esc>键:返回菜单界面,取消对当前菜单项所做的任何修改
如何手写grub
假设分区都是(hd0,0) 按下C后:linux系统的写法 grub>root (hd0,0) grub>kernel /boot/vmlinuz-2.6.31-4_11 root=/dev/sda1 grub>initrd /boot/initrd-2.6.31-4_11.img grub>boot
通过GRUB引导Windows操作系统
如果您的机器有两块硬盘
而Windows 位于第二个硬盘的第一个分区,也就是(hd1,0) 您可以用grub的map来指令来操作把两块硬盘的序列对调,这样就不用在 BIOS中设置了;在grub.conf中加如下的内容,比如下面的; title WinXp map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1,0) chainloader +1 makeactive
GRUB2 介绍 新布局
GRUB legacy版本将文件放置在/boot/grub/目录下,包括在启动过程中 读取并显示内容给用户的menu.lst文件。 GRUB2 主要有三个部份:
1. /etc/default/grub 包含了GRUB2的菜单。
2. /etc/grub.d/ 含了生成GRUB2菜单的脚本。 3. /boot/grub/grub.cfg 的配置文件,勿直接编辑。
Gr作系统的内核,一旦把内核挂载 ,系统引导管理器的任务就算完成退出,系统引导的其它部份,比 如系统的初始化及启动过程则完全由内核来控制完成;
Grub诞生
GRUB于1995年面世,当时Erich Boleyn正尝试使用尤他州大学的 Mach4微内核去引导GNU Hurd。因为当时互不兼容的个人计算 机引导方法已经太多了,他们决心不再淌这浑水,后来Erich和 Brian Ford设计了多重引导规范。 接着Erich就开始修改FreeBSD的引导加载器以支持多重引导, 但他很快就认识到自己重新写一个比继续修改FreeBSD的引导加 载器要容易得多,于是就有了GRUB。 Erich给GRUB增加了很多特性,但是其它东西分散了他的精力 ,以至于GRUB的用户群没能迅速扩张。后来有Gordon Matzigkeit和Okuji Yoshinori接替Erich的工作,继续维护和开发 GRUB。1999年,Gordon Matzigkeit和Yoshinori K. Okuji采用了 GRUB作为正式的GNU软件包,并通过匿名CVS访问最新源代码 的方式放开了GRUB的开发。
GRUB对设备的命名
首先,GRUB对设备的命名必须包含在小括号()内;其次,GRUB 不区分IDE硬盘和SCSI硬盘,统一使用hdx,其中x指定BIOS中 硬盘的编号,并从0开始计数。 (hd0) 表示第一块磁盘 (hd0,1) 表示第1个硬盘的第2个分区 (hd0,0)/boot/vmlinuz 表示第1个硬盘的第一个分区下的boot/目 录下的vmlinuz文件。
如果有多个Windows 系统
怎么才能引导出来呢?应该用hide和unhide指令操作;比如我们安装 了两个Windows ,一个是位于(hd0,0)的windows 98 ,另一个是安装 的是位于(hd0,1)的WindowsXP;这时我们就要用到hide指令: hide 通过在分区类型上置隐藏标志,隐藏指定分区。 title Win98 unhide (hd0,0) hide (hd0,1) rootnoverify (hd0,0) chainloader +1 makeactive title WinXP unhide (hd0,1) hide (hd0,0) rootnoverify (hd0,1) chainloader +1 makeactive
/ / LiveOS/ ReadMe-zh_CN.txt hdboot/ isolinux/ usb-live-tool.sh grub> linux (loop)/isolinux/
按下TAB显示可用文件:
/ / boot.cat chain.c32 initrd0.img isolinux.bin isolinux.cfg vesamenu.c32 vmlinuz0
插入grub菜单图片
2、下面介绍下在grub2中一些常用的命令
loopback一个例子:在sda3/root下放了一个rtm.iso
grub> set root=(hd0,3)
grub> loopback loop /root/rtm.iso grub> linux (loop)/
按下TAB可显示用文件:
root:设置GRUB的根设备(root)为Linux内核所在的 分区 。 rootnoverify:做root命令同样的事情,只是不挂装分 区。 kernel:用kernel命令后跟Linux内核文件作为参数,加载 Linux的内核文件。 initrd:用initrd命令加载镜像文件。
map:交换磁盘或分区在BIOS中的标志符,用于启动在第二个硬盘 中的Windows。 makeactive:设置根设备为活动分区(针对于Windows不能从非活 动分区启动)。 chainloader:使用chainloader命令调用Windows分区的启动引导器 引导Windows系统。
在接下来的几年中,Grub要求被扩展以满足更多需要,但是 很快被意识到它的设计跟不上向它提出的扩展。他们达成一 个共同点:不改变已存的结构的话是很难做进一步变化的。 在2002年左右,Yoshinori K. Okuji开始做GNU GRUB早期 通用编程架构(PUPA-Preliminary Universal Programming Architecture),就是为了重写Grub的核心以 使其更清洁,更安全,更健壮,更强大。PUPA最终被命名 为grub2,以前的grub版本被重新命名为Grub Legacy。 少量的人员被继续留下开发grub legacy,但是最后一个版本 是2005年的0.97,在这时继续写它也不太可能写出另一个版 本了。在2007年左右,GNU/Linux发行版开始使用Grub2。 在2009年左右大多数发行版商默认都安装grub2。
GRUB配置文件的常用选项
default:设置启动菜单的默认启动项,菜单项序号参数其值从"0" 开始, 即"0"代表第1个菜单项,"1" 代表第2个菜单项。 timeout:GRUB载入由default命令指定的OS前的时间间隔,以 秒为单位。 title:设定用来装载一个OS的标题。 splashimage:指定在GRUB引导时所使用的屏幕图像的位置。
按下C后:windows系统的写法 grub> rootnoverify (hd0,0) grub> chainloader +1 grub> boot
Grub rescue
比如先装linux然后装windows,重启后linux不知道跑哪去了。 windows自作聪明的把Grub覆盖了,而自己的引导程序并没有引导 启动linux的能力。 解决方法:重新安装Grub。当然前提是用户有一张相同版本的 Linux安装光盘。 成功从光盘启动后,在Linux命令行下依次输入下面这些命令。 grub find /boot/grub/stage1 (查找硬盘上的Linux系统将boot 目录存放在哪个硬盘分区中) root (hdx,y) setup (hd0) quit
配置 GRUB GRUB的配置都是通过位于 /boot/grub/grub.conf 的一个配置 文件来完成的。
grub.conf 配置文件 # grub.conf generated by anaconda #....... default=0 timeout=10 splashimage=(hd1,3)/grub/splash.xpm.gz title Red Hat Linux root (hd1,3) kernel /vmlinuz-2.4.18-14 ro root=LABEL=/ initrd /initrd-2.4.18-14.img title Windows XP rootnoverify (hd0,0) chainloader +1