Dr. Strangelove Asked: 2022-07-14 21:02:22 +0800 CST2022-07-14 21:02:22 +0800 CST 2022-07-14 21:02:22 +0800 CST 从 GPT 保护分区恢复数据 772 我有一个 7TB 的内置硬盘,我一直在通过 USB 使用对接接口在我的笔记本电脑上使用它。现在我正在尝试将 PC 上的硬盘用作内部存储(通过 SATA)。但是,Windows 10 无法正确检测/读取 HDD。 具体来说,硬盘的分区表是 GPT 但 Windows 错误地识别它(我想是 MBR)并标记它GPT Protective Partition。 问题似乎与扩展坞接口的固件有关,因为通过扩展坞安装 HDD 可以解决问题。这里解释了一个类似的问题。但是,我无法访问扩展坞,所以我想知道是否可以使用diskpart(最好是免费的)第三方工具修复分区表。 我对保持数据完整的方法很感兴趣。 hard-drive boot 3 个回答 Voted Best Answer Tom Yan 2022-07-15T17:49:05+08:002022-07-15T17:49:05+08:00 正如我在评论中提到的,您可以使用losetup“模拟”您的扩展坞为您的驱动器所做的事情,即将每八个 512 字节的逻辑块作为一个 4096 字节的逻辑块公开给操作系统: losetup -b 4096 -P -f -r /dev/sdX 您可以参考手册页losetup以了解命令行中每个选项的含义 / 的作用。 不幸的是 is not-P似乎坏了,至少在我使用的 Linux 发行版版本中,所以还需要以下命令:-b512losetup blockdev --rereadpt /dev/loopN 然后您可以使用其中一个blkid来查看分区/文件系统是否被正确识别: blkid /dev/loopN* 接下来,在某处创建一个目录(使用您喜欢的任何名称)作为要使用的挂载点: mkdir ~/meh 最后,挂载您想要访问/取回您的数据/文件的文件系统: mount -r /dev/loopNpM ~/meh (您需要安装 ntfs-3g。我不打算在这里介绍如何检查/执行此操作。无论如何它是特定于发行版的。) 这是我使用 WSL 做的示例案例的屏幕截图: 请注意,1in在磁盘管理\\.\PHYSICALDRIVE1中标识为。Disk 1您无需手动将其设置为脱机,因为wsl mount --bare它会照顾到这一点。卸载文件系统并分离 WSL 中的循环设备后,您可以exit使用wsl --unmount \\.\PHYSICALDRIVEN. r2d3 2022-07-15T14:15:41+08:002022-07-15T14:15:41+08:00 我有一个 7TB 的内置硬盘,我一直在使用扩展坞接口通过 USB 在我的笔记本电脑上使用它。现在我正在尝试将 PC 上的硬盘用作内部存储(通过 SATA)。但是,Windows 10 无法正确检测/读取 HDD。 您的扩展坞似乎是一个特殊的扩展坞,它模拟计算机的 4096 字节扇区大小,同时在只有 512 字节的磁盘上运行。 具体来说,硬盘的分区表是 GPT,但 Windows 错误地识别它(我想是 MBR)并将其标记为 GPT 保护分区。 那是错的。所谓的GPT Protective Partition是 GPT 分区表规范的一部分,它包含两个分区表。在您的情况下,第一个是称为“GPT 保护分区”的“保护 MBR”(在 LBA 0 上)。其目的是使遗留操作系统认为无法识别磁盘空间已被占用的 GPT 结构。这可以防止覆盖旧操作系统上的现有数据。 第二部分是 GPT 分区表(在 LBA 1 上)。 https://en.wikipedia.org/wiki/GUID_Partition_Table 问题似乎与扩展坞接口的固件有关,因为通过扩展坞安装 HDD 可以解决问题。这里解释了一个类似的问题。但是,我无法访问扩展坞,所以我想知道是否可以使用 diskpart 或(最好是免费的)第三方工具修复分区表。 像 Testdisk 这样的免费第三方工具会找到分区并相应地重写分区表。我不知道所使用的文件系统的内部结构是否受到扇区大小变化的影响。 Andrew 2022-07-15T01:50:33+08:002022-07-15T01:50:33+08:00 您可以做的是从 GPT 分区恢复数据: 您可以从备份中恢复 如果您已经为这种情况做好了准备,您可以直接从备份中恢复数据。这将是您恢复任何丢失数据的最快和最有效的方法,因为您几乎可以保证数据随时可用。 使用数据恢复软件 幸运的是,如果您发现自己的 GPT 分区已经消失,您可以使用数据恢复软件恢复其中的数据。在线提供各种数据恢复软件,您可以使用其中任何一种。
正如我在评论中提到的,您可以使用
losetup
“模拟”您的扩展坞为您的驱动器所做的事情,即将每八个 512 字节的逻辑块作为一个 4096 字节的逻辑块公开给操作系统:您可以参考手册页
losetup
以了解命令行中每个选项的含义 / 的作用。不幸的是 is not
-P
似乎坏了,至少在我使用的 Linux 发行版版本中,所以还需要以下命令:-b
512
losetup
然后您可以使用其中一个
blkid
来查看分区/文件系统是否被正确识别:接下来,在某处创建一个目录(使用您喜欢的任何名称)作为要使用的挂载点:
最后,挂载您想要访问/取回您的数据/文件的文件系统:
(您需要安装 ntfs-3g。我不打算在这里介绍如何检查/执行此操作。无论如何它是特定于发行版的。)
这是我使用 WSL 做的示例案例的屏幕截图:
请注意,
1
in在磁盘管理\\.\PHYSICALDRIVE1
中标识为。Disk 1
您无需手动将其设置为脱机,因为wsl mount --bare
它会照顾到这一点。卸载文件系统并分离 WSL 中的循环设备后,您可以exit
使用wsl --unmount \\.\PHYSICALDRIVEN
.您的扩展坞似乎是一个特殊的扩展坞,它模拟计算机的 4096 字节扇区大小,同时在只有 512 字节的磁盘上运行。
那是错的。所谓的
GPT Protective Partition
是 GPT 分区表规范的一部分,它包含两个分区表。在您的情况下,第一个是称为“GPT 保护分区”的“保护 MBR”(在 LBA 0 上)。其目的是使遗留操作系统认为无法识别磁盘空间已被占用的 GPT 结构。这可以防止覆盖旧操作系统上的现有数据。第二部分是 GPT 分区表(在 LBA 1 上)。 https://en.wikipedia.org/wiki/GUID_Partition_Table
像 Testdisk 这样的免费第三方工具会找到分区并相应地重写分区表。我不知道所使用的文件系统的内部结构是否受到扇区大小变化的影响。
您可以做的是从 GPT 分区恢复数据:
您可以从备份中恢复 如果您已经为这种情况做好了准备,您可以直接从备份中恢复数据。这将是您恢复任何丢失数据的最快和最有效的方法,因为您几乎可以保证数据随时可用。
使用数据恢复软件 幸运的是,如果您发现自己的 GPT 分区已经消失,您可以使用数据恢复软件恢复其中的数据。在线提供各种数据恢复软件,您可以使用其中任何一种。