几年前,我用 dd 备份了我的笔记本电脑硬盘,这样我就可以安装 linux,但如果我想的话,可以恢复到 windows。我对 UEFI 了解不多,对 GPT 磁盘也一无所知,所以除了以下事情之外,我什么也没做:
dd if=/dev/sda of=somefile.bin bs=64K
几天前我恢复了它,TADA,分区中的 FS 无法识别。在 Windows 中,diskpart
它显示了正确数量的分区和正确的大小,但所有分区的 FS 都显示为 RAW。
在 Linux 中,gparted
它将所有内容显示为未识别或类似的内容。
有没有办法可以修复这个问题,让我的 Windows 分区再次可启动?我的意思是,我想将其升级到 Windows 10。我不介意丢失上面的数据,但我没有恢复盘,而且笔记本电脑附带的是 Windows 8,所以上面没有产品密钥或 COA。:(
任何帮助都将受到赞赏。
答案1
您的dd
操作备份了整个磁盘,包括 GPT 数据结构。这些数据结构定义了分区的起点和终点,因此它们必要的访问分区内的数据。如果您以相同的方式(恢复到/dev/sda
、不恢复到/dev/sda1
或其他分区)恢复,则存储在分区中的文件系统应该无法访问。因此,有些事情已经严重出错。我想到了四种可能性:
- 备份不良-- 您可能以指定以外的方式进行了备份。例如,您可能备份了一个分区(如
/dev/sda1
),而不是整个磁盘;或者您可能对备份进行了 gzip 压缩并忘记了这个细节;或者您可能使用了除 之外的工具dd
。在这种情况下,您必须弄清楚您实际上为了恢复数据。 - 糟糕的恢复-- 与上文相同,但在恢复方面。显然,您更接近这一点,因此您不太可能记错某些事情。
- 数据损坏-- 从备份时间到现在,您的备份文件可能已以多种方式损坏。如果发生这种情况,恢复可能很困难甚至不可能。另一方面,恢复可能就像使用文件系统修复工具一样简单(您需要在 Windows 中为 NTFS 执行此操作)。
- 不同的磁盘大小-- 如果原始磁盘和恢复磁盘的大小不同,则可能会出现问题:
- 如果恢复磁盘小于原始磁盘,则备份中将不存在辅助 GPT 数据结构,从而使分区表在技术上无效,尽管主分区表仍可访问。操作系统可能会或可能无法绕过此问题并访问分区,但如果大小差异大于几个扇区,则至少一个分区可能严重损坏。在这种情况下,最好的办法是恢复到至少与原始磁盘一样大的磁盘。
- 如果您的恢复磁盘比原始磁盘大(即使只大一个扇区),备份 GPT 数据结构将不会位于其应在的位置。大多数操作系统应该能够应对这种情况,但如果您怀疑这是一个问题,您可以使用以下方法
gdisk
来解决问题:gdisk
在磁盘上启动。- 键入
x
以进入专家菜单。 - 键入
e
以重新定位备份数据结构。 - 键入
w
以保存您的更改。系统将要求您进行验证。请进行验证。
如果你不知道发生了什么,以及如何纠正这个问题,我唯一的建议是使用测试磁盘在恢复的磁盘上。如果幸运的话,TestDisk 可能能够解决损坏的分区表问题,但如果问题出在备份被 gzip 压缩而您尚未解压缩的情况下,TestDisk 将毫无用处。如果文件系统数据结构本身已损坏,情况也是如此。