在遇到与 Ubuntu 上的某些软件的兼容性问题后,我决定双启动 Windows 7,以便可以使用该软件。从 Ubuntu Live CD 启动并从 100GB 的 Ubuntu 硬盘驱动器分区后,当我尝试安装到空白分区时,我从 Windows 7 Live CD 收到此消息:
无法将 Windows 安装到此磁盘。所选磁盘为 GPT 分区形式
经过一番研究,我发现唯一的解决方案是格式化整个硬盘,但我无法这样做,因为我想保留 Ubuntu,而且我没有地方放 400GB 的备份
的结果sudo parted -l
:
Model: ATA ST1000DM003-1ER1 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 884GB 884GB ext4
3 884GB 992GB 107GB Basic data partition msftdata
4 992GB 1000GB 8468MB linux-swap(v1)
(3号分区是我要安装到的分区,所以它没有文件系统的原因是我在使用Windows安装磁盘时删除了该分区)
答案1
这实际上是一个 Windows 问题,而不是 Ubuntu 问题,但它确实与 Ubuntu 交互,因此值得回答。
你的第一个任务是弄清楚你的 Ubuntu 启动模式。如果该目录/sys/firmware/efi
存在,则表示您正在以 EFI 模式启动 Ubuntu。这是解决您的问题的最佳方法。如果该目录不是存在,那么您几乎肯定会以 BIOS/CSM/传统模式启动,这可能会使事情变得复杂。我先讨论比较简单的情况。
如果你在 EFI 模式下启动 Ubuntu,那么解决方案是让 Windows 安装程序也以 EFI 模式启动。我刚刚在网上搜索了一下,发现此论坛帖子关于这个问题。我不能保证它 100% 准确。如果您遇到问题,请尝试自己进行 Web 搜索或在 Windows 论坛上提问。
如果你在 BIOS/CSM/传统模式下启动 Ubuntu,那么你需要确定你的计算机是否有能力的EFI 模式启动。如果是,您可以在 EFI 模式下安装 Windows,然后为 Linux 安装 EFI 引导加载程序(见下文),从而使 Windows 和 Linux 都以 EFI 模式启动。如果计算机仅使用 BIOS,那么您将面临更复杂或更丑陋的解决方法的需求,例如:
- 在虚拟化环境中运行 Windows(例如在 VirtualBox 下)。
- 将磁盘从 GPT 转换为 MBR 格式(您可以
gdisk
使用一些警告),然后以传统的双启动配置安装 Windows。 - 创建 Windows 分区,然后创建混合型MBR包含这些分区以确保 Windows 正常运行。
我按照我推荐的大致顺序列出了这些选项,但您的配置和需求的细节可能会改变该顺序。
请注意,当您安装 Windows 时,在任何引导模式下,它都可能会部分覆盖 GRUB 或将其自己的引导加载程序配置为主要引导加载程序。(使用 VirtualBox 是消除此风险的唯一解决方案。)因此,在安装 Windows 之前,我不会花太多精力对 Ubuntu 引导加载程序进行更改。启动修复实用程序可以修复许多 Ubuntu 启动问题;但重要的是,您启动用于运行它的紧急磁盘时,所用的模式应与启动操作系统的模式相同(BIOS/CSM/legacy 与 EFI/UEFI)。要控制此启动模式,您可能需要使用固件的启动管理器,具体操作方法因计算机而异。
另一个引导加载程序修复选项(尽管仅适用于 EFI 模式引导)是使用我的rEFInd 启动管理器。您可以下载 CD-R 或 USB 闪存驱动器版本,从中启动,然后以 EFI 模式启动 Ubuntu。然后,您可以从其 Debian 软件包或 PPA 安装 rEFInd;或者运行 Boot Repair 并确信您在 EFI 模式下执行此操作。