我有一个关于 openSUSE 和 Windows 双引导的问题...
我想在我的计算机上安装 openSUSE Leap 42.1 和 Windows 10,有没有办法使用 Windows 引导加载程序来完成此操作?
我尝试过几次,但确实有两种结果:SUSE 无论如何劫持了引导过程,或者让我的电脑无法启动(在 SUSE 上安装 Xubuntu 以使其再次启动,然后将 Windows 放回 MBR,使 xubuntu 无法启动,但是嘿,Windows 再次启动)
为了实现此目的,我需要在 SUSE 安装程序中设置(或取消设置?)哪些选项?
顺便说一句:这是我当前的分区设置:
350MB Windows Boot Partition NTFS
380GB Windows Install Partition NTFS
90GB Linux Extended partition
25GB Linux Root Partition ext4
60GB Linux home Partition XFS
3GB Linux Swap Partition swap
450MB Windows Recovery Partition
您可能会问,为什么要使用 Windows 引导加载程序?
嗯,我真的几乎每天都需要 Windows(MultiSim、Xilinx ISE 设计套件...),所以我不能因为我正在修改它而弄乱我的引导加载程序。这就是为什么我希望 Windows 引导加载程序负责。我不能把它弄乱,如果我弄乱了我的 Linux,我当然会重新安装,但 Windows 将始终保持可启动状态。
答案1
对于每个问同样问题的人,我把它记下来,方法如下:
第一步:准备工作:
安装易BCD。使用 EasyBCD 您将备份 Windows 启动配置。
不要跳过此步骤,如果您不备份此配置,您的系统可能会无法启动。 (相信我,恢复无法启动的电脑并不有趣,因为你知道明天需要它)
第2步:分区:
您需要添加另一个分区,这将是您的 /boot 分区。我把它放在我的 Linux 扩展分区的前面。我的分区大约有 512MB 大,分区为 ext2。
第三步:安装openSUSE:
接下来,安装 openSUSE。务必不安装到MBR并将引导代码写入您的 /boot 分区。
第 4 步:让 Windows 重新掌控一切:
现在我们将再次让 Windows 负责,安装 openSUSE 后重新启动系统。这应该引导 GRUB,选择“/dev/sdaX 上的 Windows 10 加载程序”。现在,使用 EasyBCD 恢复您的 MBR,同时选择您的 Windows 启动驱动器/分区作为系统的启动驱动器/分区。如果您现在重新启动,您应该直接启动进入 Windows。现在,您可以添加新的启动项。请务必选择 GNU/Linux 选项卡。让分区处于自动检测状态对我来说很有用,但您应该能够手动选择一个。请务必给它一个正确的名称。
第五步:大结局:
您的双引导系统现在应该已设置完毕,继续并重新启动,您将看到 Windows 引导加载程序,它可以继续加载 Windows,也可以链式加载 GRUB。
注意:使用 Windows 引导加载程序进行双重引导会使 Linux 的引导速度明显慢于 Windows 的引导速度。这是因为 Windows 在您选择非 Windows 操作系统后执行重新启动。如果启动速度对您来说很重要,我建议您让 GRUB 来负责。
答案2
一般来说你不需要设置任何东西,GRUB 会帮你探测硬盘驱动器中的其他操作系统并将它们添加到菜单项中,甚至 Windows 恢复分区也应该出现在那里。因此,当您安装了所有其他系统后,您就可以安装 openSUSE,并且您将能够通过开箱即用的 GRUB 菜单来启动系统中任何可启动的内容。
如果由于某种原因“Windows 10”没有显示在 GRUB 的菜单上,请尝试以下操作:
1) 在 openSUSE 中,进入“Boot Loader Settings”窗口中的“Yast > Boot Loader”,单击“Bootloader Options”选项卡,检查是否选择了“Probeforeign OS”选项,如果没有选择,请单击“ok”,GRUB将重新运行其配置,然后重新启动系统。当您启动电脑时,其他操作系统应该出现在 Grub 的菜单项中。
2) 如果上述方法不起作用,您可以在 GRUB 菜单中手动设置“Windows 10”分区的条目。 (我自己在 openSUSE Leap 42.1 中使用这个!)
以 root 身份编辑该文件/etc/grub.d/40_custom
,使其看起来像这样:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 10" {
set root='(hd0,gpt2)'
chainloader /EFI/microsoft/BOOT/Windows.efi
}
在菜单项中,您必须设置 Windows 分区的信息:hd0
= 硬盘驱动器名称,可能与此处相同;gpt2
= 引导分区,您可能会是gpt1
(如果您没有使用 gpt 分区,请尝试1
代替gpt1
,数字遵循硬盘驱动器中分区的顺序;chainloader
= Windows efi 引导加载程序所在的位置。我/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
在boot 文件夹并重命名为“Windows.efi”,注意链加载器地址中不需要初始/boot/efi/
.efi 文件并关闭它。
现在您需要通过以 root 身份运行命令来告诉 GRUB 有关此更改的信息:
# grub2-mkconfig -o /boot/grub2/grub.cfg
这将使用新条目重新配置 GRUB,完成后重新启动系统。您应该能够从 GRUB 菜单启动“Windows 10”。通过提供正确的地址和所需的信息,上面提供的菜单条目也适用于其他系统。
答案3
2019年更新!我受了很多苦,所以我想我会多贡献一点
在我的笔记本电脑中安装 suse 15 后,我的 Windows 启动项消失了
恢复过程!
确认您的 efi Windows 分区在您的 HDD 中的某个位置仍然有效
linux-ifbe:~ # bootctl 状态
文件系统“/boot/efi”的 EFI 系统分区 (ESP) 类型错误。系统: 固件:不适用 (n/a) 安全启动:已禁用 设置模式:设置
当前加载器: 产品:n/a ESP:n/a 文件:└─n/a
引导加载程序二进制文件:ESP:无法找到或访问 ESP 的安装点。
EFI 变量中的引导加载程序条目: 标题:sles ID:0x0000 状态:活动,引导顺序 分区:/dev/disk/by-partuuid/493e9e82-b2e9-4201-a856-5df63869a4bf 文件:└─/EFI/sles/grubx64 .efi
Title: sled-secureboot ID: 0x0006 Status: active, boot-order Partition: /dev/disk/by-partuuid/493e9e82-b2e9-4201-a856-5df63869a4bf File: └─/EFI/sled/shim.efi Title: Windows Boot Manager ID: 0x0005 Status: active, boot-order Partition: /dev/disk/by-partuuid/93607397-896b-11e4-b666-d343be9e55dd File: └─/EFI/Microsoft/Boot/bootmgfw.efi Title: Windows Boot Manager ID: 0x0004 Status: active, boot-order Partition: /dev/disk/by-partuuid/93607397-896b-11e4-b666-d343be9e55dd File: └─/EFI/Microsoft/Boot/bootmgfw.efi
linux-ifbe:~ #
- 与你的磁盘ID匹配
linux-ifbe:~ # blkid
/dev/sda1: LABEL="系统" UUID="32546F46546F0C43" TYPE="ntfs" PARTLABEL="基础数据分区" PARTUUID="93607391-896b-11e4-b666-d343be9e55dd" /dev/sda2: UUID="5A70- 28D9" TYPE="vfat" PARTLABEL="基本数据分区" PARTUUID="93607397-896b-11e4-b666-d343be9e55dd" /dev/sda3: UUID="B802718A02714E7E" TYPE="ntfs" PARTLABEL="基本数据分区" PARTUUID ="93607399-896b-11e4-b666-d343be9e55dd" /dev/sda4: LABEL="TI31184100G" UUID="C46872F76872E816" TYPE="ntfs" PARTLABEL="基本数据分区" PARTUUID="9360739f-896b-11e4- b666- d343be9e55dd" /dev/sda5: UUID="20B60C41B60C19C4" TYPE="ntfs" PARTUUID="e06a03c0-05b3-46b9-8f39-285835657847" /dev/sda6: UUID="04d80a53-ba70-4bb2-9d81- cea98f2d9e4a" 类型= "ext4" PARTLABEL="primary" PARTUUID="43e69176-d33c-4ad4-bcd4-d9e2bc7abbc0" /dev/sda7: LABEL="Recovery" UUID="B8C4298BC4294D46" TYPE="ntfs" PARTLABEL="基本数据分区" PARTUUID= “337287c5-897f-11e4-b1c9-b0248f5831e0”/dev/sda8:UUID =“e870bcac-a05d-4251-b3e1-752b16275d62”类型=“交换”PARTLABEL =“主要”PARTUUID =“0c4c51be-7222-4db2-91” 50- 3140d6835482“/dev/sda9:UUID =“8F60-443B”类型=“vfat”PARTLABEL=“主要”PARTUUID=“493e9e82-b2e9-4201-a856-5df63869a4bf”
linux-ifbe:~ # blkid |grep -i 93607397 /dev/sda2: UUID="5A70-28D9" TYPE="vfat" PARTLABEL="基本数据分区" PARTUUID="93607397-896b-11e4-b666-d343be9e55dd" linux -如果是:~#
!!!找到它的/dev/sda2
3..运行到/etc/grub2/40_custom
linux-ifbe:~ # cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 10" {
set root='(hd0,gpt2)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
linux-ifbe:~ #
hda = hd0 老学校基础 hda,2 = gpt2 将其保存在文件中
4....去重新配置grub
grub2-mkconfig -o /boot/grub2/grub.cfg
5...重新启动系统。也享受你的窗户
来自马努的欢呼
答案4
如果您的 Windows PC 在 EFI 模式下启动,则 Microsoft 已阻止从 BCD 菜单加载旧版或非 Windows 操作系统。这意味着您无法再使用 EasyBCD 将 Windows 9x、XP 或 Server 2003 条目添加到 BCD 引导加载程序菜单。您也无法添加 DOS、Linux、BSD 或 Mac 条目。您可以添加多个Windows Vista、Windows 7、Windows 8和Windows 10条目;您还可以启动到基于 BCD 的便携式媒体,例如 WinPE 2.0+ 映像。我发现唯一的选择是将引导加载程序放在根分区上,并选择 GRUB/Linux 引导加载程序作为设置中的第一个引导选项(这将使您的 Windows MBR 完好无损。这样,如果 Linux 发生任何问题,您可以转到回到安装程序并选择 Windows 作为第一个启动选项,然后从 Windows 光盘管理中删除 Linux。您可以(如果您愿意)重新加载 Linux,而 Windows 仍然完好无损。使用基于 Ubuntu/debian 的 Linux 发行版执行时,您必须非常小心地使用 Opensuse 确认您的 YAST 设置设置,我已提供此 Youtube 教程链接来提供帮助。 https://www.youtube.com/watch?v=xlTgaWs9BD0