grub2最新全面学习资料
最新Grub2全面教程

在命令行状态,可以根据需要加载或移除相应模块,也可用来启动在菜单没有显现的的系统。 比如,在第一硬盘的第一分区上装有 windows xp 系统,但在菜单上没显示出来,我们可以命令行状态下 输入命令启动:
grub>set root=(hd0,1) grub>chainloader +1 grub>boot 又比如启动第二硬盘第一逻辑分区上的 ubuntu 系统: grub>set root=(hd1,5) grub>linux /boot/vmlinuz-xxx-xxx root=/dev/sdb5 grub>initrd /boot/initrd.img-xxx-xxx grub>boot 其中内核 vmlinuz 和 initrd.img 的版本号可用按 Tab 键自动查看。 2、下面介绍下在 grub2 中一些常用的命令 1)help 查看命令用法,如 help search:查看 search 命令详细用法 2)set 设置变量值,如
10)loopback loopback 命令可用于建立回放设备,如 loopback lo0 (hd1,1)/abc.iso 可以使用 lo0 设备来访问 abc.iso 里的内容,比如说,可以从 abc.iso 里的软盘映像中启动 loopback lo0 (hd1,1)/aa.iso linux (lo0)/memdisk initrd (lo0)/abc.img 要删除某一回放设备,可以使用-d 参数: loopback -d lo0
11)pager 分页显示。 set pager=1
显示满一页时暂停,按 space 继续 set pager=0 取消分页显示 12)linux 用 linux 命令取代 grub 中的 kernel 命令 13)chainloader 调用另一个启动器,如 chainloader (hd0,1)+1 调用第一硬盘第一分区引导扇区内的启动器,可以是 windows 或 linux 的启动器
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启动引导器完全教程

