启动
想在U盘上装一个Ubuntu,结果装完了发现Windows 10没法启动了。开机提示:
No boot device available
拿着Ubuntu试了半天,一会调一下硬盘的活动状态,一会看看能不能拿Grub修,但是始终没有进展。
溯源
还是让Windows自己来吧,仔细观察了启动菜单,发现UEFI里面没有Windows 10所在的硬盘,而Legacy模式虽然有但肯定启动不了这个。
火速下了一个Windows 10镜像文件,本来想做到U盘里,可是当下的Daemon居然提示要安装百度全家桶,果断放弃。UltraISO看起来似乎不错,但是我还是刻录一张光盘吧,万一将来还需要,而且光驱启动相对比较可靠一点。
修复
启动之后可以选择修复计算机,但是它的自动修复完成不了这项任务。那就进入命令行方式去修复BCD(启动配置数据)吧,于是按照这份提示输入了如下命令:
bootrec /rebuildbcd
这样它找到了一个安装配置,提示是否加入启动列表,我欢喜地确认了。
魔改
这样还是不成功,按照错误提示
The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria
我找到了superuser上的这篇帖子,好像是因为两个不同的分区拥有同一个ID,那就用diskpart
命令改吧。
- 引导的那个分区(一般靠前而且标记为系统)的ID可以改成
c12a7328-f81f-11d2-ba4b-00a0c93ec93b
(这是EFI系统分区独特标记):
set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
- 真正的操作系统所在的卷改成
ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
(这个数据不能随意乱设):
set id=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
改完再用
bootrec /rebuildbcd
重启之后系统自动会修复问题,随后就能恢复熟悉的Windows 10了,其实主要原因还是在于UEFI和Legacy,Windows 10只能在UEFI下启动,而Ubuntu破坏了Windows 10的启动配置数据。