
答案1
正如我在评论中提到的,您可以用来losetup
“模拟”您的基座为您的驱动器所做的事情,即将每八个 512 字节的逻辑块作为一个 4096 字节的逻辑块公开给操作系统:
losetup -b 4096 -P -f -r /dev/sdX
您可以参考的手册页losetup
找出命令行中每个选项的含义/作用。
不幸的是,当不是-P
时似乎被破坏了,至少在我使用的 Linux 发行版中是这样的,因此还需要以下命令:-b
512
losetup
blockdev --rereadpt /dev/loopN
然后您可以使用以下任一方法blkid
查看分区/文件系统是否被正确识别:
blkid /dev/loopN*
接下来,在某处创建一个目录(可以使用任何你喜欢的名字)作为挂载点:
mkdir ~/meh
最后,挂载您想要访问/取回数据/文件的文件系统:
mount -r /dev/loopNpM ~/meh
(您需要安装 ntfs-3g。我不会在这里介绍如何检查/执行此操作。无论如何,它是特定于发行版的。)
下面是我使用 WSL 做的一个示例案例的截图:
请注意,在磁盘管理中已用 标识1
。您无需手动将其设置为脱机,因为会处理这个问题。卸载文件系统并分离 WSL 内的循环设备后,您可以使用 退出,然后使用 将驱动器从 WSL 中分离出来。\\.\PHYSICALDRIVE1
Disk 1
wsl mount --bare
exit
wsl --unmount \\.\PHYSICALDRIVEN
答案2
我有一个 7TB 内置硬盘,我一直通过 USB 使用对接接口在笔记本电脑上使用。现在我尝试将硬盘用作 PC 上的内置存储(通过 SATA)。但是,Windows 10 无法正确检测/读取硬盘。
看来您的扩展坞是一个特殊的扩展坞,它可以在只有 512 字节的磁盘上操作,同时向计算机模拟 4096 字节的扇区大小。
具体来说,HDD 的分区表是 GPT,但 Windows 错误地识别它(我认为是 MBR)并将其标记为 GPT 保护分区。
这是错误的。所谓的GPT Protective Partition
分区表是 GPT 分区表规范的一部分,其中包含两个分区表。第一个是“保护性 MBR”(位于 LBA 0 上),在您的情况下称为“GPT 保护分区”。其目的是让无法识别 GPT 结构的旧操作系统认为磁盘空间已被占用。这可以防止覆盖旧操作系统上的现有数据。
第二部分是 GPT 分区表(在 LBA 1 上)。 https://en.wikipedia.org/wiki/GUID_Partition_Table
问题似乎与对接接口的固件有关,因为通过对接站安装硬盘可以解决该问题。此处解释了类似的问题。但是,我无法访问对接站,所以我想知道是否可以使用 diskpart 或(最好是免费的)第三方工具修复分区表。
免费的第三方工具(如 Testdisk)会找到分区并相应地重写分区表。我不知道所用文件系统的内部结构是否会受到扇区大小变化的影响。