GRUB2启动代码详解
GRUB启动命令详解
GRUB启动命令详解一、菜单命令菜单命令只能用于grub配置文件的全局配置部分,不能用在grub命令行交互界面,菜单命令在配置文件中应放在其它命令之前。
1、default //设置默认启动的菜单项2、fallback //设置启动某菜单项失败后反回的菜单项3、hiddenmenu //隐藏菜单界面4、timeout //设置菜单自动启动的延时时间5、title //开始一个菜单项二、常规命令常规命令可以应该于配置文件和grub命令行交互界面,可使用的常规命令有1、bootp //通过bootp初始化网络设备2、color //设置菜单界面的颜色3、device //指定设备文件作为驱动器4、dhcp //通过DHCP初始化网络设备5、hide //隐藏某分区6、ifconfig //手工配置网络设备7、pager //改变内部页程序的状态8、partnew //新建一个主分区9、parttype //改变分区的类型10、password 为菜单界面设置口令11、rarp //通过RARP初始化网络设置12、serial //设置串口设备13、setkey //设置键盘映射14、splashimage //设置GRUB启动时的背景图片文件15、termainal //选择终端类型16、tftpserver //指定TFTP服务器17、unhide //还原某隐藏分区三、命令行和菜单项命令命令行和菜单项命令可应该于GRUB配置文件的菜单项设置中,也可以用在GRUB命令交互界面。
1、bolcklist //显示某文件所在分区位置(block list notation)2、boot //启动操作系统3、cat //显示文件内容4、chainloader //把启动控制权软交给另外的启动引导器5、cmp //比较两个文件6、configfile //加载已存在的GRUB配置文件7、debug //设置为debug模式8、displayapm //显示APM BIOS信息9、displaymem //显示内存配置10、embed //嵌入Stage 1.5文件11、find //查找包括某文件的所有设备12、fstest //测试文件系统13、geometry //显示某驱动器的物理信息14、halt //停止计算机运行(软件关机)15、help //显示GRUB的命令帮助信息16、impsprobe //查询对称多处理器(SMP)的信息17、initrd //加载initrd文件18、install //安装GRUB19、ioprobe //查询某驱动器的输入输出(I/O)端口20、kernel //引导操作系统内核21、lock //锁定某GRUB导菜单项,使其输入密码后才可启动22、makeactive //激活某主分区23、map //虚拟映射某驱动器24、md5crypt //使用MD5加密口令25、module //加载模块26、modulenounzip //加载模块不进行解压27、pause //暂停并等待按键28、quit //退出GRUB29、reboot //重新启动计算机30、read //读取内存中的内容31、root //设置GRUB的root设备32、rootnoverify //设备GRUB的root设备但不装载文件系统33、savedefault //保存当前的启动菜单项为默认启动34、setup //自动安装GRUB35、testload //从文件系统中测试读取某文件36、testvbe //测试VESA BIOS EXTENSION37、uppermem //强制设置主机上位内存的大小38、vbeprobe //查询VESA BIOS EXTENSION信息GRUB 里的设备命名法则它使用了UNIX对设备的命名方法.比如我们拥有两块硬盘,那么采用这种形式(hdx,y), 这里,x,y,都是从0开始计数的.所以两块硬盘是 (hd0,y),(hd1,y). 他们位于第一个IDE接口上. 对 hd0 来说, 请看下图:(注, C: 为第一主分区, 其他分区是扩展分区.由于主分区只能有四个,即 0,1,2,3, 所以第一个扩展分区的编号从 4 开始.)这是硬盘,那么光驱哪? 对,采用 (cd) 就可以了. 网络设备使用 (nd). 我估计,以后支持usb以后,可以使用 (ud). ;-) 欢迎你的参与,我们的开发还在继续.ROOT的使用格式是:ROOT(HDX,Y)其中X从0---N,Y也是。
grub2 的cfg写法 -回复
grub2 的cfg写法-回复"grub2的cfg写法" - 一个详细解析引言:GRUB(GNU GRand Unified Bootloader)是一个用于多操作系统的引导程序,其最新版本是GRUB2。
GRUB2的配置文件负责定义操作系统启动选项,以及引导过程中各种设置。
在本篇文章中,我们将一步一步回答有关GRUB2配置文件(cfg)的各种问题,旨在帮助读者了解如何正确地编写和修改这些文件。
第一步:打开配置文件GRUB2的配置文件通常位于/boot/grub目录下,文件名为grub.cfg。
要打开此文件,您可以使用任何文本编辑器,例如vi或nano。
请注意,修改配置文件可能需要管理员权限,因此请确保您以root用户身份登录。
第二步:了解配置语法GRUB2的配置文件使用一种称为GRUB命令行语言的语法。
它由一系列命令和参数组成,并按照特定的规则和结构进行排列。
在编写GRUB2配置文件时,我们需要了解一些常用的命令和语法规则,例如菜单项的创建、内核或操作系统的引导、启动参数的设置等。
第三步:编辑菜单项GRUB2的配置文件中的每个菜单项代表一个操作系统或内核镜像。
要添加新菜单项,我们需要使用"menuentry"命令,并在双引号中指定菜单项的名称。
下面是一个示例菜单项的定义:menuentry 'Ubuntu 20.04 LTS' {set root='hd0,msdos1'linux /vmlinuz-5.4.0-26-generic root=/dev/sda1 roinitrd /initrd.img-5.4.0-26-generic}在上面的示例中,菜单项的名称为"Ubuntu 20.04 LTS"。
接下来,我们使用"set"命令将根分区设置为"hd0,msdos1"。
Grub2配置详解
Grub2配置详解一、grub.cfg详解(红色为说明)grub.cfg 默认为只读,要修改前先设为可写sudo chmod +w /boot/grub/grub.cfgset default=0#默认为0insmod jpeg#添加jpg支持,如要使用png或tga文件做背景,加上 insmod png或insmod tgainsmod 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.modthat don't# understand terminal_outputterminal gfxterm#设置 GRUB 2 终端为 gfxtermfifiset timeout=10background_image (hd0,7)/boot/images/1.jpg#设置背景图片### END /etc/grub.d/00_header ###### BEGIN /etc/grub.d/05_debian_theme ###set menu_color_normal=white/blackset menu_color_highlight=cyan/black#这两行为 Debian 下的菜单颜色设置,如果默认的话,你会发现背景完全被蓝色挡住了,你需要修改 blue 为 black,这样背景就会出现### END /etc/grub.d/05_debian_theme #### 10_linux 为自动添加的当前root分区linux引导项### BEGIN /etc/grub.d/10_linux ####菜单项,要包括 menuentry 双引号" " 和大括号 { }才完整,否则不显示菜单menuentry "Ubuntu, Linux 2.6.31-9-386" {insmod ext2set 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 ###### 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 fatset root=(hd0,1)search --no-floppy --fs-uuid --set ece067d2e067a196#可删除#grub2比较先进的地方就是如果发现windows启动是通过ntldr 引导的,定为2000/xp/2003,会在这加上drivemap -s (hd0) ${root} ,作用相当于grub的map,可正常启动非第一硬盘的xp/2003系统。
grub2修改启动菜单原理
windows linux 双系统grub2默认启动项的更改和早期grub的启动菜单不一样,以前只要修改/boot/grub/menu.lst就行了。
linux7中已经没有menu.lst文件了。
+++++++++++++++++++以下是重点理论知识++++++++++++++++++++++grub2由三个部分组成:/etc/default/grub文件、/etc/grub.d目录、/boot/grub/grub.cfg文件。
在开机启动时,linux系统是调用/boot/grub/grub.cfg 文件执行的。
但这个文件即使手动编辑后也是会被还原的,为什么呢?当我们或linux系统更新后,会自动执行update-grub更新启动菜单命令。
该命令会根据/etc/default/grub文件和/etc/grub.d/的所有配置文件重新生成/boot/grub/grub.cfg文件;也就是说update-grub命令执行后,/boot/grub/grub.cfg文件就被更新了。
+++++++++++++++++++++以上是理论知识+++++++++++++++++++++++++++++配置文件:/etc/default/grub文件//保存开机默认启动项、倒计时内容;GRUB_TIMEOUT=5 //超时时间GRUB_DEFAULT=saved //开机菜单默认项,可以使用0-nGRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="console" /启用 consoleGRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root rhgb quiet" //追加内核安全性;GRUB_DISABLE_RECOVERY="true" //禁止显示救援模式;/etc/grub.d/* //保存各个启动项;[root@tang ~]# ls /etc/grub.d/00_header 10_linux 30_os-prober README00_tuned 20_linux_xen 40_custom01_users 20_ppc_terminfo 41_custom其中,30_os-prober 是windows系统的启动项;其中,10_linux 是linux 系统的启动项;其中,/etc/grub.d/00_header //初始化默认选项,超时时间其中,/etc/grub.d/05_debian_theme //配置引导画面,主题颜色;其中,04_custom //自定义菜单;**注意**,这里的每个文件前面都有数字组成;数字越小启动顺序就越靠前。
grub.cfg
Ubuntu 9.10 grub2的启动配置文件grub.cfg[日期:2009-12-03] 来源:Ubuntu社区作者:smallapple hacklong1摘记的比较乱,自己做个笔记,大家略去。
(LinuxIDC)升级到Ubuntu 9.10后,就要接触grub2了,它和以前的版本有了很多的不同。
这里是一个基础教程。
一、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_env recordfail;fiset quiet=1insmod ext2set root=(hd0,6)search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro quiet splashinitrd /boot/initrd.img-2.6.31-14-generic}menuentry “Ubuntu, Linux 2.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-a09f8abe8059ro 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+, serial console 115200)” {linux16 /boot/memtest86+.bin console=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}if keystatus; thenif keystatus –shift; thenset timeout=-1elseset timeout=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; fiset quiet=1insmod ext2set root=(hd0,6)search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro quiet splashinitrd /boot/initrd.img-2.6.31-14-generic}menuentry “Ubuntu, Linux 2.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-generic root=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+, serial console 115200)” {linux16 /boot/memtest86+.bin console=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}if keystatus; thenif keystatus –shift; thenset timeout=-1elseset timeout=10fielseif sleep$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″。
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)。
第三步:添加更多的菜单条目和选项现在我们已经创建了一个基本的菜单条目,让我们继续添加更多的菜单条目和选项。
GRUB2及启动过程详解
GRUB2及启动过程详解作者: 南瓜剪子2016年7月28日1. 概述 (2)2. CentOS7中GRUB2 (2)3. GRUB2 的bootstrap image文件 (3)3.1. boot.img (3)3.2. diskboot.img (4)3.3. kernel.img (4)3.4. core.img (4)3.5. *.mod (4)4. 对比GRUB Legacy (5)4.1. stage1 (5)4.2. *_stage1_5 (5)4.3. stage2 (5)5. grub2-mkimage定制core.img (6)6. GRUB2安装 (7)6.1. Linux是怎么命名设备(/dev/sda) (7)6.2. MBR(Master Boot Record) (8)6.3. MBR分区表DPT(Disk Partition Table) (10)6.4. LBA and CHS (14)6.4.1. CHS(cylinders-heads-sectors) (14)6.4.2. LBA(Logical Block Address) (14)6.5. boot.img和core.img安装 (15)6.6. 硬盘总结 (18)7. 启动过程 (19)7.1. BIOS (19)7.2. GRUB2中boot.img (20)7.2.1. Step1无条件跳转 (20)7.2.2. Step2 初始化 (20)7.2.3. Step3 判断硬盘是否支持LBA还是只支持CHS (22)7.2.4. Step4 采用LBA加载core.img第一个扇区 (23)7.2.5. Step5 拷贝core.img第一个扇区到内存指定位置 (25)7.2.6. Step6 执行core.img第一条语句 (27)7.2.7. Step7 boot.img总结 (27)7.3. GRUB2中core.img (28)7.3.1. diskboot.img (28)7.3.2. GRUB2 core Startup (34)7.3.3. GRUB主函数即GRUB主要功能 (37)7.3.4. 加载Linux Kernel (38)7.4. Linux kernel (47)8. 结束语 (48)9. 参考文献 (48)1.概述计算机系统上电之后由固化到ROM中的BIOS(UEFI)进行操作,然后导入硬盘MBR中Boot Loader并调到其运行,由Boot Loader对操作系统内核进行加载,并将控制权交给操作系统.下图简单描述了CentOS7的启动过程(CentOS7使用GRUB2作为Boot Loader):现在的Boot Loader有很多类型,大致如下:1.对Linux来说GRUB2占据了统治地位2.对Windows来说Bootmgr/BCD占据了统治地位3.对Apple系统缺省的是BootX作为一名计算机工程师,了解Boot Loader的原理是很重要。
GRUB2启动详解
目前Grub1已经停止开发了,不再增加新的功能,所有的开发都转移到Grub2上了,Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能:1.模块化设计不同于Grub的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。
2.支持多体系结构Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI架构。
3.国际化的支持Grub 2 可以支持非英语的语言。
4.内存管理Grub 2 有真正的内存管理系统。
5.脚本语言Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。
当然,Grub 2正处在开发阶段,因此以上的某些功能可能现阶段还不是很完善。
如果你熟悉Grub2,应该可以看明白里面的内容。
要注意的是:a、timeout, default等参数用变量来储存b、菜单项由menuentry定义c、第1个分区是(hd0,1)而不是(hd0,0)理论的东西说多了大家估计也晕,举个简单的例子:在grub1中,要改变启动背景的时候只能选择支持640X480分辨率并且格式也只能是.xpm的图片,分辨率稍微大点的图就显示不出来了,但grub2不存在这个问题,它有更绚丽的菜单界面,grub2默认.png .tga .jpeg等很多种格式的图片都支持,而且支持的图片分辨率也更大。
GRUB2启动代码分析## DO NOT EDIT THIS FILE## It is automatically generated by /usr/sbin/grub-mkconfig using templates# from /etc/grub.d and settings from /etc/default/grub#### BEGIN /etc/grub.d/00_header ###if [ -s $prefix/grubenv ]; then#如果“prefix/grubenv”目录不为空load_env#从grubenv文件中加载环境变量fiset default="0"#启动第1项#if [ ${prev_saved_entry} ]; then #如果prev_saved_entry的值不为空set saved_entry=${prev_saved_entry} #将saved_entry的值设置成变量prev_saved_entry的值。
linux引导之grub2
linux引导之grub2先了解下什么是Bootloader以下是百度百科释意在嵌⼊式操作系统中,BootLoader是在内核运⾏之前运⾏。
可以初始化硬件设备、建⽴内存空间映射图,从⽽将系统的软硬件环境带到⼀个合适状态,以便为最终调⽤准备好正确的环境。
在中,通常并没有像BIOS那样的程序(注,有的嵌⼊式CPU也会内嵌⼀段短⼩的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。
在⼀个基于ARM7TDMI core的中,系统在上电或复位时通常都从地址0x00000000处开始执⾏,⽽在这个地址处安排的通常就是系统的BootLoader程序Bootloader不属于操作系统,⼀般采⽤汇编语⾔和C语⾔开发。
需要针对特定的硬件平台编写。
在移植过程时,⾸先为开发板移植Bootloader。
Bootloader不但依赖于CPU的体系架构,⽽且依赖于嵌⼊式系统板级设备的配置。
3.Bootloader的操作模式⾃启动模式:在这种模式下,Bootloader从⽬标机上的某个固态存储设备上将操作系统加载到RAM中运⾏,整个过程并没有⽤户的介⼊。
交互模式:在这种模式下,⽬标机上的Bootloader将通过串⼝或⽹络等通信⼿段从开发板上下载内核映射和根⽂件系统映像等待RAM中。
可以被Bootloader写到⽬标机上的固态存储媒介质中,或者直接进⼊系统的引导。
也可以通过串⼝接收⽤户的指令。
⼆、Bootloader的基本功能初始化相关硬件把Bootloader⾃搬移到内存中执⾏⽤户指令加载并执⾏内核⼀个嵌⼊式系统从软件的⾓度看通常可以分为三个层次: 1、引导加载程序。
包括固化在固件(firmware)中的Booter代码(可选),和Loader两⼤部分。
2、操作系统。
特定于嵌⼊式板⼦的定制内核以及内核的启动参数;以及在内核和应⽤程序之间可能还会包括⼀个嵌⼊式图形⽤户界⾯,常⽤的嵌⼊式GUI有:MicroWindows和MiniGUI等。
grub2详解
grub2详解分类: ,翻译了grub2的绝⼤部分内容,然后⾃⼰整理了⼀下。
因为内容有点杂,所以章节安排上可能不是太合理,敬请谅解。
本⽂主要介绍的是grub2,在⽂末对传统grub进⾏了简述,但在grub2的内容部分中包含了很多grub2和传统grub的对⽐。
如果仅仅是想知道grub2中的boot.img/core.img/diskboot.img/kernel.img或者传统grub中stage1/stage1_5/stage2⽂件的作⽤,请直接跳⾄阅读。
1.1 基础内容1.1.1 grub2和grub的区别只说明⼏个主要的:1.配置⽂件的名称改变了。
在grub中,配置⽂件为grub.conf或menu.lst(grub.conf的⼀个软链接),在grub2中改名为grub.cfg。
2.grub2增添了许多语法,更接近于脚本语⾔了,例如⽀持变量、条件判断、循环。
3.grub2中,设备分区名称从1开始,⽽在grub中是从0开始的。
4.grub2使⽤img⽂件,不再使⽤grub中的stage1、stage1.5和stage2。
5.⽀持图形界⾯配置grub,但要安装grub-customizer包,epel源提供该包。
6.在已进⼊操作系统环境下,不再提供grub命令,也就是不能进⼊grub交互式界⾯,只有在开机时才能进⼊,算是⼀⼤缺憾。
7.在grub2中没有了好⽤的find命令,算是另⼀⼤缺憾。
1.1.2 命名习惯和⽂件路径表⽰⽅式(fd0) :表⽰第⼀块软盘(hd0,msdos2) :表⽰第⼀块硬盘的第⼆个mbr分区。
grub2中分区从1开始编号,传统的grub是从0开始编号的(hd0,msdos5) :表⽰第⼀块硬盘的第⼀个逻辑分区(hd0,gpt1) :表⽰第⼀块硬盘的第⼀个gpt分区/boot/vmlinuz :相对路径,基于根⽬录,表⽰根⽬录下的boot⽬录下的vmlinuz,:如果设置了根⽬录变量root为(hd0,msdos1),则表⽰(hd0,msdos1)/boot/vmlinuz(hd0,msdos1)/boot/vmlinuz:绝对路径,表⽰第⼀硬盘第⼀分区的boot⽬录下的vmlinuz⽂件1.1.3 grub2引导操作系统的⽅式grub2⽀持两种⽅式引导操作系统:直接引导:(direct-load)直接通过默认的grub2 boot loader来引导写在默认配置⽂件中的操作系统链式引导:(chain-load)使⽤默认grub2 boot loader链式引导另⼀个boot loader,该boot loader将引导对应的操作系统⼀般只使⽤第⼀种⽅式,只有想引导grub默认不⽀持的操作系统时才会使⽤第⼆种⽅式。
grub2全面学习资料
Grub 2 使用简介Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能:1、模块化设计:不同于Grub的单一核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除2、支持多体系结构Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI 架构3、国际化的支持Grub 2 可以支持非英语的语言4、存管理Grub 2 有真正的存管理系统。
5、脚本语言Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。
当然,Grub 2正处在开发阶段,因此以上的某些功能可能现阶段还不是很完善。
安装和使用Grub 2的核是符合multiboot标准的,因此可以在Grub中引导。
1、下载/grub2.zip解压到某个FAT分区的根目录,会生成/boot/grub目录,Grub 2的文件便在该目录下。
2、修改/boot/grub/grub.cfg这是Grub 2的配置文件,它的格式不同于menu.lst,以下是一个例子:set timeout=20set default=0menuentry "Chainload First Part" {set root=(hd0,1)chainloader +1}menuentry "Load Linux at Second Part" {set root=(hd0,2)linux /vmlinuz root=/dev/hda2initrd /initrd}如果你熟悉Grub,应该可以看明白里面的容。
要注意的是:a、timeout, default等参数用变量来储存d、菜单项由menuentry定义c、第1个分区是(hd0,1)而不是(hd0,0)d、当前支持的启动方式是chainload,linux和multiboot3、在Grub中使用以下的命令进入Grub2root (hd0,0)kernel /boot/grub/core.imgboot(hd0,0)请用存放Grub2的分区的名字来代替4、进入Grub 2后,在菜单界面下输入c 便可进入控制界面。
GRUB2启动引导器–完全教程
GRUB2 启动引导器–完全教程GRUB2 启动引导器–完全教程本教程仅讨论GRUB版本2,流行的启动引导器的下一代。
如果您在寻找常规GRUB的教程,请查看这篇文章。
欢迎来到GRUB2启动引导器教程~你肯定已经读过我的关于GRUB legacy版本的指南。
在过去的两年半里面,它独自积累了五十万次阅读,在全世界的计算机使用者中相当流行和实用。
我希望利用我的GRUB2重新创造同样的成功。
目标为用户使用GRUB作为他们的启动引导器实现启动任何其钟情的类UNIX操作系统或者多重启动他们的计算机提供一个简单、实际、循序渐进、行之有效的教程,从而允许他们快速、简单、毫不不费力的控制他们的系统启动流程。
在这个教程里,您将学到如何使用GRUB2,添加和删除菜单,定制标题和启动选项,双重启动和三重启动操作系统,结合GRUB和GRUB2,我们甚至看一下Windows如何加入这个模式。
之后,我们将学习如何从错误中恢复。
目录目录警告GRUB2路标GRUB2介绍新布局Grub.cfg文件实例/etc/grub.d/目录示例/etc/default/grub示例基本用法GRUB2如何工作?添加新的GRUB脚本更新GRUB通过改变脚本名称中的数字改变脚本启动顺序替换默认条目操作系统探测器重装GRUB简短的总结现实多重启动情况双重启动:使用GRUB2启动两个操作系统双重启动:两个操作系统使用GRUB legacy和GRUB2的结合。
双启动Windows 7和Ubuntu把GRUB legacy升级到GRUB2附加的测试用例三重启动定制GRUB菜单编辑/etc/default/grub从菜单中去掉内存测试(memtest)如果您不想让GRUB菜单包含memtest项,可以将20_memtest86+这个脚本设置为不可执行,然后更新GRUB。
更改菜单行标题更改主题(启动背景图片)GRUB 2恢复(recovery) 从启动失败中恢复观察小问题内核损坏内核崩溃转储机制命令名称GRUB legacy对比GRUB 2GRUB legacyGRUB 2结论更多阅读(文档和链接)官方:其他有用的GRUB2资源结论更新警告警告~GRUB2还是测试软件。
启动完全教程GRUB2
启动完全教程GRUB2。
/etc/default/grub示例文件位于:/etc/default/目录下这个目录包含很多其他文件所以不要以为仅仅被GRUB使用。
grub文件是一个被00_header 脚本解析的文本文件。
您可以在这里更改如果您想改动的话。
我们稍侯在定制部分细谈。
现在我们知道了文件是什么样的,让我们看看怎么使用。
基本用法是将我们的理论知识转化为实际行动的时候了。
GRUB2如何工作?GRUB2这样工作:/etc/default/grub包含定制化;/etc/grub.d/脚本包含GRUB菜单信息和操作系统启动脚本。
当运行update-grub命令时,它读取grub文件的内容、执行grub.d中的脚本来创建grub.cfg 文件。
就是这样。
想要更改grub.cfg文件,您需要编辑grub文件或者grub.d下面的脚本。
脚本是被执行的,这意味这他们拥有执行权限,如果您取消了执行权限,他们将不会执行。
这意味着您可以在grub.d下放多个文件,您想放多少就放多少,像update-grub能读的shell 脚本那样长。
如果您想使用他们,就激活可执行权限(chmod +x),反之亦然,去掉可执行权限(chmod –x)。
让我们来看一下这些脚本:拿00_header和05_debian_theme作为示例:40_custom更有意义,但是它并没有告诉我们怎么定制脚本。
不要担心,我们会稍侯学习所有东西。
添加新的GRUB脚本添加一项新的启动选项,您必须遵循一些基本语法:创建一个新文件并且以数字和下划线作为文件名的前一部分。
如果您想把启动项放在其他选项的上边,使用一个稍小的数字,如果您想放在其他的后边,使用一个稍大的数字。
例如:11_something将被放在操作系统默认条目的后边,反之08_something将被放置在10_linux条目的上方。
下一步是写实际内容,下面是例子:#!/bin/sh -eecho "Some string"cat << EOFmenuentry "Something" {set root=(hdX,Y)-- boot parameters --}EOF让我们仔细看一下这个文件:#!/bin/sh –e 第一行是shell脚本的声明,必须放在第一行。
双系统grub2配置
然后就是打开它,输入命令sudo gedit /boot/grub/grub.cfg 。
然后在### END /etc/grub.d/05_debian_theme ###后加入以下代码保存。
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
2)配置grub启动分区为(hd0,1)
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda1)' {
insmod ntfs
set root=(hd0,1)
search –no-floppy –fs-uuid –set fe24211f2420dc81
1重新安装linux系统安装了centos8但是要配置grub2在?上搜寻了之后找到了下?的?法
双系统grub2配置
双系统grub2配置
1.今天在删除Ubantu的时候,漏了grub,结果开机的时候卡到grub上了。
2 解决方法:
1)重新安装Linux系统,安装了Centos8,但是要配置grub2,在网上搜寻ቤተ መጻሕፍቲ ባይዱ之后,找到了下面的方法。但是这个方法有个缺点,就是一旦重新配置grub,grub2-mkconfig -o /boot/grub2/grub.cfg,就会失效。
GRUB2启动和组成结构
GRUB2启动和组成结构1.1 GRUB2特⾊本⽂所⽤GRUB2版本为1.99,GRUB2是为了取代GRUB⽽完全重写的第⼆版,引⽤:GRUB 2, which is a rewrite of GRUB, is alive and under development. GRUB 2 aims at merging sources from PUPA in order to create the next generation of GNU GRUB. A mailing list and a wiki have been setup for discussing the development of GRUB 2.GRUB 2 has the following tasks:* Create a compact core image. This will make Stage 1.5 unnecessary.* Add support for dynamic loading to the core image, so that it can extend itself at the run time rather than at the build time.* Add real memory management, to make GNU GRUB more extensible.* Add a more object-oriented framework for file systems, files, devices, drives, terminals, commands, and OS loaders.* Add support for internationalization. This includes support for non-ASCII character code, message catalogs like gettext, fonts, graphics console, and so on.* Add an actual localization, based on the above internationalization support. We will target on Japanese as the first step.* Segregate code specific to i386-pc from generic code, to make GNU GRUB portable.* Add support for cross-platform installation.* Develop additional software packages which will help our project and hopefully other projects.GRUB2采⽤模块化动态加载的思想,相⽐GRUB来讲不⽤在构建时将所有功能都加⼊,这使得GRUB2的体积相⽐变得很⼩,整个GRUB2的内核映像可以控制在31KB以内(GRUB的映像在百KB级别),因此GRUB2完全可以移除GRUB中存在的stage 1.5阶段,⽽可以将整个映像放在GRUB中的stage1.5存放的位置。
grub2 的cfg写法 -回复
grub2 的cfg写法-回复"Grub2的cfg写法:一步一步解析"Grub2(GNU GRand Unified Bootloader 2)是一个功能强大的引导加载程序,它用于启动计算机上的操作系统。
Grub为Linux系统提供了灵活且可定制的引导环境。
Grub2的配置文件(grub.cfg)是控制引导程序行为的关键。
在本文中,我们将一步一步地回答如何编写Grub2的cfg 文件。
第一步:了解Grub2的配置文件结构Grub2的cfg配置文件是一个文本文件,它以命令的形式指示Grub2引导加载程序应该如何工作。
它由一系列的指令和设置组成,以定义启动菜单、操作系统条目和引导加载程序行为。
Grub2的cfg文件采用类似于shell脚本的语法。
第二步:定位Grub2的cfg文件Grub2的cfg文件通常存储在/boot/grub/目录下。
在大多数Linux发行版中,这个目录是默认的配置文件存放位置。
可以使用终端命令或文件管理器进行查找和定位。
第三步:编辑Grub2的cfg文件使用文本编辑器打开Grub2的cfg文件,例如使用命令`sudo nano/boot/grub/grub.cfg`。
在编辑cfg文件之前,请务必备份一份原始的cfg 文件,以防止不小心的修改导致系统无法启动。
第四步:添加启动菜单项Grub2的cfg文件通过添加菜单项,允许我们选择不同的操作系统或启动选项。
每个菜单项都由以下基本结构组成:menuentry '菜单项标题' {操作系统或启动选项的配置}在`菜单项标题`中,您可以指定显示在引导菜单上的名称。
在`操作系统或启动选项的配置`中,您将添加操作系统的引导设置。
第五步:添加操作系统引导配置在Grub2的cfg文件中,您可以指定不同操作系统的引导方式。
例如,对于Linux发行版,可以使用以下配置作为示例:menuentry 'Ubuntu' {set root=(hd0,gpt1) # 设置Ubuntu分区的位置linux /vmlinuz root=/dev/sda1 ro # 指定内核和根分区initrd /initrd.img # 指定初始化内存盘文件}在这个例子中,我们为Ubuntu添加了一个菜单项。
grub2 详解
按e进入己选择菜单的编辑状态,在编辑状态下,由上下左右箭号来移动光标,enter键换行,ctrl+x以编辑的内容启动,ctrl+c进命令行状态,按Esc退出,回到菜单项。
在需要使用额外的内核参数启动时,比如要加上acpi=off时,把光标移动到linux这一行最后,在splash后加上一空格再输入acpi=off,然后按ctrl+x启动。
按c进入命令行状态,按Tab键可查看所有可用的命令。
在命令行状态,可以根据需要加载或移除相应模块,也可用来启动在菜单没有显现的的系统。
比如,在第一硬盘的第一分区上装有windows xp系统,但在菜单上没显示出来,我们可以命令行状态下输入命令启动:grub>set root=(hd0,1)grub>chainloader +1grub>boot又比如启动第二硬盘第一逻辑分区上的ubuntu系统:grub>set root=(hd1,5)grub>linux /boot/vmlinuz-xxx-xxx root=/dev/sdb5grub>initrd /boot/initrd.img-xxx-xxxgrub>boot其中内核vmlinuz和initrd.img的版本号可用按Tab键自动查看。
2、下面介绍下在grub2中一些常用的命令1)help查看命令用法,如help search:查看search命令详细用法2)set设置变量值,如set default=0set timeout=5set root=(hd0,3)等等需要调用变量AA的值时,使用${AA},如set root=(hd1,1),则${root}=(hd1,1)3)default定义默认引导的操作系统。
0表示第一个操作系统,1表示第2个,依此类推4)timeout定义在时间内用户没有按下键盘上的某个按键,自动引导default指定的操作系统。
5)root指定用于启动系统的分区。
GRUB启动引导器完全教程精编版
G R U B启动引导器完全教程文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)G R U B2启动引导器–完全教程本教程仅讨论GRUB版本2,流行的启动引导器的下一代。
如果您在寻找常规GRUB的教程,请查看文章。
欢迎来到GRUB2启动引导器教程!你肯定已经读过我的关于GRUBlegacy版本的指南。
在过去的两年半里面,它独自积累了五十万次阅读,在全世界的计算机使用者中相当流行和实用。
我希望利用我的GRUB2重新创造同样的成功。
目标为用户使用GRUB作为他们的启动引导器实现启动任何其钟情的类UNIX操作系统或者多重启动他们的计算机提供一个简单、实际、循序渐进、行之有效的教程,从而允许他们快速、简单、毫不不费力的控制他们的系统启动流程。
在这个教程里,您将学到如何使用GRUB2,添加和删除菜单,定制标题和启动选项,双重启动和三重启动操作系统,结合GRUB和GRUB2,我们甚至看一下Windows 如何加入这个模式。
之后,我们将学习如何从错误中恢复。
目录1.2.3.4.5.6.7.8.9.10.11.12.13.14.警告警告!GRUB2还是测试软件。
尽管它已经获得Ubuntu的青睐,本身没有质量问题。
您可以没有问题的使用,虽然可能存在损害,但那离您是非常遥远的,即使真的发生,损害也只是轻微的一点点。
您需要认识到这些。
另外,任何处理危险的任务比如执行系统本身的危险命令,磁盘分区,启动序列,镜像,等等的时候,您应该时刻准备着最坏的情况。
这意味着:对您的数据来考虑您必须有一个可靠的备份过程。
您必须拥有从灾难中迅速恢复的知识和工具。
这包括可以恢复系统的前一个镜像,修复损毁。
配置,恢复启动引导器,还有更多。
您必须对您所做的有信心。
现在您知道了这些,让我们高兴并且安全的开始。
那么一定要铭记,GRUB2还是测试版。
尽管同样我们可以想到GoogleMail,它测试了六年或者更多,您必须小心练习。
grub2 的cfg写法 -回复
grub2 的cfg写法-回复主题:Grub2的cfg写法引言:在计算机中,引导加载程序(boot loader)是一个非常重要的组件,它负责加载操作系统,并将控制权交给操作系统内核。
Grub2(GNU GRand Unified Bootloader)是一个开源的引导加载程序,被广泛用于许多操作系统,包括最流行的Linux发行版。
Grub2的配置文件(grub.cfg)是用来指定启动选项和设置引导的参数。
本文将一步一步介绍Grub2的cfg 写法。
1. 查看现有的配置文件在开始之前,我们需要先了解到底Grub2的cfg 配置文件长什么样。
首先,我们需要找到此文件的位置。
通常情况下,该文件位于/boot/grub 或/boot/grub2 目录下。
我们可以使用以下命令来查看:ls /boot/grubls /boot/grub22. 编辑配置文件一旦我们找到了配置文件,我们可以使用任何文本编辑器对其进行编辑。
为了避免权限问题,我们可以使用以下命令以超级用户权限编辑:sudo nano /boot/grub/grub.cfg3. 配置菜单条目Grub2的cfg 配置文件主要是由菜单条目组成的。
每个菜单条目代表一个启动项,可以是不同的操作系统或不同的内核。
菜单条目的基本结构如下:menuentry '操作系统名称' {set root=(hdX,Y)linux /boot/vmlinuz-X.X.X-X-generic root=/dev/sdaXinitrd /boot/initrd.img-X.X.X-X-generic}其中,'操作系统名称' 是你想显示在启动菜单上的名称,(hdX,Y) 表示启动分区的位置,/boot/vmlinuz-X.X.X-X-generic 是内核文件的路径,root=/dev/sdaX 是指定根分区的位置,/boot/initrd.img-X.X.X-X-generic 是用于加载初始内存盘(initrd)的文件路径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GRUB2的介绍目前Grub1已经停止开发了,不再增加新的功能,所有的开发都转移到Grub2上了,Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能:1.模块化设计不同于Grub的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。
2.支持多体系结构Grub 2可支持PC(i386), MAC(powerpc)等不同的体系结构,而且支持最新的EFI架构。
3.国际化的支持Grub 2 可以支持非英语的语言。
4.内存管理Grub 2 有真正的内存管理系统。
5.脚本语言Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。
当然,Grub 2正处在开发阶段,因此以上的某些功能可能现阶段还不是很完善。
如果你熟悉Grub2,应该可以看明白里面的内容。
要注意的是:a、timeout, default等参数用变量来储存b、菜单项由menuentry定义c、第1个分区是(hd0,1)而不是(hd0,0)理论的东西说多了大家估计也晕,举个简单的例子:在grub1中,要改变启动背景的时候只能选择支持640X480分辨率并且格式也只能是.xpm的图片,分辨率稍微大点的图就显示不出来了,但grub2不存在这个问题,它有更绚丽的菜单界面,grub2默认.png .tga .jpeg等很多种格式的图片都支持,而且支持的图片分辨率也更大。
GRUB2启动代码分析## DO NOT EDIT THIS FILE## It is automatically generated by /usr/sbin/grub-mkconfig using templates# from /etc/grub.d and settings from /etc/default/grub#### BEGIN /etc/grub.d/00_header ###if [ -s $prefix/grubenv ]; then#如果“$prefix/grubenv”目录不为空load_env#从grubenv文件中加载环境变量fiset default="0"#启动第1项#if [ ${prev_saved_entry} ]; then #如果prev_saved_entry的值不为空set saved_entry=${prev_saved_entry}#将saved_entry的值设置成变量prev_saved_entry的值。
save_env saved_entry#将变量saved_entry保存到grubenv文件中。
set prev_saved_entry=#将prev_saved_entry的值设置为空save_env prev_saved_entry#将prev_saved_entry保存到grubenv文件中set boot_once=true#将boot_once的值设置为真(貌似是为了标志已经设置过启动的相关环境变量了)fifunction savedefault {if [ -z ${boot_once} ]; then#如果已经设置过相关环境变量saved_entry=${chosen}#用变量chosen的值给saved_entry赋值。
save_env saved_entry#将saved_entry保存到grubenv文件中fi}function recordfail { #存在启动失败记录时调用,设置变量recordfail。
set recordfail=1if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi#如果grubenv文件存在,并已设置过相关变量,就将变量recordfail保存到grubenv文件。
}insmod ext2#插入ext2文件系统支持的模块set root='(hd0,9)'#指定系统root分区,也就是/ 分区为第1个磁盘的第9个分区search --no-floppy --fs-uuid --set d9985e84-7b54-4e5d-8ce9-c25cf88330aa#指定uuid= d9985e84-7b54-4e5d-8ce9-c25cf88330aa的分区为root分区,如果前面的分区# 号(hd0,9)的uuid与这里的uuid一致,这两句作用一样,如果不一致,则指定uuid的起# 作用。
if loadfont /usr/share/grub/unicode.pf2 ; then#设置终端字体,unicode.pf2支持中文字符显示set gfxmode=640x480#设置显示分辨率,默认为640×480insmod gfxterm#插入终端模块gfxterm,支持中文字符显示和支持24位图像。
insmod vbe#插入vbe模块,GRUB2引入模块化机制,要使用它,需要在这里加入。
if terminal_output gfxterm ; then true ; else#检测grub2是否将终端设设定为gfxterm# For backward compatibility with versions of terminal.mod that don't# understand terminal_outputterminal gfxterm#设定grub2终端为gfxtermfifiinsmod ext2#插入ext2文件系统支持的模块set root='(hd0,9)'#指定系统root分区,也就是/ 分区为第1个磁盘的第9个分区search --no-floppy --fs-uuid --set d9985e84-7b54-4e5d-8ce9-c25cf88330aa#指定uuid= d9985e84-7b54-4e5d-8ce9-c25cf88330aa的分区为root分区,如果前面的分区# 号(hd0,9)的uuid与这里的uuid一致,这两句作用一样,如果不一致,则指定uuid的起# 作用。
set locale_dir=($root)/boot/grub/localeset lang=zhinsmod gettextif [ ${recordfail} = 1 ]; thenset timeout=-1 #若有启动失败的记录,则不再倒计时。
elseset timeout=10 #如果停留在grub选择系统界面,停顿时间就设置成10秒,十秒后按默认启动项#启动。
fi### END /etc/grub.d/00_header ###### BEGIN /etc/grub.d/05_debian_theme###设置菜单颜色和背景颜色set menu_color_normal=white/black#设定菜单字体及背景颜色set menu_color_highlight=black/light-gray#设定选择项字体及背景颜色### END /etc/grub.d/05_debian_theme ###### BEGIN /etc/grub.d/10_linux ####10_linux为系统自动添加的当前root分区linux引导项#菜单项,要包括menuentry 双引号" " 和大括号{ }才完整,否则不显示菜单menuentry ''Ubuntu,Linux 2.6.32-30-generic'' --class ubuntu --class gnu-linux --class gnu --class os {recordfail#执行recordfail 函数insmod ext2#插入ext2文件系统支持的模块set root='(hd0,9)'#指定系统root分区,也就是/ 分区为第1个磁盘的第9个分区search --no-floppy --fs-uuid --set d9985e84-7b54-4e5d-8ce9-c25cf88330aa#这句与set root=(hd0,9)效果一样,可删除其一,二者不一致以这句为准linux /boot/vmlinuz-2.6.32-30-generic root=UUID=d9985e84-7b54-4e5d-8ce9-c25cf88330aa ro quiet splash#加载内核# ro:可读写,当启动分区是JFS等格式时需要使用此参数使得系统可以在启动是存放日志。
#quiet:安静模式,不显示启动详细信息。
#splash:显示徽标。
initrd /boot/initrd.img-2.6.32-30-generic#初始RAM磁盘,在系统引导过程中挂载的一个临时根文件系统。
}menuentry ''Ubuntu,Linux 2.6.32-30-generic (恢复模式)'' --class ubuntu --class gnu-linux --class gnu --class os {#linux的恢复模式,与linux的启动项基本一样。
recordfail#执行recordfail 函数insmod ext2set root='(hd0,9)'search --no-floppy --fs-uuid --set d9985e84-7b54-4e5d-8ce9-c25cf88330aaecho '载入Linux ...'linux /boot/vmlinuz-2.6.32-30-generic root=UUID=d9985e84-7b54-4e5d-8ce9-c25cf88330aa ro single#加载内核貌似这个single参数就是指定的修复模式echo '载入引导虚拟磁盘。
'initrd /boot/initrd.img-2.6.32-30-generic#初始RAM磁盘,在系统引导过程中挂载的一个临时根文件系统。
}### END /etc/grub.d/10_linux ####20_memtest86+为系统自动添加的内存测试菜单项menuentry "Memory test (memtest86+)" {insmod ext2set root='(hd0,9)'search --no-floppy --fs-uuid --set=root f8656ad4-390d-4a72-832a-1f4b313ac793linux16 /boot/memtest86+.bin}menuentry "Memory test (memtest86+, serial console 115200)" {insmod ext2set root='(hd0,9)'search --no-floppy --fs-uuid --set=root f8656ad4-390d-4a72-832a-1f4b313ac793linux16 /boot/memtest86+.bin console=ttyS0,115200n8}### END /etc/grub.d/20_memtest86+ ###### BEGIN /etc/grub.d/30_os-prober #### 30_os-prober或30_others为系统自动查找并添加其他系统菜单项,按windows、# linux、macos顺序查找并添加,支持windows 7识别。