双启动 Windows 8.1 和 Ubuntu 14.04(当前操作系统)

双启动 Windows 8.1 和 Ubuntu 14.04(当前操作系统)

我有一台 Dell Inspiron 15R 64 位笔记本电脑。我上面安装了 Windows 8.1。在安装 Ubuntu 13.04 时,我意外地选择了删除磁盘上的所有内容并安装 Ubuntu 的选项,结果我的整个硬盘被格式化为一个安装了 Ubuntu 的分区(因此,现在没有 Windows)。

启动笔记本电脑后,出现错误“未找到启动设备。按任意键重新启动”。这可能是因为 Windows 不再存在,而它的引导加载程序仍然存在(?)。要启动到 Ubuntu,我必须在启动期间按 F12 键在启动选项菜单中手动选择它,或者在 BIOS 设置中将启动选项设置为 UEFI 而不是 Legacy。如果我选​​择 UEFI 启动选项,那么它会直接启动到 Ubuntu,这就是我目前使用的。我最近将我的 Ubuntu 升级到 14.04,情况仍然相同。

现在,我想在当前系统上安装 Windows 8.1(以及 Ubuntu 14.04)。问题是我已经有一个 Windows 引导程序(?),由于之前格式化硬盘而留下的。我不想冒任何风险,所以我发布了这个问题。

我有 Windows 8.1 的映像文件 (iso)。如何安装 Windows 8.1 以及 Ubuntu 14.04(已存在)?

谢谢!这是DF-H在终端:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       451G  163G  265G  38% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            3.9G  4.0K  3.9G   1% /dev
tmpfs           786M  1.3M  785M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G  788K  3.9G   1% /run/shm
none            100M   52K  100M   1% /run/user
/dev/sda1       487M  7.3M  479M   2% /boot/efi

-编辑- 添加了对 Rod Smith 回答的回复信息。以下是 的输出sudo parted /dev/sda print

Model: ATA WDC WD5000LPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End    Size    File system     Name  Flags
 1      1049kB  512MB  511MB   fat32                 boot
 2      512MB   492GB  491GB   ext4
 3      492GB   500GB  8453MB  linux-swap(v1)

答案1

根据您的描述,您似乎已在 EFI 模式下安装了 Linux,但不知何故将固件设置为默认以 BIOS/CSM/旧版模式启动。这会导致出现“未找到启动设备”错误消息,因为没有 BIOS/CSM/旧版引导加载程序。(Windows 8 及更高版本几乎总是在新硬件上以 EFI 模式安装,因此您购买计算机时不会有 BIOS 模式引导加载程序。)调整启动选项以默认以 EFI/UEFI 模式启动(或等效地,禁用 BIOS/CSM/旧版支持;措辞因 EFI 而异)可能会解决此问题。

展望未来,如果我没记错的话,在 EFI/UEFI 模式下安装 Windows 至关重要。如果您尝试在 BIOS/CSM/旧模式下安装,Windows 会抱怨您的 GUID 分区表 (GPT) 并拒绝安装。在固件中保留 BIOS 模式启动选项可能会导致这种情况发生。

如果我没记错的话,你的电脑已经拥有EFI 系统分区 (ESP)oldfred 提到了这一点。Windows 和 Ubuntu 可以共享一个 ESP。您需要有未分配的空间或现成的 NTFS 分区供 Windows 使用,因此您可能必须使用 GParted(如 mrsud 所建议的)来准备磁盘。您需要从 Ubuntu 实时磁盘执行此操作,因为 GParted 无法修改当前正在使用的任何分区。我建议不要使用 Boot Repair 来恢复 GRUBbcdedit在 Windows 中使用,因为这是一个较小的选项,不太可能导致后续问题。

作为预防措施,请将您的 ESP(/boot/efi来自 Ubuntu)备份到 USB 闪存驱动器或其他可移动介质。这样,您可以在 Windows 安装程序将其删除的情况下恢复它。因此,备份所有重要的用户数据也是明智的。

在继续之前,您可能需要检查启动模式和分区表类型。在 EFI 模式下启动 Ubuntu 时,/sys/firmware/efi应该存在一个名为的目录。查找它以验证您是否处于 EFI 模式。要检查分区表,请键入sudo parted /dev/sda print。您应该看到类似以下内容的输出:

$ sudo parted /dev/sda print
Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sda: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                 Flags
 1      20.5kB  577MB   577MB   fat32        EFI System           boot
 2      578MB   1102MB  524MB   ext2         Ubuntu /boot
 3      1102MB  1626MB  524MB                Unused /boot
 4      1626MB  3001GB  2999GB               Linux LVM            lvm

您的分区在很多细节上与我的不同,但请注意Partition Table将分区表标识为 GPT 或 MBR 的行(显示为msdos,如果我没记错的话)。还请注意设置了标志的 FAT32 分区boot- 即 ESP。(其在Name列中的条目对人类来说是描述性的,可能不会EFI System像我的一样读作 。)

如果你有一个/sys/firmware/efi目录和/或如果你的磁盘不是使用 GPT,那么我对您所写内容的理解就是错误的,您应该回复详细信息。(编辑您的原始问题。)在这种情况下,请忽略我在此处写的所有内容 - 或将其归档以供将来参考 - 因为如果您实际上已在 BIOS/CSM/旧模式下安装了 Linux,则它不适用。

答案2

使用创建一个分区gparted,然后在其中安装 Windows。稍后您可以使用它boot-repair来恢复grub

答案3

UEFI 模式下的 Windows 也需要一个保留分区,并且它必须位于 NTFS 分区之前。

我建议将 Windows 安装到未分配的空间中。

微软建议的分区包括为 gpt 和 UEFI 保留的分区:

http://technet.microsoft.com/en-us/library/dd744301%28WS.10%29.aspx

驱动器上的顺序很重要:msftres

http://en.wikipedia.org/wiki/Microsoft_Reserved_Partition

efi 分区仍包含旧条目,新安装应将其覆盖。但 UEFI 还会在其 NVRAM 中记住 efi 分区的设置。Windows 也应该刷新它,或者您可能需要使用 efibootmgr 手动更新它,或者如果您的 UEFI 具有更好的菜单选项,则可能需要从 UEFI 内部更新它。

答案4

如果您使用的是 EFI / UEFI 启动而不是 HD 的引导加载程序(例如 GRUB),请忽略此答案。

我会将 .iso 刻录到 DVD,然后按照上述有关按所需方式设置 BIOS 的建议进行操作。我会先安装 Windows 8.1,删除所有分区,然后从一半驱动器创建一个分区。先完成所有 Windows 操作,忽略驱动器未使用的一半,等 Windows 运行并更新后再安装 Linux。

相关内容