我最近使用默认安装过程安装了 Fedora 30,使用媒体驱动器首先尝试系统的实时版本,然后安装到驱动器。我之前在系统上安装了 Ubuntu 和 Windows 10。我的计算机有三个物理驱动器,它们之间有许多分区。问题是 Grub 根本不显示新的 Fedora 安装。
我尝试了多种方法来解决这个问题:
在我的 BIOS 设置中,“UEFI BIOS 引导选项 #1”设置为 Fedora。这不会改变什么,因为 Grub 在我启动机器时默认启动。
我尝试过(重新启动后)使用
os-prober
后跟update-grub
. os-prober 未检测到 Fedora,因此不会将其添加到引导选项列表中。我使用“bootinfoscript”收集了分区上的数据,并确认 Fedora 安装确实存在。转储其输出这里。
尝试使用 Grub-install 在物理驱动器上安装 grub (
/dev/sdc
)尝试了一些更简单的方法,例如确保驱动器已安装并运行
update-grub
,但无济于事。
我知道我的分区和系统有点混乱,这是因为我缺乏有关该主题的知识,并且在几年的时间里添加了两个物理驱动器,同时还添加了更多操作系统的安装。
我怀疑这个问题可能与 UEFI 有关,因为我注意到我的 Ubuntu 安装似乎以旧版 BIOS 模式启动,并且 Fedora 安装似乎有与之关联的 EFI 文件。
我觉得我对这个主题的知识缺乏,我不知道从这里该去哪里。我很乐意对我目前的设置进行彻底的改变。我也可以不再使用 Ubuntu,因为它安装在较旧且速度较慢的 HDD 上。 Windows 10 和 Fedora 就是我前进所需的一切。
答案1
我在 bootinfoscript 输出中找到了这一行:
/dev/sdb7 * 308,977,664 310,026,239 1,048,576 ef EFI (FAT-12/16/32)
这是 EFI 系统类型。但。它位于 MBR/dos 标记的磁盘上。
bootinfoscript 的信息非常丰富。你确实到处都有一些引导加载程序。它应该是可以修复的。
您现在具体如何启动?未来您想要什么?
因为拥有三个独立的磁盘、两个操作系统、传统 BIOS 和 uefi BIOS 以及现有的双引导:多种可能性。即使对于简单的 1=win, 2=linux 3=data 解决方案。
您应该能够使用正确的映像和根目录从任何 grub 命令行启动 linux。与来自 uefi shell 一样。
如果您通过 UEFI 启动到 grub 或 uefi shell,然后从同一个 EFI-sp 启动具有 initrd 的内核,您可以拥有一个root=/dev/ram0
没有任何实际分区的 busybox 系统,只有 1 GB EFI 系统分区。您在三个磁盘上放置的其他内容是...附加的。
层次结构是:
BIOS legacy or uefi
BOOTORDER (internal ones, external ones, uefi shell...)
MENU bootloader (or COMMAND uefi shell)
带有脚本的 uefi shell 和带有手动命令行的引导加载程序非常相似。
如果一切正常(即正确的 uefi BIOS,没有什么不好的意外),我个人希望它像这样:
BIOS 旧版(未使用):像以前一样,通过 MBR 从磁盘 1 启动 Windows
BIOS UEFI:三个(或更多)启动项:用于磁盘 2 上的 grub,未来用于磁盘 3 上,也许加上一个 systemd-boot;和选项“Uefi Shell”启动。
disk2(Linux 磁盘)上的引导加载程序菜单:同一磁盘上有一个或多个 Linux 条目。这个 grub 还应该能够在 dos disk1 上启动 Windows,也许还可以链式加载 disk3。
你真的可以用这一切构建一个完整的电路。我希望你能明白我的意思。如果没有,可以尝试笔和纸。对我来说有点太“遥远”了。