grub.cfg详解(红色为说明)

合集下载

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 语法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 是初始化内存文件系统的路径。

六、设置启动模式在启动选项中,可以设置启动模式。

linux下怎么修改grub.cfg

linux下怎么修改grub.cfg

linux下怎么修改grub.cfg⼀、grub2的启动配置⽂件grub.cfggrub2的启动配置⽂件grub.cfg是/boot/grub/grub.cfg,⽽不是以前的memu.lst。

如果你是多系统,有Ubuntu和windows,那么⽤下⾯的命令,可以使grub2得到所以可以启动的系统。

sudo update-grub实际就是让系统⾃⼰⽣成合适的grub.cfg⽂件。

这个grub.cfg⽂件是只读属性,so如果你要修改它,需要权限。

sudo chmod +w /boot/grub/grub.cfg然后可以编辑grub.cfg了。

sudo gedit /boot/grub/grub.cfg⼆、默认系统和等待时间1、set default=0这是说从第⼀项启动。

每个启动项都是以menuentry开始,menuentry后⾯“xxx”是启动项名称,然后{xxx}是启动代码。

### BEGIN /etc/grub.d/10_linux ###menuentry “Ubuntu, Linux 2.6.31-14-generic” {recordfail=1if [ -n{have_grubenv} ]; then save_envrecordfail; fiset quiet=1insmod ext2set root=(hd0,6)search –no-floppy–fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059linux/boot/vmlinuz-2.6.31-14-genericroot=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro quiet splashinitrd/boot/initrd.img-2.6.31-14-generic}menuentry “Ubuntu, Linux2.6.31-14-generic (recovery mode)” {recordfail=1if [ -n ${have_grubenv}]; then save_env recordfail; fiinsmod ext2set root=(hd0,6)search–no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059linux/boot/vmlinuz-2.6.31-14-genericroot=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro singleinitrd/boot/initrd.img-2.6.31-14-generic}### END /etc/grub.d/10_linux ######BEGIN /etc/grub.d/20_memtest86+ ###menuentry “Memory test (memtest86+)”{linux16 /boot/memtest86+.bin}menuentry “Memory test (memtest86+, serialconsole 115200)” {linux16 /boot/memtest86+.binconsole=ttyS0,115200n8}### END /etc/grub.d/20_memtest86+ ###### BEGIN/etc/grub.d/30_os-prober ###menuentry “Microsoft Windows XP Home Edition(on /dev/sda1)” {insmod ntfsset root=(hd0,1)search –no-floppy –fs-uuid–set 5c108a1c1089fd70drivemap -s (hd0) ${root}chainloader +1}ifkeystatus; thenif keystatus –shift; thenset timeout=-1elsesettimeout=10fielseif sleep verbose –interruptible 3 ; thenset timeout=10fifi### END /etc/grub.d/30_os-prober ######BEGIN /etc/grub.d/10_linux ###menuentry “Ubuntu, Linux 2.6.31-14-generic” {recordfail=1if [ -n{have_grubenv} ]; then save_env recordfail; fi set quiet=1 insmod ext2 set root=(hd0,6) search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059 linux /boot/vmlinuz-2.6.31-14-generic roo verbose –interruptible 3 ; thenset timeout=10fifi### END /etc/grub.d/30_os-prober ###我的第五个启动项是menuentry “Microsoft Windows XP Home Edition (on /dev/sda1)”,我要它默认是以xp启动,所以修改为set default=”4″。

grub详解

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 参数

GRUB 的参数可以分为两个部分:配置文件和核心参数。

配置文件参数部分:
1. “default”:这个参数决定了GRUB引导时光标默认停留的引导标签。

如default=0,则GRUB引导时,光标停留在第一个引导标签上。

可以将0改成1,则GRUB引导时,光标默认停留在第二个引导标签上。

2. “timeout”:这个参数设置的是GRUB的等待时间。

当计算机启动至引导页面的时候,GRUB会有一段默认是10秒的等待时间,如果在默认时间内用户不作任何选择,则GRUB将根据default参数的设置,自动引导系统。

该参数用户也可以根据自身的需要来设置。

3. “splashimage”:这个参数设置GRUB引导界面的背景图位置。

