I\xe2\x80\x99m 尝试为 UEFI Windows/Linux 多重引导设置构建自定义 grub 菜单。我\xe2\x80\x99已经通过USB驱动器成功测试了菜单,其中包含:
\n\n/EFI/boot/BOOTX64.EFI\n/grub/grub.cfg\n/grub/x86_64-efi/*\n\xe2\x80\xa6etc.\nRun Code Online (Sandbox Code Playgroud)\n\n从该驱动器启动时,我可以毫无问题地访问菜单。接下来,我将 grub 转移到我的 PC 的 EFI 系统分区:
\n\n/boot/grub/bootx64.efi\n/boot/grub/grub.cfg\n/boot/grub/x86_64-efi/*\n\xe2\x80\xa6etc.\nRun Code Online (Sandbox Code Playgroud)\n\n该分区上还有 Windows\xe2\x80\x99 引导加载程序,格式为/EFI/Microsoft/boot.
最后,我使用 Windows 实用程序 BOOTICE(或只是系统 BIOS)来添加\\boot\\grub\\bootx64.efi. 我重新启动,grub 出现了。
...除了没有调出菜单之外,我最终得到了救援提示。我的假设是我只是将 grub.cfg 和模块放在错误的位置 \xe2\x80\x93 然而,\xe2\x80\x99s 真正奇怪的是,它只ls显示没有分区 \xe2\x80\x93 (hd0) (hd1)。我的期望是诸如(hd0) (hd0,msdos1)\xe2\x80\x93 之类的东西,但 grub saving 可以 \xe2\x80\x99t 似乎ls根本没有任何分区。 ls (hd0)并且ls (hd1)两者都产生 \xe2\x80\x9c 文件系统未知。\xe2\x80\x9d
我的系统包含一个物理磁盘,带有分区:
\n\n1 = EFI system partition (fat32)\n2 = Veracrypted partition (with Windows installation)\n3 = Veracrypted partition (data)\n4 = Linux swap\n5 = Linux root\n6 = Linux home\nRun Code Online (Sandbox Code Playgroud)\n\n为什么 grub 能够从 EFI 系统分区启动 - 但随后无法看到该分区或任何其他分区?更重要的是,如何才能像 USB 一样从内部驱动器获取其菜单?
\nls (hd0)意味着您正在尝试将整个磁盘作为单个文件系统进行访问;如果磁盘以任何方式分区,则该消息(hd0): Filesystem is unknown.是正常的且符合预期。
相反,只需键入ls (hd0 不带右括号的内容,然后按 TAB 键。如果 GRUB 可以识别分区类型,那么它应该列出 GRUB 已知的分区及其文件系统类型。
您的问题可能是 GRUB 期望其配置文件位于 中<partition root>/grub/grub.cfg,而不是位于 中<partition root>/boot/grub/grub.cfg,模块目录也是如此。
GRUBbootx64.efi文件包含 GRUB 核心映像,以及一些可选的 GRUB 模块。如果这组嵌入式模块不包含part_gpt,GRUB 将无法识别 GPT 分区表,这将导致无法访问包含其余 GRUB 模块的文件系统。这可能是进入 GRUB 救援模式的另一个可能原因。
| 归档时间: |
|
| 查看次数: |
13652 次 |
| 最近记录: |