在这个教程里,您将学到如何使用三重启动操作系统,结合∙三重启动8.定制GRUB菜单∙编辑 /etc/default/grub∙从菜单中去掉内存测试(memtest)∙如果您不想让GRUB菜单包含memtest项,可以将20_memtest86+这个脚本设置为不可执行,然后更新GRUB。
∙更改菜单行标题∙更改主题 (启动背景图片)9.GRUB 2 恢复(recovery)∙从启动失败中恢复10.观察小问题∙内核损坏∙内核崩溃转储机制∙命令名称11.GRUB legacy对比GRUB 2∙GRUB legacy∙GRUB 2∙结论12.更多阅读 (文档和链接)∙官方:∙其他有用的GRUB2资源13.结论14.更新警告警告!GRUB2还是测试软件。
尽管它已经获得Ubuntu的青睐,本身没有质量问题。
您可以没有问题的使用,虽然可能存在损害,但那离您是非常遥远的,即使真的发生,损害也只是轻微的一点点。
您需要认识到这些。
另外,任何处理危险的任务比如执行系统本身的危险命令,磁盘分区,启动序列,镜像,等等的时候,您应该时刻准备着最坏的情况。
这意味着:∙对您的数据来考虑您必须有一个可靠的备份过程。
∙您必须拥有从灾难中迅速恢复的知识和工具。
∙这包括可以恢复系统的前一个镜像,修复损毁。
∙配置,恢复启动引导器,还有更多。
∙您必须对您所做的有信心。
现在您知道了这些,让我们高兴并且安全的开始。
那么一定要铭记,GRUB2还是测试版。
尽管同样我们可以想到Google Mail,它测试了六年或者更多,您必须小心练习。
更重要的是,这篇指南的内容和内容相关可能会随着GRUB2被做成产品而改变,所以请持续关注更新。
GRUB2路标这是您使用GRUB2之前需要考虑的。
什么时候GRUB2会成为类UNIX操作系统的实际启动引导器?目前,GRUB legacy版本工作的很好并且还将持续很多年。
像RedHat和Novell这样的公司为了服务器发行版会提供长期的技术支持,GRUB legacy还是作为重要参与者存在五到十年。
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[原创]退出 [ xfdr ]条新短信FAQ搜索用户控制面板查看没有回复的主题 | 查看活跃的主题查看新帖 | 查看您的主题 | 查看您的帖子 | 查看书签论坛首页 » 系统安装区 » 启动和引导当前时区为 UTC + 8 小时通过ssh 传输文件 : scp -rp /path/filename username@remoteIP:/path分页: 1 / 4 [ 49 篇帖子 ]前往页数 1, 2, 3, 4 下一页订阅主题 | 收藏主题 | 打印预览 | Email 给朋友上一个主题 | 第一个未读帖子 | 下一个主题作者内容1 楼 Crazier文章标题 : 详细图解美化Grub2[原创]发表于 : 2010-02-17 5:28注册: 2007-09-23 17:06 帖子:371Grub2做为新一代的多系统引导器,之所以代替旧的Grub ,一方面是因为旧Grub 设计上的失败及其代码的凌乱不可维护,另一方面也是因为需要更多的功能( 见/software/grub/grub-2-faq.en.html )。
Grub2较之Grub 的新功能有 1、模块化设计不同于Grub 的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。
2、支持多体系结构Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI 架构。
3、国际化的支持BlogPasteUbuntuWiki Linux Forum 搜索Grub 2 可以支持非英语的语言。
4、内存管理Grub 2 有真正的内存管理系统。
5、脚本语言Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。
6,绚丽的菜单界面旧的Grub已经停止开发,而Grub2还在开发过程中,所以Grub2有些功能还没有实现。
但是我们已经可能用Grub2中较稳定的版本了,而Ubuntu9.04/9.10都已包含了Grub2.而本篇重点介绍Grub2的美化,和Grub相比较,在美化上Grub2支持更多的图片格式:PNG,TGA (默认支持,Jpeg 格式的也支持,但是稍微麻烦一点,旧的GRUB 中支持的xpm格式的不再支持);再就是支持更大的分辨率(800x600),(1024x768)原版本似乎只支持640x480,这样你就可以方便的自定义自己的splahimage了(用高分辨率的图片来做splash image);还有就是配置文件也不是原来的menu.lst,而是引用:/boot/grub/grub.cfg和/etc/grub.d/05_debian_theme一:简单的改变Grub2的字体颜色和背景在你进入系统之前会有一个黑底白字的Grub菜单界面,面,让你选择进入系统,这里的黑底白字可以改变的,具体如下:这里涉及到的文件是/etc/grub.d/05_debian_theme在打开之前建议先保存,以免出错,引用:sudo /etc/grub.d/05_de/etc/grub.d/05_debian_themebian_theme_backup打开/etc/grub.d/05_debian_theme引用:sudo gedit /etc/grub.d/05_debian_theme可以在33到43行之间看到引用:set color_normal=black/blackset color_highlight=magenta/blackset menu_color_normal=cyan/blueset menu_color_highlight=white/blue这么几句,它们就是改变字体颜色的关键,foreground/background是修改字体它们的意思color_normal=foreground(前景色)/background(背景色)即“/”之前的表示前景色,之后的表示背景色。
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及启动过程详解作者: 南瓜剪子2016年7月28日1. 概述 (2)2. CentOS7中GRUB2 (3)3。
GRUB2 的bootstrap image文件 (5)3.1。
boot。
img (5)3。
2。
diskboot。
img (5)3.3. kernel。
img (6)3.4。
core。
img (6)3。
5. *.mod (6)4. 对比GRUB Legacy (7)4.1. stage1 (7)4。
2. *_stage1_5 (7)4.3。
stage2 (7)5。
grub2-mkimage定制core.img (8)6。
GRUB2安装 (10)6。
1. Linux是怎么命名设备(/dev/sda) (10)6.2. MBR(Master Boot Record) (11)6。
3。
MBR分区表DPT(Disk Partition Table) (14)6.4。
LBA and CHS (22)6.4。
1. CHS(cylinders—heads—sectors) (22)6.4。
2。
LBA(Logical Block Address) (23)6。
5。
boot。
img和core.img安装 (23)6.6。
硬盘总结 (28)7. 启动过程 (29)7。
1. BIOS (29)7.2。
GRUB2中boot.img (31)7.2。
1。
Step1无条件跳转 (32)7。
2。
2. Step2 初始化 (32)7。
2.3. Step3 判断硬盘是否支持LBA还是只支持CHS (34)7。
2.4。
Step4 采用LBA加载core.img第一个扇区 (37)7。
2.5. Step5 拷贝core.img第一个扇区到内存指定位置 (40)7。
2。
6。
Step6 执行core。
img第一条语句 (42)7。
2。
7。
Step7 boot。
img总结 (43)7。
3。
GRUB2中core。
img (44)7.3.1。
grub2交叉编译