需要自己设置,制作一张XPM图,然后将图片压缩成gz格式。

如果把这个参数删除,GRUB引导界面会变成普通的黑底白字,和NT loader一样。

核心参数部分:
这些参数通常在Linux系统的/boot/grub/grub.cfg文件中进行设置,主要包括root、kernel和initrd等参数。

例如,“root(hd0,0)”表示第一个硬盘,第一个分区。

以上内容仅供参考,可以咨询计算机技术专业人员获取更全面准确的信息。

grub2 的cfg写法 -回复

grub2 的cfg写法 -回复

grub2 的cfg写法-回复Grub2的CFG写法Grub2是一个广泛被使用的引导加载程序,它被用来在计算机启动时选择操作系统或内核。

Grub2的配置文件(通常被称为grub.cfg)是一个重要的组成部分,它决定了引导后面的操作系统或内核。

本文将为您详细介绍Grub2的CFG写法,通过一步一步的解释,帮助读者理解和创建一个有效的grub.cfg文件。

第一步:了解grub.cfg的结构在我们开始编写grub.cfg之前,我们需要了解其基本结构。

grub.cfg是一个文本文件,其中包含一系列的菜单条目。

每个菜单条目对应于一个操作系统或内核,包括该操作系统的启动选项。

每个菜单条目的基本结构如下:menuentry '菜单标题' {操作系统启动选项}'菜单标题'是我们为特定操作系统或内核定义的名称,可以根据需求更改。

而“操作系统启动选项”则包括指导Grub2引导该操作系统所需的命令。

第二步:创建一个基本的菜单条目让我们创建一个基本的菜单条目,以便了解如何编写grub.cfg。

menuentry 'Ubuntu' {search file no-floppy set=root /vmlinuzlinux /vmlinuz root=/dev/sda1initrd /initrd.img}在这个例子中,我们为操作系统Ubuntu创建了一个菜单条目。

首先,我们使用search命令来查找指定的内核文件(/vmlinuz),set=root将其设置为根文件系统。

然后,我们使用linux命令指定内核的位置(/vmlinuz),并通过root=/dev/sda1参数将根文件系统设为/dev/sda1。

最后,我们使用initrd命令指定初始内存映像文件(/initrd.img)。

第三步:添加更多的菜单条目和选项现在我们已经创建了一个基本的菜单条目,让我们继续添加更多的菜单条目和选项。

