我有一台三星笔记本 NP900X4C,上面安装了 LUKS 加密。系统以 UEFI 模式启动。
问题是三星笔记本内核模块在 UEFI 模式下被禁用,因此我缺少键盘背光等功能。
是否可以修改当前安装以便它可以在 BIOS 模式下启动?
基本步骤是将磁盘从 GPT 转换为 MBR 并从实时 CD 安装 grub,这是否正确?使用 LUKS 分区可以实现吗?
答案1
答案2
这是可能的,而且比您想象的要容易。Linux 可以在 BIOS 模式下从 GPT 磁盘顺利启动,因此无需进行 MBR 到 GPT 的转换。如果幸运的话,您需要做的就是在磁盘上安装 BIOS 模式的引导加载程序(GRUB、LILO 或 SYSLINUX)。不过,有三个注意事项:
- 我从未使用过 LUKS,因此我不确定这会有什么影响。我预计不会有任何问题,但这可能是我缺乏经验。
- 一些 EFI 对在 BIOS 模式下启动有特殊的要求。最常见的情况是,有些 EFI 只有在 MBR 分区上看到启动/活动标志时才会在 BIOS 模式下启动,而 GPT 磁盘上通常没有这个标志。您可以使用旧版本
fdisk
(缺少 GPT 支持,最近才添加)来设置启动/活动标志,或者使用新版本parted
在整个磁盘上设置标志(我不记得它的名字)来解决此问题。如果幸运的话,您不需要处理这个问题。请参阅这一页有关该问题的更多信息。 - 如果计算机与 Windows 双重启动,则将其转换为 BIOS 模式启动可能会更加棘手。在这种情况下,安装重新索引作为启动管理器。rEFInd 随后可以在 EFI 模式下启动 Windows 并启动 BIOS 模式 GRUB(或您最终使用的任何模式)。不过,要做到这一点,您需要编辑
refind.conf
:取消注释该scanfor
行并确保它hdbios
是扫描的项目之一。
答案3
将 Ubuntu 转换为 BIOS 模式
笔记:仅使用此过程将 UEFI 模式的 Ubuntu 安装转换为以 BIOS/CSM/旧模式启动。如果某些硬件在 UEFI 模式下无法正常工作,则可能需要进行此类转换。(显卡是常见的问题来源。)当 Windows 以 UEFI 模式启动时,转换为以 BIOS/CSM/旧模式启动会使启动过程更加尴尬——您需要使用计算机的内置启动管理器在操作系统之间切换,而某些计算机的启动管理器非常差,因此这可能无法实现。
- 如果 Ubuntu 安装在 GPT 磁盘上(您可以通过命令检查
sudo parted -l
),请使用 GParted 分区编辑器在其磁盘的启动位置创建 BIOS-Boot 分区(1MB、未格式化的文件系统、bios_grub 标志)。 - 开始启动修复,然后选择高级选项->GRUB 位置标签。
- 取消选中单独的 /boot/efi 分区选项
- 点击申请右下角的按钮。
- 设置 BIOS,使其以传统模式启动硬盘。通常,此设置位于引导标签 →引导顺序BIOS 部分。
来源:修订自:UEFI - 社区帮助 Wiki
答案4
我知道这已经很老了(抱歉,我已经用烂了),但我没有找到适合我的 Ubuntu 16.04 的指南,而且我对 @Lukas S 的答案感到很困惑,还有官方 Ubuntu UEFI 至 BIOS 指南(@karel 的回答)。将其发布在这里而不是编辑 Ubuntu wiki 指南,因为这个 askubuntu 问题在所有搜索引擎中都会更早出现。
事实上,我很惊讶这 3 个指南中的任何一个都能按原样为任何人工作,因为 UEFI 系统(通常)没有grub-install
工作所需的 grub-i386-pc 文件,所以它们在这一步失败了。引导修复在尝试修复时也会失败(显示“grub-pc 已取消”)。这些指南的作者可能以某种方式拥有这些文件,也许是因为以前的努力。
我的设置是一个典型的 EFI 系统,实际上是一个旧的 Ubuntu 16.04:
- /dev/sda1=fat32 (esp,efi) 分区
- /dev/sda2=Linux 系统
- /dev/sda3=swap(不重要,你不必有这个)
- sda2 上的 Linux 系统缺少 /usr/lib/grub/i386-pc 文件夹,其中包含 BIOS 启动和 grub-install 所需的模块
我的磁盘也是 GPT,这完全没问题 - 无需将 gpt 转换为 msdos。
成功从 UEFI 转换为 BIOS 所需执行的步骤:
删除 sda1 分区
重新创建一个未格式化但带有 bios_grub 标志的文件。笔记:Gparted 不太稳定,当我在创建它时选择“未格式化”时,它给了我一个 fat32 格式(我
grub-install
不喜欢)。我必须右键单击“格式化为”并选择“清除”,然后应用,然后添加“bios_grub”标志。以 BIOS 模式启动(重要!)来自 Ubuntu Live CD。我使用了 Xubuntu 20.04.3。以 BIOS 模式启动很重要,因为这将为您提供稍后所需的 grub-i386-pc 文件。
mkdir /mnt/sda2
mount /dev/sda2 /mnt/sda2
for f in sys dev proc; do mount -o bind /$f /mnt/sda2/$f; done
rsync -a /usr/lib/grub/i386-pc /mnt/sda2/usr/lib/grub/
(重要!i386-pc 之后没有 /)chroot /mnt/sda2 /bin/bash
grub-install /dev/sda
完成。重新启动后,系统现在从硬盘以 BIOS 模式启动。
我的 16.04 现在在 /usr/lib/grub 中有了较新的 grub-pc-i386 文件,但它没有受到影响。很高兴知道此过程可以跨发行版运行。无论如何,我打算升级到 20.04。
附言:某些人可能还应该编辑官方 Ubuntu wiki...