所以我将 LGA 775 设置的主板升级为华硕 P5E。我的主硬盘上安装了 Windows 10 和 Ubuntu 14.something。使用旧主板时,计算机默认直接启动到 Windows 10。但是,使用这个新主板时,计算机启动到 Grub2,无法从那里启动到 Ubuntu(它停止闪烁_我可以在 Grub2 中看到“Windows 10”,但如果我尝试加载它,它不会启动到 Windows 10,而是出现错误:
错误:没有这样的设备:CEC8392CC83913E5
将分区类型设置为 0x83
错误:无效签名按任意键继续...
并返回到 Grub2。
我应该怎么做才能再次启动 Windows 10?
通过启动 Ubuntu 的恢复模式,然后更新 Grub2,设法修复 Ubuntu 的启动问题。
所以现在我可以启动到 Ubuntu(计算机仍然默认启动到 Grub2)。但是,更新 Grub2 也导致 Windows 10 选项消失 :/
答案1
您可能需要使用实时发行版重新安装 grub2,这将很有用https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows
该问题可能是由于 MB 上的新控制器为磁盘分配了与旧控制器不同的标签,而 grub(使用静态表进行启动)因此而“感到困惑”。
如果自动化系统没有读取 Windows 分区,您可以随时通过“终端方式”进行读取。
首先确保已安装所有分区,甚至是 Windows 分区。
生成一个 fstab 文件(分别使用 -U 或 -L 通过 UUID 或标签定义):
# genfstab -U /mnt >> /mnt/etc/fstab
您可能有一个 MBR 分区表,要检查它,您可以使用:
# parted /dev/sdx print
对于 MBR 分区磁盘,你只需要运行
# grub-install --target=i386-pc /dev/sdx
# grub-mkconfig -o /boot/grub/grub.cfg
将 grub2 安装到 /dev/sdx 磁盘(用 sdx 替换实际分区)。
如果这仍然不起作用,您将必须编写自定义的 /boot/grub/grub.cfg 文件。
为此,您需要 Windows 分区的 UUID(/SYSTEM_RESERVED 分区,而不是 C:\ 驱动器)。假设 Windows 引导加载程序的挂载点是 /media/SYSTEM_RESERVED/bootmgr,您可以:
# grub-probe --target=fs_uuid /media/SYSTEM_RESERVED/bootmgr
获取该分区的 uuid
那么您必须修改文件 /etc/grub.d/40_custom,添加以下行:
if [ "${grub_platform}" == "pc" ]; then
menuentry "Microsoft Windows Vista/7/8/8.1 BIOS-MBR" {
insmod part_msdos
insmod ntfs
insmod search_fs_uuid
insmod ntldr
search --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 "UUID"
ntldr /bootmgr
}
fi
将“UUID”替换为您分区的实际 uuid,然后重新运行 grub-mkconfig 命令,如上所述。
这可能会帮助您修改 grub 配置:
https://wiki.archlinux.org/index.php/GRUB#Windows_installed_in_UEFI-GPT_Mode_menu_entry
如果您想使用 Windows 引导加载程序,则在启动 Windows 时只需运行启动修复工具即可。