我有双启动设置,我的分区设置如下:
- /dev/sda1-DellUtility(FAT)
- /dev/sda2——恢复(NTFS)
- /dev/sda3 - 操作系统(Windows 7 NTFS)
- /dev/sda4——扩展
- /dev/sda5——交换
- /dev/sda6 - ext4(Ubuntu 操作系统)
- /dev/sda7 - ext4(Ubuntu 主页)
我使用 Clonezilla 克隆了我的硬盘,但显然搞砸了,因为现在 Ubuntu 的磁盘实用程序报告我的分区未对齐。我可以毫无问题地启动和使用 Ubuntu,但 Windows 拒绝启动并显示 Windows 启动管理器错误屏幕,状态代码为 0xc000000e:
我有 Windows 安装光盘,但我担心“修复我的计算机”可能会影响 grub 或我的 Ubuntu 分区。最好的恢复方法是什么?
答案1
这与分区对齐无关。
Windows 不会抱怨分区未对齐。它抱怨的是它找不到 Windows 引导加载程序,winload
。它找不到它的原因是你切换了硬盘。微软的引导管理器会定位winload
,以及其他所谓的启动应用程序,通过硬盘 ID、分区 ID 和分区内的路径名的组合来查找。它正在查找winload
系统中不再存在的硬盘和分区组合。
假设你的副本除了 ID 之外,其他方面都与原件完全相同:一种解决方法是,正如艾伦·亚当斯发现的那样,更改 Windows 引导加载程序的 BCD 数据库条目(这是 Microsoft 的引导管理器存储所有这些信息的地方),不使用特定的分区 ID,而是使用通用的“引导”标识符,使用bcdedit
恢复命令行中的工具:
BCDEDIT /set {bootmgr} device boot
BCDEDIT /set {default} device boot
BCDEDIT /set {default} osdevice boot
这将数据库中的(Microsoft 的 Boot Manager 本身)和(默认选择 — 通常是 Windows Boot Loader)条目的device
和字段设置为“boot”。正如 M. Adams 所说,如果存在并且想要使用它们,则必须调整和其他条目。Multibooters 具有osdevice
{bootmgr}
{default}
{memdiag}
一整篇文章。
答案2
我按照错误屏幕上的说明操作。也就是说,我插入了操作系统磁盘,然后运行“修复计算机”。它运行得非常好。我可以毫无问题地启动 Windows 和 Ubuntu。