很简单:
/boot/grub/grub.cfg是给传统Legacy引导的GRUB用的配置文件。
/efi/ubuntu/grub.cfg是给现代UEFI引导的GRUB用的配置文件。
不同的GRUB会去找对应的grub.cfg看配置。

不过一般安装好后,打开/efi/ubuntu/grub.cfg你会看到里面只有这么几行字:

search.fs_uuid a4b1bb59-b7f9-41fb-90f1-35aa3c37aa6d root 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

想必您也猜出大意来了:
EFI版的GRUB一启动,就会先来找/efi/ubuntu/grub.cfg看配置。结果这个配置文件这么说的:
你先找一个uuid为a4b1bb59-b7f9-41fb-90f1-35aa3c37aa6d的分区去,把它标成root,
然后设了个变量叫prefix,把它设成这个root里/boot/grub这个路径
好了,去看这个路径下面另外那个叫grub.cfg的文件吧,我不管了。

再明显不过,这个root分区就是系统的/。
所以说,用efi引导GRUB,它找的配置文件不是/boot/grub/grub.cfg,而是在efi目录里的那个grub.cfg。不过这个文件把它指向了/boot/grub/grub.cfg。所以嘛,它最终还是去找了/boot/grub/grub.cfg。

这也给了个提示,grub-update等命令修改的是/boot/grub/grub.cfg。所以如果哪天改过什么然后发现这样改grub不生效的话,考虑打开efi分区里那个grub.cfg,看一看它search.fs_uuid所指的那个分区究竟是不是你的系统分区吧。(当然,如果你的boot就在一个单独分区里的话,这个东西指向的UUID会是您boot分区的UUID,然后下面prefix会set到($root)’/grub’。)

同时似乎也说明,把/boot/grub/grub.cfg直接copy到/efi/ubuntu/grub.cfg,应该也能用,不过会把grub-update淦蒙圈,所以最好别折腾了还是。

原文地址:http://www.cnblogs.com/izwb003/p/boot-grub-gurbcfg_and_efi-ubuntu-grubcfg.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性