关于Grub2启动菜单的注释问题(个人经验)

合集下载

GRUB启动命令详解

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最新全面学习资料

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 的cfg写法 -回复

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配置详解

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启动代码详解

GRUB2启动代码详解

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的值。

grub2修改启动菜单原理

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 //自定义菜单;**注意**,这里的每个文件前面都有数字组成;数字越小启动顺序就越靠前。

【IT专家】我的linux学习笔记(2)grub2 配置

【IT专家】我的linux学习笔记(2)grub2 配置

本文由我司收集整编,推荐下载,如有疑问,请与我司联系
我的linux 学习笔记(2)grub2 配置
2017/04/16 0 linux 默认是由grub2 引导启动的,win 的话我用过easyBCD,挺好用的。

但是双系统用两个引导开机很麻烦,就不用easyBCD 了
linux 的好处在于一切配置都是可以自定义的。

看到grub2 默认的黑白启动画面那
么难看,我就想到这个是不是也可以改一下呢
结果发现确实是可以的,而且能更改的不止启动画面。

1 grub
2 更改菜单顺序
sudo gedit /etc/default/grub #推荐用vi
GRUB_DEFAULT 改为2(第三个)
GRUB_TIMEOUT 改为5 秒
点保存,然后ctrl c
最后sudo update-grub2
重启
2 grub2 更改启动背景
安装图片包
apt-get installgrub2-splashimages
安装包在这儿
/usr/share/doc/grub2-splashimages
有个文件commons2tga.pl 很有意思,可以用网站的每日图片
但是是perl 写的,我不会。

我要学perl!
打开图片包的目地目录看到确实有10 张图
ls/usr/share/images/grub/
050817-N-3488C-028.tga Hortensia-1.tga
2006-02-15_Piping.tgaLake_mapourika_NZ.tga
Apollo_17_The_Last_Moon_Shot_Edit1.tga Moraine_Lake_17092005.tga。

GRUB2及启动过程详解

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启动详解

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

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的绝⼤部分内容,然后⾃⼰整理了⼀下。

因为内容有点杂,所以章节安排上可能不是太合理,敬请谅解。

本⽂主要介绍的是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默认不⽀持的操作系统时才会使⽤第⼆种⽅式。

grub命令以及启动详解

grub命令以及启动详解

Grub详解应樱家冢、Bluedata以及其他兄弟的要求,这里谈一谈自己在配置Grub当中积累的点滴,不存在什么高深的使用技巧——^_^,我自己也没有掌握,实际上就是我们常用的功能整理了一下。

如有错误和疑问,请大家指教!因为时间不够用,所以才这么迟的出来,希望两位兄弟谅解,同时感谢网络上曾经为了 Linux 的事业不停奋斗而无私贡献的人们——因为本文参考了他们的经验!1、一个GRUB配置文件2、解读grub.conf文件3、配置grub4、GRUB的交互性5、常见grub除错方法的思路1 一个GRUB配置文件基于本例的分区如下:hda 15Ghda1 8G / RED HAT 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 FAT32/dev/hdc2 895 2434 12370050 f Win95 Ext'd (LBA)/dev/hdc5 895 1787 7172991 b Win95 FAT32/dev/hdc6 1788 2434 5196996 b Win95 FAT32Disk /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: You 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: You 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控制的。

grub2使用和个性化修改

grub2使用和个性化修改

grub2使用和个性化修改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退出,回到菜单项。

GRUB2启动引导器–完全教程

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

启动完全教程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配置

双系统grub2配置
设置方法:在终端(Terminal)使中用这个命令sudo chmod +w /boot/grub/grub.cfg
然后就是打开它,输入命令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,就会失效。

ubuntu显示或者隐藏grub选择菜单

ubuntu显示或者隐藏grub选择菜单