grub2交叉编译Grub2是一款常用的引导加载程序,它在计算机启动过程中起着重要的作用。
本文将从人类视角出发,为你介绍Grub2的交叉编译过程。
Grub2交叉编译是指在一个平台上为另一个平台生成可执行代码的过程。
这种方式常用于嵌入式系统开发中,因为嵌入式系统通常需要在不同的硬件平台上运行。
通过交叉编译,我们可以在一台主机上编译生成适用于目标平台的可执行文件。
我们需要准备好交叉编译所需的工具链。
这包括交叉编译器、头文件和库文件等。
这些工具链可以从官方网站上下载并安装。
在安装完成后,我们就可以开始进行交叉编译了。
接下来,我们需要获取Grub2的源代码。
你可以从官方网站下载最新版本的源码包,然后解压到你的工作目录中。
在解压完成后,我们可以进入Grub2的源码目录,开始配置和编译。
我们需要运行configure脚本来配置编译选项。
在配置过程中,我们可以指定目标平台的体系结构、交叉编译器的路径等参数。
完成配置后,我们可以继续执行make命令进行编译。
在编译过程中,Grub2将会被编译成可执行文件和相关的库文件。
编译完成后,我们可以将生成的可执行文件复制到目标平台上进行测试。
在交叉编译过程中,我们需要注意一些与目标平台相关的特殊要求。
例如,目标平台可能需要特定的编译选项或库文件版本。
我们需要根据目标平台的要求进行相应的配置和调整。
除了交叉编译,Grub2还有许多其他功能和特性。
例如,它支持多种文件系统、多重引导和密码保护等功能。
通过Grub2,我们可以方便地管理和启动不同的操作系统。
总结一下,Grub2交叉编译是为了在一个平台上生成适用于另一个平台的可执行代码。
通过配置和编译,我们可以将Grub2编译成适用于目标平台的可执行文件,并在目标平台上进行测试和使用。
希望本文能帮助你了解Grub2交叉编译的过程,并为你的嵌入式系统开发提供一些参考。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 便可进入控制界面。
基本命令:lsmod列表当前转载的模块insmod mod_name装载模块rmmod mod_name卸除模块help [command]显示帮助ls [options] [dir]列表目录。
当不带参数时,显示的是所有的硬盘设备,带参数时,显示的是目录里的子目录和文件.还有很多其它的命令,全部命令的列表在/boot/grub/command.lst里:boot cat chainloader cmp . configfile export font halt hello help initrd lsmod linux loopback ls lsmod module multiboot play reboot rescue rmmod search set source terminal terminfo [ unset vbeinfo vbetest videotest可以用help来看具体的用法注意:a、很大一部分命令都在模块里,如果输入时显示找不到命令,只需要用insmod装载相应的模块就可以了。
b、你可以定制内核,使所需的命令包在其中。
从代码中编译:1、用cvs取得源代码cvs -z3 -d:pserver:anonymous@:/sources/grub co grub2 2、当前的Grub2代码中有一个bug,使得启动后不会显示grub.cfg中的菜单,我写了一个补丁,在:/grub2-menu.diff要使用该补丁,请进入grub2的目录,然后:patch -p1 < grub2-menu.diff这里假设grub2-menu.diff放在grub2目录下3、./configure然后./make4、定制内核./grub-mkimage -d . -v -o core.img fat pccore.img是内核的名字,fat和pc是加入内核的模块。
常用模块有:fat: 支持 fat 文件系统ext2: 支持 ext2 文件系统pc: 支持主分区和扩展分区help: help命令ls: ls命令除了当前分区的文件系统的模块外,其它的都可以用insmod在进入grub2后才转载5、把core.img, boot.img, diskboot.img, *.mod, fs.lst, command.lst抄到某一分区的 /boot/grub目录下,然后编写配置文件grub.cfg在grub2/syslinux里引导grub4dos和ntldr在grub2里引导ntldr/grldrlinux loadbin.bininitrd ntldr在syslinux里引导ntldr/grldr:label ntldrkernel loadbin.binappend initrd=ntldrloadbin.bin和lnxhdr.bin使用相同的源代码,但编译时需要加上参数-DLOADBIN:gcc -nostdlib -DLOADBIN -Wl,-N -o loadbin lnxhdr.Sobjcopy -O binary loadbin loadbin.binGRUB2高级教程这个教程介绍GRUB2中的一些高级功能。
1、编译和安装首先,使用cvs下载代码:cvs -z3 -d:pserver:anonymous@:/sources/grub co grub2下载完成后进入工作目录grub2。
然后,可以有选择地打上补丁。
比如说,要加上ntfs支持的话,可以运行:patch -p0 < grub2-ntfs-u2.diff补丁后运行以下的命令进行编译:./configuremake然后,利用grub-mkimage定制内核,例如:./grub-mkimage -d . -o core.img pc fat ntfs如果要转换为grldr.mbr可引导的形式,运行:cat g2ldr.bin core.img > g2ldr注意;grub-mkimage有一个参数--prefix,用来指定启动时grub.cfg和模块文件所在的目录,比如:./grub-mkimage --prefix=/grub2 -d . -o core.img pc fat ntfs这样在启动时会到/grub2目录里寻找grub.cfg和模块文件。
缺省目录是/boot/grub/。
在安装时,把core.img或g2ldr拷贝到某一分区FAT/NTFS的根目录,把moddep.lst, commands.lst, fs.lst和*.mod文件拷贝到分区的/boot/grub/目录里。
g2ldr可以在NT的启动管理器里引导。
首先,利用grubinst生成g2ldr.mbr。
grubinst -2 > C:\g2ldr.mbr然后,在boot.ini里增加一项:C:\g2ldr.mbr="Start GRUB2"也可以安装到MBR里:grub -2 (hd0)这样,下次启动时会引导g2ldr而不是grldr.你也可以在grub4dos里引导grub2,这时使用的是core.img:kernel (hd0,0)/core.imgboot2、预编译版本如果觉得自己编译麻烦,可以使用预编译版本,网址是:/grub2/里面的grub2-*.zip文件就是了。
该版本打上了所有的补丁(*.diff文件),并且使用了以下的参数配置内核。
./grub-mkimage -d . -o core.img pc fat ntfs补丁说明:grub2-ntfs-u2.diffNTFS文件系统代码的补丁grub2-parser-u2.diff修正了脚本代码的很多bug,建议使用grub2-parser-u2-1.diff在grub2-parser-u2.diff基础上的递增补丁,修正了\转义字符的一个小bug3. 配置文件grub2中的配置文件是grub.cfg,它的语法与GRUB Legacy中不太一样。
以下是一个例子:set timeout=10set default=0menuentry "Boot First Partition" {set root=(hd0,1)chainloader +1}menuentry "Boot Memdisk" {linux (hd0,1)/memdiskinitrd (hd0,1)/aa.img}注意:grub2中的分区是从(hd0,1)开始的。
3. 变量grub2中引入了变量的概念,使用set可以设置变量的值,例如:set AA=1需要调用变量的值时,使用$AA或${AA}。
例如:BB的值被设为1。
要注意的是,原来版本的变量赋值有问题,需要使用grub2-parser-u2.diff补丁。
grub2的一些功能是利用变量来实现的,例如:timeout缺省的等待时间,相当于grub中的timeout命令。
default缺省的菜单项,相当于grub中的timeout命令。
pagerpager为1时,输出满一个屏幕时会暂停一下,相当于grub中的pager命令。
root设置根设备。
相当于grub中的root命令。
?这个变量的值是对上一条命令的执行结果。
prefix模块文件和grub.cfg所在的目录。
debug这个变量用于调试。
部分grub2的代码使用了调试输出,它们在一般情况下是不会显示的,但如果把debug设置为相应的值后,调试信息就会显示。
比如说,脚本部分使用了scripting 关键字。
当debug中包含scripting时,脚本调试信息就会显现。
set debug=scripting4. 命令介绍这里主要介绍一些grub2中高级命令,简单的可以使用help来查看用法。
grub2中的ls命令可以显示设备和文件列表。
ls列出当前的所有设备。
ls -l详细列出当前的所有设备。
对于分区,会显示其label。
ls (hd0,1)/列出分区(hd0,1)根目录的文件。
ls -l (hd0,1)/详细列出分区(hd0,1)根目录的文件,会显示文件的大小和是否为目录。
4.2、search命令search相当于grub4dos中的find --root,它可以在所有分区里寻找某一文件。
search /grub.exe列出所有根目录里包含grub.exe文件的分区。
search可以根据分区的label来搜索:search -l WinXP搜索label是WinXP的分区。