我缩小了 Windows 分区,释放了 100 GB,在其中安装了 Ubuntu,将 GRUB 安装到了第一个驱动器的 MBS 中,重新启动后我得到了 Windows,但没有任何选项可供选择。即使在 BIOS 的启动优先级配置中,我也看到主驱动器的名称为 Windows。
我的问题不是要做什么。我不想看到在搜索这个主题时可以找到的这些长长的文本和图片画布,只说作者不明白他们在做什么。
我的问题是发生了什么事?
BIOS如何知道操作系统?在我的情况下,启动顺序是什么?为什么 MBR 代码被忽略?
更新
一些作者建议在 Windows 下运行此命令:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
它有什么作用以及有何帮助?
UDP日期2
我能够通过 Grub for Windows 启动我的 linux 分区,目前
$ efibootmgr
BootCurrent: 0006
Timeout: 1 seconds
BootOrder: 0005,0004,0003,0002,0000,0001,0006
Boot0000 <CENSORED>
Boot0001 <CENSORED>
Boot0002 Hard Drive
Boot0003 Оптический накопитель CD/DVD
Boot0004* Network Card
Boot0005* Windows Boot Manager
Boot0006 Grub2Win EFI
(我在实验过程中输入了一些脏话)
看起来它只是打印 EFI 分区的一些信息。
答案1
用一个硬盘驱动器进行双启动通常并不容易UEFI/GPT
,最好的解决方案是为 Linux 使用单独的硬盘驱动器。UEFI/MBR
BIOS/MBR
原因的简短解释:
MBR
,Master Boot Record
或MSDOS Partition Table
在 EFI 系统中已弃用,已被替换为GPT
或GUUID Partition Table
GPT
并存MBR
在于不同的磁盘扇区中,并且不会发生冲突,但是,这样做是为了避免有人写入时发生损坏MBR
,就像您刚才所做的那样,而不是为了遗留兼容性- 如果你愿意的话,可以同时使用,但是有问题,
- 在EFI-land中,
GRUB
作为固件文件存在于EFI System Partition
Windows下,它是特殊的\EFI\
挂载点。 - 在 BIOS 领域,
GRUB
在 MBR ( ) 中安装引导加载程序<1kB
,然后grub
从/boot/grub
根 FS 分区或专用引导分区加载
Windows 10,在 EFI 系统上默认安装时使用
GPT
分区如果您尝试将 grub 安装到 mbr,则您没有以 EFI 模式安装它,
- 根据您的日志,GRUB 不在可启动固件列表中
- Grub2Win被识别为EFI固件,启动成功
- 您所说的系统固件
BIOS
不是BIOS
,它比 更智能BIOS
,并且能够运行更复杂的软件,它可以枚举驱动器并读取 EFI 系统分区,以及查询各种引导加载程序- 这就是您的系统固件将 Windows 识别为启动驱动器的原因
如何按原样启动
BIOS
最简单的方法是在系统固件中强制 启动模式。这将使用传统启动模式,该模式使用MBR
,其中包含 grub 信息,并且对 Windows 10 或 efi 一无所知。
或者,您可以尝试Hardrive0
从 EFI 启动,它的作用大致相同。
您还可以尝试安装 grub-efi 而不是 grub(在 linux 内),因为您已经确定内核是 EFI 可引导的(使用 Grub2Win)
$ apt-get install grub-efi
$ update-grub
答案2
如果安装 Ubuntu 后无法查看启动菜单,请在 Windows 中尝试以下操作:
1. 右键单击Command Prompt
并选择run as Administrator
。
2. 键入mountvol f: /s
(如果 F 驱动器为空,否则使用其他驱动器)
3. 键入cd f:\EFI
4. 键入dir
(应列出所有文件)
5. 键入bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
6. 立即重新启动。如果您仍然发现问题,请重复 1-5 并键入bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
。