grub.cfg详解(红色为说明)
- 格式:pdf
- 大小:100.51 KB
- 文档页数:4
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 语法指的是 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⼀、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详解应樱家冢、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 的参数可以分为两个部分:配置文件和核心参数。
配置文件参数部分:
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是一个广泛被使用的引导加载程序,它被用来在计算机启动时选择操作系统或内核。
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引导程序的安装、配置及使用汇总(一)安装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的工作。
grub参数
GRUB (GRand Unified Bootloader)是一种常用的引导加载程序,用于在计算机启动时加载操作系统。
它可以通过配置文件(grub.cfg)来加载操作系统,并可以通过设置不同的参数来修改引导行为。
一些常用的GRUB参数包括:
1. root:指定根分区的设备文件路径。
例如,root=/dev/sda1
表示根分区在/dev/sda1上。
2. kernel:指定操作系统内核的路径和名称。
例如,kernel
/vmlinuz表示操作系统内核文件为/vmlinuz。
3. initrd:指定压缩的初始内存文件系统(initrd)的路径和
名称。
它通常在启动操作系统之前加载并用作临时根文件系统。
4. quiet:禁止内核启动过程中的所有冗长输出信息。
这可以确
保启动过程更加简洁。
5. splash:在启动时显示一个图形化的启动画面。
该参数通常
与quiet一起使用,以便在启动时隐藏冗长的文本输出。
6. single:启动单用户模式,以便以root权限登录系统。
7. mem:限制可用内存的数量。
例如,mem=2G表示限制系统可用的内存为2GB。
这只是一些常见的GRUB参数,还有其他更高级的参数可以根据
需要进行配置。
在配置GRUB参数之前,建议备份grub.cfg文件,以
防止配置错误导致系统无法启动。
grub2基础教程-修订版smallapple目录一、grub2新特性二、grub2安装与启动三、grub2配置文件详解四、脚本修改五、使用grub2常见错误及修复方法一、grub2新特性1、grub2和grub有很多不同的地方:a)图形接口b)使用了模块机制,通过动态加载需要的模块来扩展功能c)支持脚本语言,例如条件判断,循环、变量和函数d)支持rescue模式,可用于系统无法引导的情况e)国际化语言。
包括支持非ASCII的字符集和类似gettext的消息分类,字体,图形控制台等等f)有一个灵活的命令行接口。
如果没有配置文件存在,GRUB会自动进入命令模式g)针对文件系统、文件、设备、驱动、终端、命令、分区表、os loder的模块化、层次化、基于对象的框架h)支持多种文件系统格式i)可访问已经安装的设备上的数据j)支持自动解压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文件二、grub2安装与启动1、安装ubuntu9.10时,grub默认安装在第一硬盘(hd0)的mbr,其实就是把引导文件boot.img写入硬盘的mbr,当然,用户也可以选择不写入硬盘mbr而是写入linux分区的引导扇区。
启动时根据mbr所提供信息找到启动分区后,加载分区内的grub核心文件core.img和配置文件grub.cfg,进入选择菜单画面,在菜单画面,按上下箭号选择需要系统菜单项,按Enter进入选项。
按e进入己选择菜单的编辑状态,在编辑状态下,由上下左右箭号来移动光标,enter键换行,ctrl+x以编辑的内容启动,ctrl+c 进命令行状态,按Esc退出,回到菜单项。