fdisk 在故障磁盘上报告错误的磁盘大小

fdisk 在故障磁盘上报告错误的磁盘大小

在尝试恢复之前尝试备份故障磁盘时,我发现其大小报告错误。这意味着什么?

我的磁盘应该是 3.0TB(~2.73 TiB),包含一个 NTFS 分区(以及当您要求单个大分区时 Windows 添加的任何内容)

dmesg报告(将故障磁盘插入 USB 后):

[ 6802.040821] sd 14:0:0:0: Attached scsi generic sg4 type 0
[ 6802.040997] sd 14:0:0:0: [sde] 1565565872 512-byte logical blocks: (802 GB/747 GiB)
[ 6802.041467] sd 14:0:0:0: [sde] Write Protect is off
[ 6802.041473] sd 14:0:0:0: [sde] Mode Sense: 00 38 00 00

虽然fdisk -l报告

Disk /dev/sde: 746.5 GiB, 801569726464 bytes, 1565565872 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BA3C953A-7F37-4DBA-864A-9B551DB94B48

Device      Start        End    Sectors  Size Type
/dev/sde1      34     262177     262144  128M Microsoft reserved
/dev/sde2  264192 5860530175 5860265984  2.7T Microsoft basic data

明显显示分区比磁盘本身还大,这让人感到困惑gparted

此外,mount --read-only -t ntfs /dev/sde1失败NTFS signature is missing

问:这是什么意思?只是 GPT 出了问题?2/3 的物理存储出现硬件故障(如无法访问的表面/读取头)?

附注:

  • 故障发生时 Windows 崩溃chkdsk
  • 该磁盘是 3.5 英寸 HDD,位于外部 USB 盒中(外部供电)

答案1

很有可能,这就是问题的根源:

该磁盘是 3.5 英寸 HDD,位于外部 USB 盒中(外部供电)

外部 USB 机箱通常会对磁盘扇区值施加 32 位限制。2^32 个扇区乘以 512 字节扇区大小意味着这些机箱最多可以处理 2 TiB 磁盘。通常,使用大于此大小的磁盘的症状是,磁盘大小被报告为磁盘真实大小模 2 TiB - 也就是说,您的 2.73 TiB 磁盘被报告为 0.73 TiB。这类似于旧车的里程表“翻滚” - 一辆里程表为 5 位且行驶里程为 127,000 英里的汽车将显示“27,000 英里”的值,因为“1”没有第六位数字。当然,新车都支持六位里程表,就像较新的磁盘接口方法(如 SATA)支持超过 32 位的扇区地址一样 - 但大多数(可能所有)USB 机箱仅支持 32 位扇区地址。

您的问题有三种解决方案:

  • 将磁盘用作内部磁盘或 eSATA(外部 SATA)磁盘。这样您就可以使用其现有的分区表以及在对磁盘进行分区并在内部使用时存储在磁盘上的任何数据。理论上,支持 64 位扇区地址的 USB 外壳也可以使用,但我不知道有这样的外壳。
  • 获取一个新的 USB 外壳,将八个 512 字节扇区的块转换为单独的 4096 字节扇区。这会将限制从 2 TiB 提高到 16 TiB。问题是您当前的分区表将变为无效,因此您需要备份来自内部​​连接的所有数据,然后将磁盘放入新外壳中,然后重新对磁盘进行分区并恢复数据。(有时可以弄乱分区表以避免备份和恢复过程,但这样做需要专业知识,我怀疑您缺乏这些知识,所以我不建议您尝试。根据确切的分区布局,也可能根本不可能。)
  • 只使用磁盘容量的一小部分。您需要备份数据并创建一个新的分区表,以便您只访问部分磁盘。显然,这不是一个好的长期解决方案,但如果您迫切需要使用磁盘,它可能在短期内就足够了现在但不需要立即发挥其全部能力。

相关内容