我最近收到了一台安装了 OEM Windows 10 的机器。但我无法在上面安装 Ubuntu,因为 UEFI 分区是 NTFS 格式。而不是像UEFI 规范规定。那里甚至没有提到 NTFS。但一如既往:微软比任何国际标准都强大,所以其他人需要适应。
我尝试了不同的方法来重新创建 UEFI 分区,但如果不删除 Windows 安装,我就无法让它工作。我考虑重新安装 Windows 10 并尝试强制使用 FAT 格式的 UEFI。
但我能够说服客户/用户不要使用原生 Windows,因为他只需要用它来管理 Windows 服务器并模拟 Windows 用户/客户的问题。Remmina 可以连接到 Windows 服务器,虚拟机可以模拟 Windows 软件问题。
不过,我认为收集使用 NTFS UEFI 分区的双启动的解决方法/修复是一个好主意。因为我担心我不是唯一一个遇到这个问题的人。
答案1
编辑:事实证明,下面的内容是某种“误报”;稍后,我意识到托管此 NTFS“EFI”分区的磁盘是 MBR 格式,而不是 GPT;并且它也没有 EFI 文件夹,也没有典型的预期 Windows EFI 文件EFI/Microsoft/Boot/bootmgfw.efi
。我猜,这个分区上存在的“esp”标志让我感到困惑。
最后,我最终这样做了:
- 首先在 EFI 启动的 USB 的备用分区上安装 Ubuntu,并忽略在 NTFS 上安装 grub 的失败
- 我希望能够在 NTFS 分区上手动刷新 GRUB2,但是 grub2 2.04 明确检查了 FAT,所以暂时不可能:
if (!efidir_is_mac && grub_strcmp (fs->name, "fat") != 0)
grub_util_error (_("%s doesn't look like an EFI partition"), efidir);
- 然后我尝试在评论中推荐:
要更改关闭的 ntfs EFI 分区,只需复制文件,更改分区类型并重新格式化为 FAT,然后将文件复制回来
此时这仍然无助于双重启动,但是,现在我有一个 FAT32 分区,我可以从以 EFI 模式启动的棒重新安装 Ubuntu,同时在此分区上刷新 GRUB2。
- 现在 Ubuntu 确实启动了,但
os-prober
根本检测不到 Windows;boot-repair
没有纠正任何问题,但它提到它看到了“旧版 Windows” - 最后,在 Ubuntu 安装中,我在分区上重新安装了 grub2,但使用
--target=i386-pc
; 并强制从 BIOS 进行仅传统启动 - 现在重新启动进入 Ubuntu,
boot-repair
删除所有与 grub EFI 相关的软件包 - 最后,os-prober
可以看到 Windows 分区;但是它添加的条目(带有chainload
)无法启动进入 Windows,声称磁盘不可启动(但事实并非如此,因为 Windows 安装在分区 2 上,而该分区未标记为可启动) - 最后,按照建议当 grub 安装在 Windows 分区时,如何启动 Windows 7?- 我手动添加了一个使用的 Windows 10 条目
ntldr ($root)/bootmgr
- 最后我有了双重启动!
也就是说 - 这个第一个 NTFS 分区是可启动的(并标记为 esp),很可能不是一个真正的 EFI 分区 - 也许它以某种方式促进了恢复或其他什么;这(我猜)通过事实证明,我只能通过强制传统启动来实现 Windows 双重启动。
这不是答案,只是想回应这个问题:
我想看看这个带有所谓 NTFS ESP 的系统上 sudo parted -l 和 sudo blkid 的输出。我以前见过几次这样的说法,但没有证据。...
但是,请首先提供 parted -l 和 blkid 输出;它们可以提供重要信息。
是的,最后我得到了这样一个系统,翻新的 ThinkPad。
我在这台笔记本电脑上的 USB 拇指驱动器上启动了 Slax(以传统模式),它提供了以下信息(请注意,除了磁盘上已有的内容之外,我还做了一些手动分区;我还删除了有关其他驱动器的信息):
root@slax:~# parted -l
Model: ATA KINGSTON SUV400S (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 368MB 367MB primary ntfs boot, esp
2 368MB 54.1GB 53.7GB primary ntfs
4 54.1GB 118GB 64.4GB extended
5 54.1GB 75.5GB 21.5GB logical ext4
6 75.5GB 108GB 32.2GB logical ntfs
7 108GB 118GB 10.7GB logical linux-swap(v1)
3 118GB 120GB 1611MB primary ntfs diag
因此,分区 1 既被标记为 ntfs,又被标记为 boot 和 esp。
root@slax:~# blkid
/dev/zram0: TYPE="swap"
...
/dev/sda1: LABEL="System" UUID="64C89227C891F78E" TYPE="ntfs" PARTUUID="5e4a12da-01"
/dev/sda2: LABEL="Windows" UUID="EE3E98553E9818A3" TYPE="ntfs" PARTUUID="5e4a12da-02"
/dev/sda3: LABEL="Recovery" UUID="28DE98A6DE986E36" TYPE="ntfs" PARTUUID="5e4a12da-03"
/dev/sda5: UUID="80bbb011-a20f-489f-99dc-bbcc9422f7f4" TYPE="ext4" PARTUUID="5e4a12da-05"
/dev/sda6: LABEL="XXXXXX" UUID="3BBF7C062DC0E351" TYPE="ntfs" PARTUUID="5e4a12da-06"
/dev/sda7: UUID="abf91577-e9e8-4cd5-9e3f-48393f6c084c" TYPE="swap" PARTUUID="5e4a12da-07"
/dev/sdb1: UUID="D4D5-9DAC" TYPE="vfat" PARTUUID="000568d1-01"
我想在这台机器上安装 Ubuntu 和 Windows 双启动,所以我从 USB 拇指驱动器(在 EFI 模式下)启动了 mini.iso,它运行文本安装程序;最初它显示了分区的这种状态:
然后,我尝试将分区 1 设置为“用作”EFI 系统分区,结果显示以下状态:
...但是,文本安装程序没有任何内容 - 并且它失败了,“尝试在 /boot/efi 上的 SCSI2(0,0,0)、分区#1(sdb)中挂载类型为 vfat 的文件系统失败。”:
所以,是的 - 文本安装程序似乎假设 EFI 分区始终是 vfat,并且在这种情况下它是 NTFS,因此该过程失败......
所以我真的不知道,我能做什么,在这个系统上安装 Ubuntu 并将其与 Windows 安装在双启动配置中 - 而无需更改 EFI 分区......
编辑:这里大致是安装在此处的第一个 NTFS 分区上的文件/mnt
(我删掉了一些明显的翻译和字体文件以使其更易于阅读) - 请注意,任何地方都没有 EFI 文件夹:
$ tree /mnt/
/mnt/
├── Boot
│ ├── BCD
│ ├── BCD.LOG
│ ├── BCD.LOG1
│ ├── BCD.LOG2
│ ├── bg-BG
│ │ └── bootmgr.exe.mui
│ ├── BOOTSTAT.DAT
│ ├── bootuwf.dll
│ ├── bootvhd.dll
│ ├── cs-CZ
│ │ ├── bootmgr.exe.mui
│ │ └── memtest.exe.mui
│ ├── da-DK
│ │ ├── bootmgr.exe.mui
│ │ └── memtest.exe.mui
...
│ ├── Fonts
│ │ ├── chs_boot.ttf
│ │ ├── cht_boot.ttf
...
│ │ ├── segoen_slboot.ttf
│ │ ├── segoe_slboot.ttf
│ │ └── wgl4_boot.ttf
│ ├── fr-CA
│ │ └── bootmgr.exe.mui
...
│ ├── memtest.exe
│ ├── nb-NO
│ │ ├── bootmgr.exe.mui
│ │ └── memtest.exe.mui
...
│ ├── Resources
│ │ ├── bootres.dll
│ │ ├── da-DK
│ │ │ └── bootres.dll.mui
...
│ ├── ro-RO
│ │ └── bootmgr.exe.mui
...
│ └── zh-TW
│ ├── bootmgr.exe.mui
│ └── memtest.exe.mui
├── bootmgr
├── BOOTNXT
├── gboot
│ └── grub
├── grub
├── manboot
│ ├── bcd
│ ├── bootfix.bin
│ ├── boot.sdi
│ ├── efisys.bin
│ ├── efisys_noprompt.bin
│ ├── etfsboot.com
│ └── fonts
│ ├── chs_boot.ttf
│ ├── cht_boot.ttf
│ ├── jpn_boot.ttf
│ ├── kor_boot.ttf
│ └── wgl4_boot.ttf
└── System Volume Information
└── tracking.log