ubuntu显示或者隐藏grub选择菜单在安装window后安装的ubuntu双系统,在启动时候都会固定先显示grub选择菜单,可以选择不同版本的ubuntu的kernel来启动但是对于单纯的ubuntu系统,在启动后却不会显示相应的菜单来让选择。

1.启动时候一直按住hift键以前的Ubuntu版本,启动grub的时候,有一个grubloading,preESCtogetthemenu的提示,所以按ESC就可以看到grub界面现在的Ubuntu没有了,现在的做法是,启动的时候按住hift键,就可以看到grub界面了。

(接下来就修改启动参数,加入ingle,然后按ctrl+某启动,就能看到一个ncure的界面,选择droptorootprompt,就可以得到一个root的terminal然后就可以重新设置root口令了)2.修改grub文件来完成1.udogedit/etc/default/grub修改如下:GRUB_HIDDEN_TIMEOUT=0#GRUB_HIDDEN_TIMEOUT_QUIET=trueGRUB_TIMEOUT=02.udoupdate-grub下面展开说明:首先修改/etc/default/grub.cfg文件,参考以下config文件注释掉GRUB_HIDDEN_TIMEOUT=0#Ifyouchangethifile,run'update-grub'afterwardtoupdate#/boot/grub/grub.cfg.#Forfulldocumentationoftheoptioninthifile,ee:#info-fgrub-n'Simpleconfiguration'GRUB_DEFAULT=0#GRUB_HIDDEN_TIMEOUT=0GRUB_HIDDEN_TIMEOUT_QUIET=trueGRUB_TIMEOUT=10GRUB_DISTRIBUTOR=`lb_releae-i-2>/dev/null||echoDebian`GRUB_CMDLINE_LINU某_DEFAULT="quietplah"GRUB_CMDLINE_LINU某=""#ThiworkwithLinu某(nopatchrequired)andwithanykernelthatobtain#thememorymapinformat ionfromGRUB(GNUMach,kernelofFreeBSD...)#GRUB_BADRAM="0某01234567,0某fefefefe,0某89abcdef,0某efefefef"#GRUB_TERMINAL=conole#Thereolutionuedongraphicalterminal#GRUB_GF某MODE=640某480#GRUB_DISABLE_RECOVERY="true"#GRUB_INIT_TUNE="4804401"然后执行"udoupdate-grub"。

GRUB启动引导器完全教程精编版

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,它测试了六年或者更多,您必须小心练习。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于Grub2启动菜单的注释问题(个人经验)特别说明:此文只是我个人经验,尚不知道是否会引起其他问题。

故,你若要使用此文之做法,请务必慎重考虑。

建议先在虚拟机测试。

用命令sudo gedit /boot/grub/grub.cfg即可打开grub.cfg文件,如下:其中,#号表示注释该段。

我这是在虚拟机下的ubuntu,grub.cfg文件跟你的可能不尽相同。

## 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 ]; thenload_envfiset default="0"if [ ${prev_saved_entry} ]; thenset saved_entry=${prev_saved_entry}save_env saved_entryset prev_saved_entry=save_env prev_saved_entryset boot_once=truefunction savedefault {if [ -z ${boot_once} ]; thensaved_entry=${chosen}save_env saved_entryfi}function recordfail {set recordfail=1if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi}insmod ext2set root='(hd1,2)'search --no-floppy --fs-uuid --set 44765bf4-8d6f-4d5a-8341-0d6d2f14e241if loadfont /usr/share/grub/unicode.pf2 ; thenset gfxmode=640x400insmod gfxterminsmod vbeif terminal_output gfxterm ; then true ; else# For backward compatibility with versions of terminal.mod that don'tterminal gfxtermfifiinsmod ext2set root='(hd1,3)'search --no-floppy --fs-uuid --set 1e11e041-360d-4c47-8d53-16bf0e379d60set locale_dir=($root)/grub/localeset lang=zhinsmod gettextif [ ${recordfail} = 1 ]; thenset timeout=-1elseset timeout=10fi### END /etc/grub.d/00_header ###### BEGIN /etc/grub.d/05_debian_theme ###insmod ext2set root='(hd1,2)'search --no-floppy --fs-uuid --set 44765bf4-8d6f-4d5a-8341-0d6d2f14e241 insmod pngif background_image /usr/share/images/desktop-base/moreblue-orbit-grub.png ; thenset color_normal=black/blackset color_highlight=magenta/blackelseset menu_color_normal=white/blackset menu_color_highlight=black/light-grayfi### END /etc/grub.d/05_debian_theme ###### BEGIN /etc/grub.d/10_linux ####这是ubuntu的启动项。

