我有一台电脑可以不是支持UEFI。它仅支持传统 BIOS。
我有一个 SSD,上面只安装了 Fedora 和 Debian 的 2 个分区。没有 UEFI 或 MBR 分区。该 SSD 最初用于具有两个驱动器的 UEFI PC。第一个驱动器包含一个 EFI 分区,其中包含对包含 Fedora/Debian 的第二个磁盘的引用。第二个磁盘最初是 GPT。
这两个驱动器所在的计算机现已损坏,因此我想在我的旧版 BIOS PC 上将这个 SSD 与 Fedora/Debian 一起使用。我使用 gdisk 将磁盘从 GPT 转换为 MBR。我使用了几个 grub 实用程序(包括 os-prober),它成功检测到第二个驱动器并将 Fedora/Debian 的条目添加到我的 Grub 中。
问题是当我尝试启动时。当我选择 Fedora 或 Debian 条目时,屏幕变黑并且 Grub 不执行任何操作。当我在 Grub 命令行上使用“ls”命令时,Grub 挂起,我无法退出,必须使用电源按钮重新启动电脑。我的 PC 上的风扇转速很高,因此我认为 GRUB 正在尝试检测某些内容,但显然失败了。最终,GRUB 未能检测到该辅助驱动器。所以问题是,当我启动到Linux时,磁盘被检测到,但Grub在启动时没有检测到它。此外,我的 BIOS 检测到该磁盘,但无法确定如何从该磁盘启动,因为该磁盘上没有 MBR。
我认为第二个磁盘上没有 MBR 是导致问题的原因。但是,我不确定,因为当我在 UEFI PC 上使用此磁盘时,我不需要在驱动器上有 EFI 分区。如果我需要创建 MBR 分区,我不想丢失数据,并且不知道有任何工具可以在不丢失数据的情况下为我创建此 MBR。如有必要,我可以在驱动器的开头创建空间来创建 MBR 分区(如果需要)。
最终我找不到关于这个奇怪场景的太多信息,而且我对启动和 SSD 也不是很了解。所以请对我有耐心。
如果有人可以提供帮助,我将不胜感激。
以下是 Debian 的 GRUB 配置示例:
insmod part_msdos
insmod ext2
set root='hd1,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 b9842339-1f35-4b00-8f05-ef3125917197
else
search --no-floppy --fs-uuid --set=root b9842339-1f35-4b00-8f05-ef3125917197
fi
linux /boot/vmlinuz-4.9.0-11-amd64 root=UUID=b9842339-1f35-4b00-8f05-ef3125917197 ro quiet splash nouveau.modeset=0
initrd /boot/initrd.img-4.9.0-11-amd64