我正在尝试在我的 Windows 10 笔记本电脑上安装 Ubuntu 双启动。 Windows 10 使用旧版 BIOS 设置。
当我开始 Ubuntu 安装时,我收到有关 BIOS 和 UEFI 的警告,其他操作系统变得无法启动,只有在确定时才继续,等等。但由于没有提供其他选择(除了简单地放弃和不安装 Linux),我决定继续,安装后发现GRUB只提供了Linux选项。
有没有办法让我再次从 Windows 启动?我不介意卸载ubuntu
答案1
根据警告的具体内容以及您在安装 Ubuntu 时所做的具体选择,安装过程可能会执行以下操作之一:
它可能已将分区从 MBR 转换为 GPT 样式以安装 UEFI 样式,同时保留(或调整)现有分区的大小。这是最佳选择:您只需安装 UEFI 样式的引导加载程序,然后就可以返回 Windows。一旦 Windows UEFI 引导加载程序位于磁盘上,Ubuntu 甚至可能会在您下次运行时自动检测到它
sudo update-grub
并将其添加到 GRUB 启动菜单中。它可能刚刚在 MBR 分区磁盘上设置了 UEFI 样式的引导加载程序。这是一个问题,因为虽然 Linux 可以做到这一点,但微软表示 Windows 不支持这种组合。然而,在这种情况下,返回到传统风格的仅 Windows 启动应该相当容易。
它可能占用了 Ubuntu 的整个磁盘,因此您的 Windows 安装被覆盖并且不再存在。这是最坏的情况:如果您想要恢复 Windows,则需要完全重新安装它,并且现有的 Windows 文件将消失。
确定您的情况
在 Linux 中,运行sudo fdisk -l /dev/sda
.如果您的系统磁盘不是/dev/sda
,请将其替换为适当的设备名称。例如,在具有 NVMe SSD 的新系统上,可能会出现/dev/nvme0n1
这种情况。
输出应类似于以下内容:
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2B05CCE8-92BC-4308-B770-174CE63D044F
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 1550335 499712 244M Linux filesystem
<... other partitions listed here...>
如果您的 Linux 版本fdisk
不太旧,输出应包含一行内容:
Disklabel type: gpt
或者
Disklabel type: mbr
这标识了系统磁盘上当前使用的分区样式。
GPT 分区的系统磁盘 - 安装 Windows UEFI 引导加载程序
既然Linux安装程序已经为我们设置了UEFI引导加载程序,那么磁盘上也应该有一个EFI系统分区(简称ESP)。在输出中,它是列出的fdisk -l
分区,其大小通常在 100M 到 512M 之间。在 Linux 中,它可能安装在.您可能想要使用一些 GUI 文件管理器来运行或查看它,以便识别该分区的内容 - 您将在 Windows 命令提示符下看到它。通常,如果 ESP 安装在,则应该有一个子目录,其中包含 Ubuntu 的实际 UEFI 引导加载程序。Type
EFI System
/boot/efi
sudo ls -l /boot/efi
/boot/efi
/boot/efi/EFI/ubuntu
现在,为自己准备一个 Windows 10 安装介质。您不需要许可证代码。从该安装介质启动计算机。由于您的 Ubuntu 以 UEFI 模式安装,您的计算机可能也会自动以 UEFI 模式启动 Windows 安装程序,但如果您看到安装介质有两个启动选项,则只有其中一个选项以 UEFI 模式启动它,这就是第一个你应该选择。 (希望引导菜单会显示哪个是哪个 - 这取决于您系统的 UEFI 固件。)
当 Windows 安装程序显示初始屏幕并在屏幕中间显示“立即安装”按钮时,请选择底部附近的“修复计算机”。
从下一个菜单中,选择“疑难解答”,然后选择“命令提示符”。
现在,输入这些命令:
diskpart
list vol
这应该显示分区列表。在“Fs”列中找到具有 FAT32 的分区 - 它应该是您之前在 Linux 中看到的 ESP。记下其卷号(Volume ###
在最左边的列中)并为其分配一个未使用的驱动器号(如 X:)。例如,如果 ESP 列为Volume 2
:
sel vol 2
assign letter=x:
DiskPart successfully assigned the drive letter or mount point.
这个时候应该说。然后键入exit
退出 DiskPart 实用程序。
切换到ESP上的EFI目录:
cd /d x:\EFI
dir
如果您看到该ubuntu
目录,则您来对地方了。
现在为 Windows UEFI 引导加载程序创建一个或两个目录:
mkdir Microsoft
cd Microsoft
mkdir Boot
cd Boot
将 Windows UEFI 引导加载程序安装到 ESP 并重新创建 Windows BCD 注册表:
bcdboot c:\Windows /l en-us /s x: /f UEFI /addlast
如果您希望 Windows 引导加载程序使用英语以外的语言,请将en-us
上面的命令替换为适当的 Windows 语言代码。
现在键入exit
,删除 Windows 安装介质并重新启动系统。它应该像以前一样出现在 Ubuntu 中。运行sudo update-grub
以更新 GRUB 启动菜单。如果一切顺利,它现在应该会自动检测 UEFI Windows 引导加载程序的存在并将其添加到 GRUB 引导菜单中。
现在,在 BIOS 启动顺序菜单中,应该有一个名为“Windows Boot Manager”的项目。如果你想删除 Ubuntu 并返回到纯 Windows 系统,只需将其切换为主要启动选项,系统就会默认跳过 GRUB 并启动到 Windows。然后,您可以使用 Windows 磁盘管理删除 Linux 分区。不要删除 EFI 系统分区,因为现在 Windows 也需要它来启动。
(正在进行中 - 我稍后将添加 MBR 恢复选项)
答案2
好的,这肯定仍然是一个 Windows 问题,并且确实属于 superuser.com 或类似的问题。
但是,为了提供帮助:从您所写的内容来看,安装程序似乎更改了硬盘上记录分区的系统。您的 Windows 引导加载程序以及分区的大小和位置存储在 MBR(硬盘驱动器上的第一个扇区)中。
为了以 UEFI 方式安装,安装程序以 GPT 格式重写了分区的大小和位置,在此过程中完全覆盖了 MBR。这不是一次意外。两个分区表不能共存,这是必要的步骤。 IE:这就是你被警告的事情。
我不是windows专家,这是一个linux论坛。但我想从这里你基本上有两个选择:
- 向前修复(尝试安装 Windows EFI 引导加载程序)
- 理论上,这是可能的,因为 UEFI 只需要在(新的)EFI 分区中安装 Windos 引导加载程序
- 我个人在让 Windows 从 Ubuntu 创建的 EFI 分区启动时遇到问题,所以这里不能保证。
- 尝试反转(尝试恢复回MBR)
- 这是棘手且危险的,仍然需要您从 Windows 论坛寻求帮助
- 理论上,您可以记下分区的详细信息,并尝试用包含相同分区的 MBR 替换 GPT
- 如果出错,您可能会丢失所有数据,因此在尝试此操作之前请仔细考虑。
- 更换分区表后,您需要将 Windows 引导加载程序重新安装到您的 MBR(超出了本论坛的范围,我不知道如何操作)
正如我所说。从这里尝试搜索网络并在 Superuser.com 上询问 Windows 特定说明。
答案3
问题通常在于您机器的 BIOS(机器启动时使用特殊键(例如 F2 或 ESC)输入的软件)已因安装新操作系统而更改。 BIOS 有一个启动分区列表,在你的情况下,Linux 似乎已经把自己放在前面了。您可以通过进入计算机的 BIOS 并更改启动顺序来更改它。