是的,我读过很多次《在预装的 Windows 8(64 位)系统上安装 Ubuntu(支持 UEFI)》,也读过副标题为《通过反复试验快速轻松地安装 Ubuntu》的“UEFI”部分。我从这些文章中学到了很多东西,但我还是个新手,无法完全掌握。
我有一台预装了 Windows 8.1(64 位)的 HP15 笔记本电脑。芯片是 Intel Pentium CPU N3520 @ 2.16 GHz。内存是 4GB。我希望保留 Windows 8.1 并让 Ubuntu 14.04 与其双启动。
我已采取的步骤:
我更改了 BIOS 中的启动顺序以启用从 USB 启动。
我的 USB 上有 Ubuntu,并且我已在该设备上试用过它。当我尝试在硬盘上安装 Ubuntu 时,我没有看到与 Windows 一起安装它的选项。
我关闭了Win8的快速启动。
我禁用了 Win8 中的休眠模式。
在 Win8 磁盘管理中,我注意到分区如下:400 MB(恢复分区)260 MB(EFI 系统分区)678.58 GB NTFS Windows(C:)19.28 GB NTFS 恢复(D:)(OEM 分区)
关闭。
在 Win 8 的磁盘管理中,我通过缩小 C: 创建了 300 GB 未分配分区。该分区是 GPT。其他分区似乎是 MS-DOS。根据我对上述文章的理解,我保持 UEFI 启用/安装,并保持安全启动启用。
在此机器上,ESC F10 可进入 BIOS。(ESC F2 可进入 UEFI。)
8 在USB中启动,使用无需安装的尝试ubuntu。
设置互联网连接。
尝试在 HD 上安装 Ubuntu。没有找到与 Windows 一起安装的选项。
此时,我想我应该使用“其他”选项,但除非它指导我一步一步地完成,否则我担心会把事情搞砸。
BIOS 当前具有以下内容:禁用传统支持,启用安全启动,UEFI 启动顺序为 USB 软盘,然后是 OS 启动管理器,然后是其他选项
(许多年前我用 MEPIS 做过这个并且没有遇到任何问题 (:-)。)
非常感谢。
答案1
截至 2015 年 1 月,HP 笔记本电脑(可能是任何 HP 电脑)中 UEFI 的 BIOS 已损坏。每次运行 BIOS 时,它都会覆盖启动顺序以确保 Windows 启动。作为临时解决方法,您可以中断启动顺序并选择启动 ubuntu(在我的笔记本电脑中,顺序为Esc,然后F9)。
但是,这可能不是解决问题的长期好办法。我也不喜欢上面提出的 USB 启动解决方案。我不想将我的系统放在 USB 驱动器上。幸运的是,你可以让它工作。使用双启动说明这里以及下面的 HP 修复/解决方法。
GreatEmerald 写了解决方案这里,但我会复制,以便有更多参考这个重要的解决方案。下面的配方对我有用,尽管我使用bootmgf2.efi
了bootmgfw.efi~
。
存在某种“恢复功能”,使得每次启动时第一个 UEFI 加载选项都会指向以下两个位置之一,顺序如下:
\EFI\Microsoft\Boot\bootmgfw.efi
\EFI\Boot\bootx64.efi
此选项显示为“OS 启动管理器”(对于第一条路径),对于第二条路径则显示为类似于“UEFI 分区”的内容,完全忽略了赋予它的实际名称(当您通过 efibootmgr 查看 EFI 变量时,您会看到显示为“OS 启动管理器”的内容实际上设置为名称“Windows 启动管理器”;我不知道为什么有人会这样做)。如果您尝试更改启动顺序以使该插槽不是第一个,UEFI 将在下次启动时覆盖 BootOrder 变量并将其重置为指向“OS 启动管理器”。
默认情况下,上述两个路径都包含相同的 Microsoft 引导加载程序(如果您检查两者的 md5sum,您会发现它们匹配)。
因此,在 HP 发布更新的 UEFI 以允许关闭此“功能”或通过F10UEFI 设置重新排列启动选项之前,您可以采取以下措施以最少的黑客手段实现双启动:
在 Windows 中,挂载 UEFI 分区(
mountvol S: /S
将其挂载为 S:驱动器)并复制文件\EFI\Microsoft\Boot\bootmgfw.efi
以使用其他名称(例如,我将其复制到\EFI\Microsoft\Boot\bootmgfw.efi~
,但您可以将名称更改为其他任何名称)。在 Windows 命令提示符中,更新 Windows UEFI 条目以指向新名称:
bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi~
(相应地调整您的设置名称)。
或者,更改 Windows 引导加载程序的名称,以便确定它指向新的文件位置:
bcdedit /set {bootmgr} description "Fixed Windows path"
安装其他操作系统。在我的例子中,引导加载程序安装在 中
\EFI\opensuse\grubx64.efi
。删除这两个文件,
\EFI\Microsoft\Boot\bootmgfw.efi
和\EFI\Boot\bootx64.efi
。使用 efibootmgr 删除“OS boot Manager”条目:
sudo efibootmgr -b 0000 -B
使用 efibootmgr 选项将新的操作系统引导程序设置为默认引导程序
-o
。在我的例子中,我在插槽 Boot0001 中有一个名为“opensuse”的条目,在插槽 Boot0002 中有更新的路径 Windows 条目,所以我必须这样做sudo efibootmgr -o 0001,0002
更新 GRUB 以将 Windows 条目指向重命名的文件(您必须创建一个新文件
/etc/grub.d
并重新运行grub-mkconfig
)。
就是这样,现在 UEFI 将默认启动 GRUB(它不会重新生成“OS 启动管理器”条目,因为它无法找到两个硬编码路径中的任何一个,并且会“回退”到正确读取 BootOrder 变量),并且菜单F9仍然允许选择直接启动 Windows。
为了方便您配置 grub,您不必费力,下面是我放入 /etc/grub.d/40_custom 文件中的 Windows 条目:
menuentry "HP / Microsoft Windows 8.1" {
echo "Loading HP / Microsoft Windows 8.1"
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 3C62-71F3
chainloader /EFI/Microsoft/Boot/bootmgf2.efi
}
您的 UUID 不会是 3C62-71F3。使用此命令查找它:
grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi
您的 gpt 分区和提示可能不同。使用此命令:
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi
要编译你的 grub 配置编辑:
grub-mkconfig -o /boot/grub/grub.cfg
答案2
我的 USB 上有 Ubuntu,并且我已在该设备上试用过它。当我尝试在硬盘上安装 Ubuntu 时,我没有看到与 Windows 一起安装它的选项。
在 EFI 模式下安装 Ubuntu 时,几乎总是缺少“同时安装”选项。您必须使用“其他”选项或完全清除计算机上的 Windows。本网站和其他地方都有许多关于如何使用“其他”选项的描述,例如:
在 Win 8 的磁盘管理中,我通过缩小 C: 创建了 300 GB 未分配分区。该分区是 GPT。其他分区似乎是 MS-DOS。根据我对上述文章的理解,我保持 UEFI 启用/安装,并保持安全启动启用。
你混淆了两件事。GUID 分区表 (GPT)是一个描述整个磁盘。在 GPT 磁盘上,每一个分区是 GPT 分区——但这些分区可以属于不同的操作系统,也可以由单个操作系统用于不同的目的,就像主引导记录 (MBR)磁盘。
术语“MS-DOS”应用于磁盘时,既可以指使用 MBR 分区方案的整个磁盘,也可以指使用 FAT 文件系统的单个分区。考虑到您的上下文,我怀疑您指的是后者,尽管如果您有两个物理磁盘,则可能是您有一个 GPT 磁盘和一个 MBR 磁盘。GPT 磁盘当然可以容纳 FAT 分区,事实上,一个特殊的 FAT 分区,称为EFI 系统分区 (ESP),包含使计算机能够启动的启动加载程序。如果您需要更多帮助来解释磁盘布局,您可以必须parted
提供更多详细信息,例如 GUI 分区工具的屏幕截图或显示从文本模式工具(如或 )获得的分区的剪切粘贴输出gdisk
。
答案3
如果您希望 Windows 和 Ubuntu 都能够通过 EFI 启动,还有一点很重要:
当您选择“其他”安装类型,然后出现允许您进行分区的屏幕时,请为“引导加载程序安装设备”选择 EFI 分区(例如 /dev/sda1,而不是 /dev/sda)。这允许 GRUB 与 EFI 一起工作。至少在 14.04 中,此选择不是默认选择,因此请查看分区以找到类型为“efi”的分区。
答案4
我在预装了 Windows 10(64 位)(支持 UEFI)的 HP 笔记本电脑上尝试了此操作,并且成功了。
这Ubuntu 16.04安装过程标准化。
安装打开终端类型后
efibootmgr
如果尚未安装,请使用以下方式安装
sudo apt-get install efibootmgr
输出将会像这样
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0001,2001,2002,2004
Boot0001* Windows Boot Manager
Boot0002* ubuntu
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk
在文本顶部,你会看到我当前的启动设备是0002。
启动顺序如下0001,2001,2002,2004
更改启动顺序类型
sudo efibootmgr –o 2,1
现在重新启动计算机。将出现一个菜单,其中包含启动 Ubuntu 和 Windows 10 的选项。