grub2启动代码详解

grub2启动代码详解

ID:1536747

大小:42.50 KB

页数:7页

时间:2017-11-12

grub2启动代码详解_第1页
grub2启动代码详解_第2页
grub2启动代码详解_第3页
grub2启动代码详解_第4页
grub2启动代码详解_第5页
资源描述:

《grub2启动代码详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、GRUB2的介绍目前Grub1已经停止开发了,不再增加新的功能,所有的开发都转移到Grub2上了,Grub2是新一代的Grub,它实现了一些Grub中所没有的功能:1.模块化设计  不同于Grub的单一内核结构,Grub2的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。  2.支持多体系结构  Grub2可支持PC(i386),MAC(powerpc)等不同的体系结构,而且支持最新的EFI架构。  3.国际化的支持  Grub2可以支持非英语的语言。  4.内存管理  Grub2有真正的内存管理系统。  5.脚本语言  Grub2可以支持脚本语言,例如条件,循

2、环,变量,函数等。  当然,Grub2正处在开发阶段,因此以上的某些功能可能现阶段还不是很完善。如果你熟悉Grub2,应该可以看明白里面的内容。要注意的是:  a、timeout,default等参数用变量来储存  b、菜单项由menuentry定义  c、第1个分区是(hd0,1)而不是(hd0,0)理论的东西说多了大家估计也晕,举个简单的例子:在grub1中,要改变启动背景的时候只能选择支持640X480分辨率并且格式也只能是.xpm的图片,分辨率稍微大点的图就显示不出来了,但grub2不存在这个问题,它有更绚丽的菜单界面,grub2默认.png.tga.jpeg等

3、很多种格式的图片都支持,而且支持的图片分辨率也更大。GRUB2启动代码分析# #DONOTEDITTHISFILE # #Itisautomaticallygeneratedby/usr/sbin/grub-mkconfigusingtemplates #from/etc/grub.dandsettingsfrom/etc/default/grub # ###BEGIN/etc/grub.d/00_header### if[-s$prefix/grubenv];then#如果“$prefix/grubenv”目录不为空load_env#从grubenv文件中加载环境变量

4、 fi setdefault="0"#启动第1项#if[${prev_saved_entry}];then#如果prev_saved_entry的值不为空 setsaved_entry=${prev_saved_entry} #将saved_entry的值设置成变量prev_saved_entry的值。save_envsaved_entry #将变量saved_entry保存到grubenv文件中。setprev_saved_entry= #将prev_saved_entry的值设置为空save_envprev_saved_entry #将prev_saved_entr

5、y保存到grubenv文件中setboot_once=true #将boot_once的值设置为真(貌似是为了标志已经设置过启动的相关环境变量了)fi functionsavedefault{ if[-z${boot_once}];then #如果已经设置过相关环境变量saved_entry=${chosen} #用变量chosen的值给saved_entry赋值。save_envsaved_entry#将saved_entry保存到grubenv文件中fi } functionrecordfail{#存在启动失败记录时调用,设置变量recordfail。setreco

6、rdfail=1 if[-n${have_grubenv}];thenif[-z${boot_once}];thensave_envrecordfail;fi;fi #如果grubenv文件存在,并已设置过相关变量,就将变量recordfail保存到grubenv文件。} insmodext2#插入ext2文件系统支持的模块setroot='(hd0,9)'#指定系统root分区,也就是/分区为第1个磁盘的第9个分区search--no-floppy--fs-uuid--setd9985e84-7b54-4e5d-8ce9-c25cf88330aa #指定uuid=d9

7、985e84-7b54-4e5d-8ce9-c25cf88330aa的分区为root分区,如果前面的分区#号(hd0,9)的uuid与这里的uuid一致,这两句作用一样,如果不一致,则指定uuid的起#作用。ifloadfont/usr/share/grub/unicode.pf2;then #设置终端字体,unicode.pf2支持中文字符显示setgfxmode=640x480 #设置显示分辨率,默认为640×480insmodgfxterm #插入终端模块gfxterm,支持中文字符显示和支持24位图像。insmodvbe #插入v

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。