我认为在 Windows (Server 2012 R2) 之后安装 Linux (CentOS 7) 时我不会做太多错误,以将所有操作系统作为启动选项。
所以,在很好地安装了Server 2012 R2之后,我安装了Centos 7。但是现在我的启动菜单中只有Centos,根本没有Windows了。
到目前为止我尝试过的事情都失败了:
- 手动编辑
/boot/grub2/grub.cfg
以添加条目(我添加的所有条目均无效) - 启动修复包仅适用于ubuntu,不适用于centos
- 运行
os-prober
不显示任何windows分区 - 运行
fdisk -l
显示 2 个 NTFS 分区 (0/1) 和我添加的 Linux 分区
全部安装在同一个硬盘上,我在安装之前关闭了 UEFI,因为我听说这会让事情变得更加复杂。
接下来我将尝试 install-usb-stick 中的 Windows 修复选项,但有一种感觉,之后 Centos 条目将会消失。
如何获取所有条目?
答案1
实际上..当我得到正确的条目时,我可以手动添加该条目。
对于所有其他有同样问题的人(系统总是只启动到centos):
- 要查明 Windows 实际安装在哪个分区上(对我来说是 0/sda1),请运行
fdisk -l
对我来说,它表明
.... /dev/sda1 * 2048 718847 358400 7 HPFS/NTFS/exFAT ....
- 要找出分区 UUID,请运行 (此处描述) 并找到匹配的 UUID
blkid
- 然后将菜单项添加到
/boot/grub2/grub.cfg
like
menuentry "Windows 2012 R2" --class windows --class os { insmod ntfs set root='(hd0, 1)' search --no-floppy --fs-uuid --set=root XXXXXXXXXXXXX(UUID from step 2) chainloader +1 }
- 我也跑了
grub2-mkconfig
,但我不确定这是否真的需要。
现在我的启动菜单中也有 2012。
答案2
我提供这个“答案”作为支持性帖子并且作为附加信息在一点上。
这安德烈亚斯·雷夫包含 4 个步骤详细信息的答案非常适合我的情况,我了解到/发现了一个有趣的“哦,顺便说一句”。
我的情况是尝试三重启动 CentOS 7、Windows Server 2012 和 Windows7。我想我会聪明地添加两个单独的Windowsmenuentry
项目,一个用于WinServer2012,一个用于Win7。
我知道每个分区号,并找到每个与 Windows 相关的分区/安装的 UUID,并尽力让它们都出现在 GRUB 菜单中。两个 Windows 条目都出现了,但其中一个失败了,并显示一条消息,通知我缺少启动管理器或类似内容。我确实注意到失败的条目在“启动”列中没有星号。
Device Boot Start End Blocks Id System /dev/sda1 2048 419432447 209715200 83 Linux /dev/sda2 419432448 450889727 15728640 82 Linux swap / Solaris /dev/sda3 * 450889728 765462527 157286400 7 HPFS/NTFS/exFAT /dev/sda4 765462528 976773119 105655296 7 HPFS/NTFS/exFAT
然而,一个确实有效的 Windows 条目(在启动列中带有“*”)将我带到了正常的 WINDOWS 启动管理器,该管理器在那里显示了我的两个 Windows 安装...并且每个 Windows 安装都成功启动。
除了 UUID 行的值不同之外,唯一的区别是包含关联分区号的行。set root='(hd0, 3)'
我最终做的是
- 一个
menuentry
适用于我的 CentOS 7 的GRUB - 另一个用于“任何 Windows”的 GRUB
menuentry
,它涵盖了我的多个(两个)Windows 安装...通过位于 的单个可引导 NTFS 条目/dev/sda3
。
两个 Windows 安装都由一个 GRUB 覆盖menuentry
。
然而,两个 Windows 安装均显示为分离条目在 Windows 启动管理器中...在我从初始 GRUB 菜单中选择“anything Windows”条目后。
我同意跑步grub2-mkconfig
可能是不需要的。在我的实验中,没有它似乎也有效。
这为我完成了工作。安德烈亚斯的答案帮助我实现了我想要的目标,我也学到了一些我认为我应该分享的东西。感谢安德烈亚斯。