veket官方网站论坛

liuzhaoyzz 发表于 2022-1-11 09:37

hudaluoshen 发表于 2022-1-10 11:14
他的定制脚本是可以改的啊,他默认搜索/boot/grub/grub.cfg是因为他的脚本定制在这个地方了
他的脚本buil ...

grub2原版脚本生成的efi只能通过二次引导才能进入。      

你对UEFI引导有些误解。
1.先说从本地硬盘UEFI启动的情况
如果本地硬盘安装的有windows,大部分主板会自动添加/efi/microsoft/boot/bootm g f w.efi引导序列,有了他之后bootx64.efi不一定会添加,规则是微软定的,“美国优先”、“微软优先”的游戏规则仍然适用,在这种情况下/efi/boot/bootx64.efi就没有控制权,没有控制权就不能启动。
如果不相信的话,你可以用bootice删除硬盘上bootx64.efi引导序列试试看,有bootmg f w.efi那一套,bootx64.efi可能就不会自动被添加,没有bootm g f w.efi,bootx64.efi才有希望拿到控制权。
所以简单暴力地复制/efi/boot/bootx64.efi不具备通用性,除非主板NVRAM里面恰好已经有了bootx64.efi引导序列,这个引导序列安装windows的时候微软会创建,微软创建的bootx64.efi就是bootm g f w.efi改名而来的。
2.UEFI的OS loader有很多,比如g4e/grub2/clover/xorboot/微软的bootmg f w.efi,大家都想抢占/efi/boot/bootx64.efi这一个入口,势必会引起混乱,UEFI OSloader并非只有bootx64.efi这一个入口,可以有很多入口进去,只要在主板NVRAM里面添加其引导序列即可。
所以grub2为什么用grubx64.efi作为引导文件名?这是为了避免和其他的UEFI OSloader引起冲突罢了,根本不需要改名为bootx64.efi,也没有必要,他不需要什么“二次引导”,他自己不改名字就可以作为第一引导。g4e默认引导名字为bootx64.efi,我都是改名字为g4ebootx64.efi,这样做的原因是避免强制覆盖用户的bootx64.efi,因为前面说了,你不知道用户的这个bootx64.efi倒底是哪个体系的引导器,强制覆盖不是最优选择,如果原来是微软的可以过安全启动,你用微软以外的引导器覆盖了就可能导致不能过安全启动,硬盘上windows可能无法启动(有些主板不能关闭安全启动),而且windows也排斥第三方的引导器作为主引导安装windows,安装过程中会报错,覆盖他自己体系的文件才是最优选择。
所以,最优选择是用bootice创建一个新的UEFI OSloader引导序列,而这个操作只需要操作一次即可。
3.再说普通优盘启动的情况下,一般地默认引导项是bootx64.efi,但是对于移动硬盘和nvme固态优盘的情况,有些主板还是会找bootmg f w.efi,而不是找bootx64.efi(各种主板规则不同,很混乱),所以简单地拷贝bootx64.efi到EFI目录,不一定能起作用,还是需要用bootice添加UEFI引导序列才行。

hudaluoshen 发表于 2022-1-11 10:20

liuzhaoyzz 发表于 2022-1-11 09:37
你对UEFI引导有些误解。
1.先说从本地硬盘UEFI启动的情况
如果本地硬盘安装的有windows,大部分主板会 ...

感谢版主耐心的讲解,我的理论知识及实践知识确实不够。手上也仅有一台笔记本和台式机测试。
多系统启动工具我用过opencore clover refind 都无一例外的是认准bootx64.efi 所以导致我认为UEFI模式下启动的顺序就是如此
至于用bootice添加引导到启动项中我有考虑过,但最开始这个主要还是为了U盘来的。在折腾的过程中我为了攻克这个问题差不多把无忧关于G4E和Grub2贴子翻了个遍,才有一些模糊的理解。考虑U盘只是偶尔会用到,所以觉得没必要再多一个步骤。如果硬盘中安装veket,这样做会更好。由于我硬盘中还装了deepin,已有了Grub2,我硬盘上的veket是通过Deepin中的Grub2启动的

爱琴海 发表于 2022-1-11 10:39

感谢分享!先收藏。

事业起步 发表于 2022-1-11 13:36

先收藏

cyg 发表于 2022-1-11 19:12

先收藏
页: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18
查看完整版本: UEFI下Veket安装及启动的最简单方法(U盘)