14.10 Utopic Unicorn 中最近的一次安全更新导致 Ubuntu 14.10 中的“apt-get dist-upgrade”尝试删除软件包“grub-efi-amd64”,并将其替换为软件包“grub-pc”。我使用 grub-efi 以 UEFI 模式启动,至少最初它与没有“grub-efi”的普通“grub-pc”不兼容。因此,我有点担心删除软件包“grub-efi-amd64”,因为设置 UEFI 启动过程非常困难,我之所以使用这个启动过程,是因为如果不将硬件置于传统模式,我就无法在 BIOS 模式下安装 Ubuntu。所以,我的问题是:用“grub-pc”替换“grub-efi-amd64”是否安全,以便 UEFI 启动过程仍然有效?请注意,如果不删除“grub-efi-amd64”软件包,我无法更新内核,即“sudo apt-get install linux-image-generic”也会导致删除“grub-efi-amd64”。
XXX@YYY:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... The following package was automatically installed and is no longer required:
grub-efi-amd64-bin
Use 'apt-get autoremove' to remove it.
Done
The following packages will be REMOVED:
grub-efi-amd64
The following NEW packages will be installed:
grub-gfxpayload-lists grub-pc linux-headers-3.16.0-29 linux-headers-3.16.0-29-generic
linux-image-3.16.0-29-generic linux-image-extra-3.16.0-29-generic python3-requests
python3-urllib3
The following packages will be upgraded:
linux-headers-generic linux-image-generic python3-cupshelpers
3 upgraded, 8 newly installed, 1 to remove and 0 not upgraded.
Need to get 64.2 MB of archives.
After this operation, 232 MB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
答案1
您的谨慎是正确的。虽然替换grub-efi-amd64
bygrub-pc
可能会使主要的 GRUB EFI 文件保持完整,但 GRUB 可能会因为配置文件的更改而感到困惑——也可能不会,因为这是一种运气问题。我已经有一段时间没有看到这个特定的问题了,但如果我遇到它,如果没有发现,通常会导致启动问题。
为了最有帮助,您可以尝试升级单个软件包(例如,sudo apt-get install linux-headers-generic
等等),以查看哪些软件包可能具有不适当的依赖关系,然后针对强制更改的内容提交错误报告。如果它们全部做同样的事情,那么这可能是与单个软件包打包无关的事情,例如缺少/sys/firmware/efi
目录树(可能是内核模块问题)。这可能值得针对相关软件包提交错误报告,或者可能是系统上的配置文件更改。
另一种方法(与第一种方法不矛盾)是安装另一个可以代替 GRUB 运行的引导管理器或引导加载程序。您可以切换到另一个,或者只是将其保留为备份。我在我的Linux 的 EFI 引导加载程序页面。如果您将此类引导加载程序设置为备份,则您应该能够让替换继续进行,然后在完成后手动将其撤消,并且如果出现问题,您仍然可以启动。