menuentry 'Ubuntu,Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {recordfailinsmod ext2set root='(hd1,3)'search --no-floppy --fs-uuid --set 1e11e041-360d-4c47-8d53-16bf0e379d60linux /vmlinuz-2.6.32-21-generic root=UUID=44765bf4-8d6f-4d5a-8341-0d6d2f14e241 ro quiet splashinitrd /initrd.img-2.6.32-21-generic}#这是“恢复模式”的启动项。

menuentry 'Ubuntu,Linux 2.6.32-21-generic (恢复模式)' --class ubuntu --class gnu-linux --class gnu --class os {recordfailinsmod ext2search --no-floppy --fs-uuid --set 1e11e041-360d-4c47-8d53-16bf0e379d60 echo '载入 Linux ...'linux /vmlinuz-2.6.32-21-generic root=UUID=44765bf4-8d6f-4d5a-8341-0d6d2f14e241 ro singleecho '载入引导虚拟磁盘 ...'initrd /initrd.img-2.6.32-21-generic}### END /etc/grub.d/10_linux ###### BEGIN /etc/grub.d/20_memtest86+ ####这是内存测试。

menuentry "Memory test (memtest86+)" {insmod ext2set root='(hd1,3)'search --no-floppy --fs-uuid --set 1e11e041-360d-4c47-8d53-16bf0e379d60 linux16 /memtest86+.bin}#内存测试的第二项。

menuentry "Memory test (memtest86+, serial console 115200)" {insmod ext2set root='(hd1,3)'search --no-floppy --fs-uuid --set 1e11e041-360d-4c47-8d53-16bf0e379d60 linux16 /memtest86+.bin console=ttyS0,115200n8}### END /etc/grub.d/20_memtest86+ ###### BEGIN /etc/grub.d/30_os-prober ####这是XP的启动项。

menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {insmod ntfsset root='(hd0,1)'search --no-floppy --fs-uuid --set 5ad4d998d4d9772bdrivemap -s (hd0) ${root}chainloader +1}#这是win7的启动项。

menuentry "Windows 7 (loader) (on /dev/sdc1)" {insmod ntfsset root='(hd2,1)'search --no-floppy --fs-uuid --set 52541f84541f69cdchainloader +1}### END /etc/grub.d/30_os-prober ###### BEGIN /etc/grub.d/40_custom #### This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above.### END /etc/grub.d/40_custom ###如果你不想要某个启动项,用#注释即可。

比如你不想要“内存测试的第二项”,注释如下:…...…...#(文件前段我就省略了,只取要说明问题的部分)…...16bf0e379d60linux16 /memtest86+.bin}#内存测试的第二项。

#menuentry "Memory test (memtest86+, serial console 115200)" {#insmod ext2#set root='(hd1,3)'#search --no-floppy --fs-uuid --set 1e11e041-360d-4c47-8d53-#16bf0e379d60#linux16 /memtest86+.bin console=ttyS0,115200n8#}### END /etc/grub.d/20_memtest86+ ###### BEGIN /etc/grub.d/30_os-prober ####这是XP的启动项。

menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {insmod ntfs…...#(文件后段也省略了)…...…...注释前:注释后:是不是被注释的那一项已经少了?如果你不想要其他启动项,注释方法类似。

相关文档
最新文档