GRUB 2和grub配置文件

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、磁盘分区配置详解

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
# 手动添加时,硬盘编号从 0 开始(hd0),主分区编号从 1 开始(hd0,1),逻辑分区从 5 开始(hd0,5) 二、grub2 终端部分命令介绍 在出现选择菜单时,按 C 进入终端命令行模式,按 E 进入当前菜单项编辑模式(和 grub 一样),编辑中按 Ctrl + C 退出,按 Ctrl + X 以编辑内容启动。
### BEGIN /etc/grub.d/05_debian_theme ### set menu_color_normal=white/black set menu_color_highlight=cyan/black #这两行为 Debian 下的菜单颜色设置,如果默认的话,你会发现背景完全被蓝色挡 住了,你需要修改 blue 为 black,这样背景就会出现 ### END /etc/grub.d/05_de明)
说明:grub.cfg 默认为只读,需要个性化配置文件的,建议不要直接修改 grub.cfg, 请参考链接的 pdf 文档和 google 文档。
set default=0 #默认为 0 insmod jpeg #添加 jpg 支持,如要使用 png 或 tga 文件做背景,加上 insmod png 或 insmod tga insmod ext2 #除了用作启动的分区外,其他分区格式可在 menu 底下再添加 set root=(hd0,7) #设定 root 分区 search --no-floppy --fs-uuid --set f255285a-5ad4-4eb8-93f5-4f767190d3b3 #设定 uuid=****的分区为 root,和上句重复,可删除 # 以下为终端配置 if loadfont /usr/share/grub/unicode.pf2 ; then #设置终端字体,unicode.pf2 支持中文显示 set gfxmode=640x480 #设置分辨率,默认为 640x480,可用 800x600,1024x768,建议跟你想设定的图片 大小一致 insmod gfxterm #插入模块 gfxterm,支持中文显 示,它还支持 24 位图像 insmod vbe #插入 vbe 模块,GRUB 2 引入很多模块的东西,要使用它,需要在这里加入 if terminal_output gfxterm ; then true ; else # For backward compatibility with versions of terminal.mod that don't # understand terminal_output terminal gfxterm #设置 GRUB 2 终端为 gfxterm fi fi set timeout=10 background_image (hd0,7)/boot/images/1.jpg #设置背景图片 ### END /etc/grub.d/00_header ###
1. help 查看命令用法,显示所有可用命令 help search search 命令用法 2. ls 列出当前的所有设备。如 (hd0) (hd0,1) (hd0,5) (hd1) (hd1,1) (hd1,2) ....... ls -l 详细列出当前的所有设备。对于分区,会显示其 label 及 uuid。 ls / 列出当前设为 root 的分区下的文件 ls (hd1,1)/ 列出(hd1,1)分区下文件 3. search search -f /ntldr 列出根目录里包含 ntldr 文件的分区,返回为分区号 search -l LINUX 搜索 label 是 LINUX 的分区。 search --set -f /ntldr 搜索根目录包含 ntldr 文件的分区并设为 root,注意如果多外分区含有 ntldr 文件, set 失去作用。 4. loopback loopback 命令可用于建立回放设备,如 loopback lo0 (hd1,1)/abc.iso
### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+)" { linux16 /boot/memtest86+.bin } ### END /etc/grub.d/20_memtest86+ ###
# 自动添加存在于其他分区的系统引导项 ### BEGIN /etc/grub.d/30_os-prober ### #windows 启动菜单 menuentry "Windows Vista (loader) (on /dev/sda1)" { insmod ntfs #windows 格式为 ntfs,或为 fat32 改为 insmod fat set root=(hd0,1) search --no-floppy --fs-uuid --set ece067d2e067a196 #可删除 #grub2 比较先进的地方就是如果发现 windows 启动是通过 ntldr 引导的,定为 2000/xp/2003,会在这加上 drivemap -s (hd0) ${root} ,作用相当于 grub 的 map,可 正常启动非第一硬盘的 xp/2003 系统。 chainloader +1 } # 查找到其他分区上的 linux 系统并自动添加 menuentry "Ubuntu karmic (development branch) (9.10) (on /dev/sda3)" { insmod ext2 set root=(hd0,3) search --no-floppy --fs-uuid --set 4d893970-0685-44ed-86b3-1de45b2db84a linux /boot/vmlinuz-2.6.31-9-generic root=/dev/sda3 initrd /boot/initrd.img-2.6.31-9-generic } #若存在 macos 会自动在这里添加。 ### END /etc/grub.d/30_os-prober ###
# 以下为手动添加的菜单项 ### BEGIN /etc/grub.d/40_custom ### menuentry "CDLinux"{ set root=(hd0,8) linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8 initrd /CDlinux/initrd } ### END /etc/grub.d/40_custom ###
# 10_linux 为自动添加的当前 root 分区 linux 引导项 ### BEGIN /etc/grub.d/10_linux ### #菜单项,要包括 menuentry 双引号" " 和大括号 { }才完整,否则不显示菜单 menuentry "Ubuntu, Linux 2.6.31-9-386" { insmod ext2 set root=(hd0,7) search --no-floppy --fs-uuid --set f255285a-5ad4-4eb8-93f5-4f767190d3b3 #这句与 set root=(hd0,7)重复,可删除 linux /boot/vmlinuz-2.6.31-9-386 root=UUID=f255285a-5ad4-4eb8-93f5-4f767190d3b3 ro quite splash #不喜欢看到一长串的, roo=UUID=***可用 root=/dev/sda7 代替 initrd /boot/initrd.img-2.6.31-9-386 } ### END /etc/grub.d/10_linux ###
05. set 使用 set 可以设置变量的值 set root= set timeout= 需要调用变量的值时,使用${AA},如 set root=(hd1,1)
则${root}=(hd1,1) 6. pager 分页显示。 set pager=1 满页时暂停,按 space 继续 set pager=0 取消分页 7. linux linux 取代 grub 中的 kernel
相关文档
最新文档