修复未对齐的 Windows 分区而不影响 Ubuntu

修复未对齐的 Windows 分区而不影响 Ubuntu

我有双启动设置,我的分区设置如下:

  • /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:http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/clip_image001_2.jpg

我有 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。

相关内容