我有一块 2TB 的硬盘,首先在 1.8TB 的分区中安装了 Windows 7,留下了近 200 GB 的未使用磁盘以便将来安装 Ubuntu。
昨天我这样做了,创建了 4 个分区:
- 512 MB 交换
- 350 MB /启动 ext2
- 16GB / ext4
- 其余约 180 GB,/home ext4
一切顺利,安装完毕后重新启动,Windows 7 和 Ubuntu 上均显示 Grub。我正常进入 Ubuntu 并正常工作,但后来我尝试进入 Windows 时它崩溃了。重新启动时,它会显示一条消息,提示“错误,没有这样的分区”,并一直停留在那里。在这里我注意到这个主板不使用 BIOS,而是使用 UEFI,所以 GRUB 可能没有正确安装。
然后我使用之前安装的 Ubuntu Live USB 进行启动并查看分区表(使用 GParted),它显示以下消息:
/dev/sda 包含 GPT 签名,表明它有一个 GPT 表。但是,它没有一个有效的假 msdos 分区表,而它应该有。也许它被破坏了 - 可能是由一个不理解 GPT 分区表的程序造成的。也许您删除了 GPT 表,现在正在使用 msdos 分区表。这是 GPT 分区表吗?
只有当我说“是”时,它才会显示分区,共有 4 个:
- 交换 487 MB
- ext2 334 MB
- ext4 14.90 GB
- ext4 1.80 TB
Windows 分区消失了,现在我无法启动 Ubuntu 和 Windows。
我该如何修复这个问题而不格式化所有内容?
有没有办法可以恢复那些旧分区?
答案1
无论你做什么,都要小心谨慎。如果你应用了错误的修复,情况可能会变得更糟。理想情况下,你应该对磁盘进行完整的低级备份到备用磁盘;但我意识到,对于如此大的源磁盘,这可能不切实际。
我的第一个建议是学习我的GPT fdisk 文档,尤其是修复 GPT 磁盘。这维基百科上有关 GPT 的页面也值得一读。一旦您了解了数据结构,您就可以更好地准备尝试恢复。特别是,您可以使用gdisk
恢复和转换菜单上的选项来加载备份 GPT 数据,以及验证功能(v
在任何菜单上)以更精确地诊断磁盘的问题所在。如果幸运的话,您可能会发现您的 Windows 分区确实存在于备份分区表中,并且您可以通过加载该分区表来恢复它们。
如果你运气不好,你的两个分区表都会被损坏,你需要借助以下工具:测试磁盘恢复您的数据。(Windows 上有类似的工具,但我不熟悉它们,所以我无法提供链接。)TestDisk 很有可能能够恢复您的分区,但我不能对此做出任何承诺。
我怀疑这是由一个专为基于 BIOS 的计算机设计的 Windows 程序引起的,该程序将数据“原始”写入磁盘中紧接着 MBR 区域的区域。该区域正式未分配,因此各种工具都将其用作自己的游乐场。最常见的用途是用于 GRUB 等引导加载程序,但甚至许多非系统工具也将数据存储在那里。(如果我没记错的话,Netflix 就是这样做的。)问题是在 GPT 磁盘上,这是存储分区表的地方,因此将数据存储在此区域会导致磁盘损坏。如果我对原因的判断正确,除非您立即识别并卸载有问题的软件,否则这个问题会再次出现。您可以使用主菜单上的选项创建 GPT 数据的备份来简化恢复gdisk
;b
如果磁盘再次被破坏,您可以使用l
恢复和转换菜单中的(字母 L,而不是数字 1)选项进行恢复。
祝你好运!