![GRUB 损坏、Linux 和 Ext4 分区被删除后,让 Windows 机器重新启动](https://linux22.com/image/1570473/GRUB%20%E6%8D%9F%E5%9D%8F%E3%80%81Linux%20%E5%92%8C%20Ext4%20%E5%88%86%E5%8C%BA%E8%A2%AB%E5%88%A0%E9%99%A4%E5%90%8E%EF%BC%8C%E8%AE%A9%20Windows%20%E6%9C%BA%E5%99%A8%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8.png)
当用户调整 Ext4 分区的大小以便为 Windows 10 Pro 64 位版本 1709 腾出更多空间时,单驱动器联想双启动笔记本电脑上的 Grub2 文件以及 Ext4 分区中的所有其他内容均被删除,/boot/grub/grub.cfg
/etc/grub.d/
并且/etc/default/grub
所有内容都与 ext4 文件系统中的其他内容一起消失了。
因此系统无法启动,我需要优先重新启动 Windows;一旦 Windows 启动,重新安装 Linux 就很容易了。
DISKPART 显示该磁盘既不是 Dyn 也不是 GPT;也没有星号。
机器的驱动器上有三个 NTFS 分区,还有一个空闲的 Ext4 分区,位置从原来的位置移了过来。我希望优先让 Windows 重新启动;用户可以等待 Linux,尽管我当然不反对 Debian 派生发行版的恢复工具。
无法通过带有 grub-recovery 的 LiveUSB 启动;当我这样做时,我收到 Windows 启动管理器错误消息。如果没有 LiveUSB,我会收到 Grub 错误提示。
查找原始的 Windows 10 恢复 USB,发现它已被物理损坏(正如他们所说,两次移动=一次火灾)。
从另一台 Windows 10(版本 1803)机器创建恢复 USB,并运行,bootrec.exe /fixmbr
Enter响应“操作已成功完成”。关闭命令窗口,关闭电源,拔下 USB 并启动;无法启动,并显示“BOOTMGR 丢失”。
Bootrec.exe /rebuildbcd
告诉我 0 个驱动器已修复,但重新启动无法启动,并显示“BOOTMGR 丢失”。
Bootrec.exe /fixboot
告诉我“访问被拒绝。”
因为如前所述,没有 FAT32 分区,而且M$ 指出 GPT 需要 FAT32 分区: “设备必须包含系统分区。在 GPT 驱动器上,这称为 EFI 系统分区或 ESP。此分区通常存储在主硬盘驱动器上。设备启动到此分区。此分区的最小大小为 100 MB,并且必须使用 FAT32 文件格式进行格式化”我怀疑分区都是 MBR。
然而,由于联想有它自己的 分区 GUID,我也应该看看这个吗?
DISKPART 显示
list disk
Disk ### Status Size Free Dyn Gpt
-------- ------ ----- ---- --- ----
Disk 0 Online 298GB 0B
list part
Partition ### Type Size Offset
----------- ------ ------ ------
Partition 1 Primary 100MB 1024KB
Partition 2 Primary 279GB 101MB
Partition 4 Primary 17GB 279GB
Partition 3 Recovry 953MB 297GB
我该如何解决这个问题?
答案1
我假设分区 P1 是 EFI,P2 是 Windows,P3 是 Linux。
根据您首先让 Windows 运行的限制,以下步骤可能会有所帮助:
- 对整个磁盘进行映像备份
- 对每个分区进行原始备份
- 重新格式化磁盘并重新分区,将 P1 分区为 EFI,将 P2 分区为 NTFS,大小完全相同
- 在 P2 中安装全新 Windows 版本并让其在 P1 中安装自己的 EFI 引导加载程序
- 备份新的 P2,然后使用 P2 的抢救备份对其进行原始覆盖
- 稍后再担心 Linux 和 grub。
如果用户还破坏了 Windows 分区,则此方法将不起作用。在这种情况下,您可能需要取证支持,而您最多只能返回新的 Windows P2,以便至少有一个可以正常工作的 Windows 安装。您将需要大量外部磁盘空间来获取所有这些备份。
答案2
使用 USB 创建 Windows 恢复驱动器Windows Media 创建工具。您不需要格式化 USB,因为它会为您完成此操作。使用启动菜单或 BIOS/UEFI 从 USB 启动。实用程序加载后,选择使用命令提示符修复计算机。在出现的命令窗口中键入并按bootrec.exe /fixmbr
[Enter]。退出命令窗口并关闭计算机。拔下 USB 并尝试启动。