Ake*_*keo 7 grub2 system-installation rufus 21.04
这是针对在 BIOS 模式(UEFI 模式应该没问题)下安装最近发布的 Ubuntu 21.04 时遇到此错误的人的先发制人报告(因为我将在下面发布解决方案)。
这样做时,如果您碰巧通过 Rufus 创建了媒体(或者您自己从官方 GRUB 2.04 版本安装了 GRUB 引导加载程序),您可能会发现收到以下消息:
error: symbol 'grub_register_command_lockdown' not found
Press any key to continue...
Run Code Online (Sandbox Code Playgroud)
按下一个键将使您返回到 GRUB 选择屏幕。
Ake*_*keo 15
[免责声明:我是 Rufus 的主要开发者]
简短的回答:
长答案:
这个问题实际上源于两个问题,我担心,尽管我想粉饰它,但我别无选择,只能对我真的希望了解得更多的项目有所批评,正是为了避免这种情况。
因为 GRUB 项目目前似乎在及时发布版本方面存在问题,即使存在需要紧急发布的关键漏洞(例如UEFI BootHole,这是在接近一年前报道的,但仍然没有正式发布),像 Ubuntu 这样的发行版合乎逻辑地从 GRUB 中挑选补丁并将它们应用到最新的 GRUB 版本(版本 2.04)之上。 ,那是大约 2 年前推出的。所以第一个问题是,尽管人们在 GRUB 邮件列表上反复表达担忧,但缺乏正式的 GRUB 版本实际上在下游产生了重大问题,像 Ubuntu 这样的发行版必须真正应用和维护上百个补丁上一个 GRUB 版本,而不是简单地能够更新到像 GRUB 2.05-1 或 GRUB 2.05-2 这样的带外版本,其中 BootHole 或锁定漏洞已得到修复,
不幸的是,与其给他们的 GRUB 2.04 + 补丁一个版本名称,例如grub-2.04-ubuntu,这将允许像 Rufus 这样的实用程序检测到 Ubuntu 21.04 使用的 GRUB 版本不是 vanilla未修改的2.04 版本(实际上,应该永远是一个可以标记为grub-2.04) 的版本,因此会自动下载包含锁定修复程序的 GRUB 版本,Ubuntu 维护人员决定将他们的 GRUB 2.04自定义版本和数百个补丁标记为grub-2.04.
所有这一切的最终结果是,由于应用在 GRUB 之上的某些补丁实际上已损坏,因此 Ubuntu 标记为“GRUB 2.04”的内容实际上不再与 vanilla GRUB 2.04 版本兼容,这意味着,当您需要将光学 GRUB 引导加载程序转换为磁盘引导加载程序(因为,虽然 ISOHybrid 的 DD 映像在大多数情况下工作正常,但实际上存在这样的情况,即首次用户不使用 DD 映像创建安装介质可能会更好) ,并依靠报告的 GRUB 版本来查找匹配的引导加载程序,事情可能并且确实会以惊人的方式出错。
希望 GRUB 维护人员最终会意识到,不及时发布版本,尤其是当存在需要紧急修复的重大漏洞时,实际上会产生下游问题。同样,我只能希望 Ubuntu 维护者会意识到,如果您在 2 年前发布的软件之上应用大量补丁,并且其中一些补丁可能会破坏兼容性,您可能应该在您的版本控制的某处添加一个后缀,以便您更改的软件不会报告自己与香草版本相同。
| 归档时间: |
|
| 查看次数: |
7909 次 |
| 最近记录: |