askubuntu 上似乎有很多问题,网上也有很多关于如何在双启动中安装 Ubuntu 和 Windows 的信息,但 Ubuntu 到处都是安装后的。我想在已经运行 Ubuntu 的系统上安装 Windows。它使用 UEFI,硬盘上有可用空间,因此可以毫不费力地为 Windows 安排分区。在基于 MBR 的系统上,只要复制 MBR 并在安装 Windows 后恢复它,就可以做到这一点。在 UEFI 系统上可以做到吗?我会遇到什么问题吗?
答案1
这是有可能的,如果你知道自己在做什么,这比用 BIOS 从相同情况中恢复要容易得多。在 EFI 下,引导加载程序不存在于 MBR 中;它们存在于EFI 系统分区 (ESP)就像普通文件一样。因此,Windows 引导加载程序不会覆盖 Ubuntu 引导加载程序(GRUB 2,除非您自己安装其他程序),并且无需将新副本写入磁盘。
什么是 Windows将要不过,它要做的就是将其自己的引导加载程序保存到 ESP,然后将其设为默认。不幸的是,Windows 引导加载程序不提供链式加载到 Linux 的选项,因此结果可能与 BIOS 下的结果非常相似。不过,在 EFI 下,您有更多、在某些方面更简单的解决方案:
- 您可以在 Windows 管理员命令提示符窗口中键入
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
以将 GRUB 恢复为默认引导加载程序。(如果您在安全启动处于活动状态的情况下进行引导,则可能需要更改为grubx64.efi
。shimx64.efi
) - 您可以在 EFI 模式下启动 Linux 应急磁盘,并用它
efibootmgr
来将 GRUB 恢复到其主要位置。您需要键入efibootmgr
来获取已安装的引导加载程序列表,然后使用 选项更改它们的顺序-o
,efibootmgr
例如先efibootmgr -o 2,5,3
启动Boot0002
,然后Boot0005
,然后Boot0003
。(EFI 依次尝试每个,直到其中一个成功。) - EFI 版本 2 shell 有一个名为的工具,
bcfg
它可以做什么bcdedit
以及efibootmgr
可以做什么。请参阅此处了解有关使用 EFI shell 安装 rEFInd 的一些说明。步骤 12-14 至关重要,可以进行调整以将 GRUB 恢复到主引导程序。 - 更好的 EFI 允许您在其固件设置实用程序中更改启动顺序。遗憾的是,细节各不相同,而且许多 EFI 都缺乏此功能。
- 您可以按功能键(具体使用哪个功能键因计算机而异)来获取内置的 EFI 启动管理器,这通常允许您在 Windows 和 Linux 之间进行选择。如果您通常启动 Windows,那么这对您来说可能是可以接受的,但如果您经常需要启动 Linux,那么这会变得很乏味。
- 您可以安装另一个引导加载程序您的选择——正如该页面详细说明的,有多种选择。
- 你可以运行引导修复来自 Linux 紧急磁盘。这通常可以解决问题,但我会将其保留为最后的手段,因为它是一种非常笨拙的工具,偶尔会把事情搞砸。
请注意,如果您恢复 GRUB,您可能必须运行update-grub
才能让它检测 Windows;否则,您将从直接启动 Windows 的情况转变为直接启动 Ubuntu。(Boot Repair 的优点之一是它可以处理这个问题——至少,当它正常工作时。我自己的重新索引启动管理器也应该自动检测这两个操作系统。)
总之,您有很多选择。一旦您了解了这一点,bcdedit
在 Windows 中使用,然后在 Linux 中使用,就是一个非常轻松的解决方案。update-grub
答案2
你可能需要修复你的 grub 加载程序,使用官方 ubuntu wiki 中的几个简单步骤
https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows
答案3
除非您的 PC 资源(例如 RAM)非常低,否则请尝试使用 Virtualbox 并并行运行操作系统。
例如,它可以实现从一个系统到另一个系统的剪切和粘贴(在客户操作系统中安装“客户添加项”,在客户操作系统运行时检查菜单)。