dzi*_*ift 4 windows linux grub ubuntu uefi
我有以下设置:
我尝试从 Ubuntu 11.10 使用 grub2 启动 Windows 7 分区。
我的 Windows“系统保留”是/dev/sda3.
在GRUB窗口项(标准):
menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set=root 644C5AC04C5A8CA4
chainloader +1
}
Run Code Online (Sandbox Code Playgroud)
分离输出:
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 296MB 296MB primary ext2
2 296MB 423GB 423GB extended
5 296MB 20.3GB 20.0GB logical ext4
6 20.3GB 363GB 342GB logical ext4
7 363GB 423GB 60.1GB logical ntfs
3 423GB 423GB 105MB primary ntfs boot
4 423GB 500GB 77.2GB primary ntfs
Disk /dev/sdb: 1500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 20.0MB 20.0MB fat16 boot
2 20.0MB 50.9GB 50.9GB ext4
4 50.9GB 1103GB 1052GB btrfs
5 1103GB 1156GB 52.7GB ext4
6 1156GB 1233GB 77.2GB ntfs
7 1233GB 1233GB 105MB ntfs
3 1496GB 1500GB 4271MB linux-swap(v1)
Run Code Online (Sandbox Code Playgroud)
尝试从 grub2 启动 Windows 后,我收到消息:
错误:无效的 EFI 文件路径
很明显,任何预引导应用程序,例如操作系统的引导加载程序,都与机器固件紧密耦合;就像一个普通的应用程序被绑定到它所使用的服务的操作系统上一样。EFI 引导加载程序不能在机器上运行,除非该机器提供 EFI 固件服务。除非该机器提供旧的 PC/AT 固件服务,否则旧的 PC/AT 样式引导加载程序无法在机器上运行。
这 chainloaderGRUB 中动词体现了这一点。它没有记录在案,但根据 GRUB 的托管方式,它会做不同的事情——即 GRUB 正在(预期)在什么机器固件上运行。在旧 PC/AT 系统上托管的 GRUB 版本上,它期望得到一个磁盘块集或文件,并以旧 PC/AT VBR 的方式加载和运行它所提供的(第一个扇区)引导程序。在 EFI 托管的 GRUB 版本上,它期望获得文件名,并像普通 EFI 应用程序一样加载和运行文件。
您拥有 EFI 托管的 GRUB 版本。您已作为文件名传递+1到chainloader,但这根本不是预启动 EFI 应用程序映像文件的有效路径。GRUB 一直无法构建EFI 设备路径为映像文件,因为您为其提供了一个语法错误的路径。因此出现错误消息。
正确使用 chainloader在 EFI 托管的 GRUB 中命名文件。对于 Microsoft Windows NT 6.1,这将是与 EFI 系统分区上的 BCD 存储并存的 Microsoft 引导管理器的 EFI 版本:
chainload (hd1,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi
当然,这对你不起作用,因为你要么没有在这台机器上安装 Windows NT 6.1——而是在其他机器上并将硬盘转移到这台机器上——或者没有安装它的 EFI-bootstrappable 版本,以某种方式说服 Windows NT 6.1 在您的 EFI 机器上运行其安装实用程序的非 EFI 版本。我怎么知道?因为Microsoft 不会让您像以前那样将它安装到 EFI 机器上的非 EFI 分区的硬盘上,而且因为您有一个合适的EFI 系统分区(第二个硬盘上的 FAT 分区)和它的当您只需要前者时,就相当于穷人。
因此,Windows NT 6.1 尚未安装 EFI 托管版本的 Microsoft 启动管理器,BCD 存储位于错误的位置,并且还会存在其他几个问题 — 与 Windows NT 需要一个硬件/固件组合以及已经为此配置了适当的驱动程序和设置,然后突然在另一个硬件/固件组合上启动 - 稍后为您存储。
| 归档时间: |
|
| 查看次数: |
7931 次 |
| 最近记录: |