使用 TestDisk 恢复分区

使用 TestDisk 恢复分区

我使用的是 Windows 8.1 Pro。我有一个 60GB 的 SSD 用来启动,而我的大部分数据都在 1TB 的 SSHD 上。SSHD 格式化后只有一个分区。我最近尝试缩小该分区以双启动 CentOS,但缩小到一半就失败了。当我重新启动时,我的 SSHD 上什么都读不到。我在驱动器上运行了 chkdsk /r,它发现并修复了大量问题(几乎驱动器上的每个文件,或者看起来如此)。修复问题后,我的一些文件可以访问,但几乎所有文件都丢失了。总分区大小是正确的,但分区上的数据量(根据 Windows)大约是其应有量的一半。

我在 TestDisk 中运行了深度搜索,发现大约 50 个分区,其中大多数分区显示文件系统为Mac HFS(其他分区为MS Data)。如果我知道 SSHD 之前被格式化为一个大分区,我可以在 TestDisk 中执行任何操作来修复它并手动重置分区表吗?我只是不太确定我应该做什么。

答案1

您必须了解两件事之间的区别:

  • 分区是硬盘上的连续部分,由扇区号标识,例如扇区 2,048 至 41,943,040。分区在称为分区表,它只是一个扇区范围列表和一些简单的关联数据(例如,用于标识分区所含数据类型的类型代码)。两种常见的分区表类型是 MBR 和 GPT,尽管这对您的问题来说并不重要。
  • 文件系统是更复杂的数据结构,可用于存储、组织和定位磁盘上的单个文件。文件系统通常存储在分区内,这意味着它们占用分区表标识为特定分区的扇区范围。有许多不同的文件系统可用,例如 FAT、NTFS、HFS+、ext4fs 等。

为了使用文件系统,通常必须有一个完整的分区表,以便操作系统可以找到文件系统。(例外情况是文件系统占据整个磁盘,软盘很常见,USB 闪存驱动器有时也是如此。)TestDisk 通过搜索文件系统的证据并创建新的分区表条目来修复损坏的分区表,以匹配它找到的任何文件系统——本质上是从通常情况开始反向工作的。TestDisk 可以不是修复损坏之内但是,文件系统。为此,您需要使用特定于文件系统的修复工具,例如CHKDSK.EXEWindows 中针对 FAT 或 NTFS 的工具,或e2fsckLinux 中针对 ext2/3/4fs 的工具。

分区调整操作涉及调整文件系统数据结构和调整分区数据结构。当分区调整操作失败时,它可能使文件系统处于不一致状态,也可能使分区表处于不一致状态。如果分区表数据已被调整为要求比文件系统剩余部分所需的更小的分区,则您可能能够使用分区工具(如GPT fdisk ( gdisk)删除分区表条目并创建一个新的同一起点而是一个延伸到所需大小的端点。但这远不能保证一定有效,如果你犯了一个错误,你可能会最终制造更多的问题。不过,可能值得使用或其他工具来检查分区的大小;如果你试图缩小的 NTFS 分区在或其他修改分区的工具gdisk中显示为小gdisk仅有的(不是文件系统),那么可能值得尝试调整分区大小。另一方面,如果gdisk显示分区与下一个分区或磁盘末尾之间几乎没有空间,那么您不应该再弄乱它,而应该专注于文件系统级修复。

您的问题更有可能完全由文件系统损坏引起。如果是这样,并且无法CHKDSK.EXE恢复任何其他内容,那么您唯一的希望就在于第三方恢复工具。例如相簿例如,可能能够恢复单个文件。(我听说有些 Windows 专用工具在 NTFS 卷上比 PhotoRec 做得更好,但我手头没有任何 URL。)可能有一些第三方工具也能做得更好,但我不知道有这样的工具CHKDSK;我提到这一点是因为你可能值得在网上搜索一下这个主题。

还有一条评论:您处于一种状态,即在尝试恢复磁盘时对磁盘造成的损坏几乎与不发生任何坏事的可能性一样大。因此,最好对磁盘进行低级备份。有 Windows 工具可以执行此操作,但我不熟悉它们。在 Linux 中,类似这样的操作dd if=/dev/sda of=/path/to/backup/file.img可以解决问题,/path/to/backup/另一个物理磁盘上具有足够可用空间来容纳目录的路径在哪里全部的您正在备份的磁盘(/dev/sda在此示例中)。如果您未能进行此类备份,则所犯的任何错误都将使恢复某些数据变得更加困难,甚至不可能。

如果以上这些都超出你的能力范围,你可以使用付费数据恢复服务。不过我手头上没有任何 URL,而且这类服务通常价格昂贵。

相关内容