调整 NTFS 分区大小后,Windows 10 不再启动

Jos*_*lsh 5 boot ntfs ntfsresize bootrepair windows-10

我的计算机通过 Grub 配置为双引导。我运行 Windows 10 和 Ubuntu 17.10。

今天早些时候,我在 Ubuntu 中工作,我的 ext4 分区空间不足。为了让它更大,我首先需要缩小我的 Windows 启动分区。

我曾经ntfsresize缩小文件系统(它没有错误),然后fdisk删除并重新创建分区。我知道这一点ntfsresize,并且fdisk不同意 MB 与 MiB,为了补偿,我检查了输出中的“字节”值ntfsresize并将其转换为 KiB,然后在fdisk. 当它问我是否要删除现有的 NTFS 签名时,我说不。我将驱动器类型设置为11(微软基本数据)。由于我的驱动器使用 GPT,我无法在 中将驱动器标记为可启动fdisk,因此我parted在那里打开并更改了它。

在这一切之后,我尝试重新启动到 Windows 来运行 chkdsk,但没有启动到 Windows,而是自动启动了启动修复。它说它无法自动修复Windows。我打开了恢复命令提示符,并且检测到并安装了我的驱动器。(虽然它安装为 E: 而不是 C:)我运行chkdsk E: /F并成功完成。我可以看到上面的所有文件。我尝试运行bootrec /FixMbr似乎有效,bootrec /FixBoot但出现“访问被拒绝”错误,并且bootrec /RebuildBcd能够检测到我的 Windows 安装并将其添加到 BCD。

然而,在这一切之后,每次我尝试启动 Windows 时,它都会启动启动修复。我仍然可以启动 Ubuntu,甚至可以使用ntfs-3g.

我可能会错过什么?为什么 Windows 拒绝启动,尽管分区看起来很健康?

提前致谢!

编辑:这是我的启动修复输出:http://paste.ubuntu.com/p/YCkzCcNdkN/

小智 8

我在安装linux时做了同样的(ntfsresize + fdisk),并遇到了同样的问题。最终,从 Windows 恢复提示来看,这似乎有效:

fixboot /scanos
Run Code Online (Sandbox Code Playgroud)

它找到了 c:\windows,然后我运行:

bcdboot c:\windows
Run Code Online (Sandbox Code Playgroud)

我也跑过chkdsk c:fixboot /mbr之前bcdedit /set {default} recoveryenabled no也跑过,但我不认为它们与问题有关。

据我了解,上面的 bcdboot 命令为 bootmgfw.efi 添加了引导到新的 c:\windows 的选项。事实上,重新启动后我有两个选择:

  1. 新的“Windows 10,分区 3”有效,并且

  2. “windows 10”,没有(和以前一样)。

启动后,我从配置管理器中删除了非工作选项(搜索“配置管理器”,选项卡“启动”)。

参考:[ https://docs.microsoft.com/en-us/windows/client-management/advanced-troubleshooting-boot-problems][1]

  • 谢谢!`fixboot` 不是一个可识别的命令,但 `bcdboot c:\windows` 成功了! (3认同)