fdisk 中显示 GPT 分区,但 gparted 没有显示分区

fdisk 中显示 GPT 分区,但 gparted 没有显示分区

这真是令人沮丧。我找不到有类似问题的人。

首先,我的预装 Windows PC 停止工作,我无法再将其打开,并且我将它送去维修。但首先我想移除硬盘并将其连接到另一台 PC,以便我可以恢复其中的一些数据。

所以我把这个硬盘连接到另一台装有 Ubuntu 的 PC,但它没有自动挂载。所以接下来我尝试使用以下命令查看分区fdisk -l

Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 244190646 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start        End    Sectors Size Id Type
/dev/sdb1           1 4294967295 4294967295  16T ee GPT

好的,没有问题。接下来我尝试手动挂载分区:

$ sudo mount -t ntfs /dev/sdb1 /windows
ntfs-3g: Failed to access volume '/dev/sdb1': No such file or directory

这不起作用。然后我尝试在中查看它gparted,它显示整个sdb磁盘为未分配空间。我不明白。/dev/sdb1显然存在,因为它出现在中fdisk,并且在我的 Windows PC 上访问此分区没有任何问题。现在,由于我已将其连接到另一台 PC,它似乎丢失了分区表?但不完全是,因为它确实显示了该/dev/sdb1分区fdisk。我不确定发生了什么。

我也尝试用以下方法查看它gdisk

$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): i
No partitions

所以gdisk两者gparted都认为该磁盘没有分区,但fdisk显然显示有分区。有人能告诉我这里的问题是什么吗?

答案1

读这个:为什么当我的 USB 驱动器作为内部 SATA 驱动器插入时会显示损坏的数据?

那里的答案是:

外壳将驱动器作为高级格式 4Kn 设备暴露给计算机,允许使用 MBR 来兼容 Windows XP 系统。当驱动器从外壳中取出时,逻辑扇区格式的改变会导致分区表无效。

我猜你的情况正好相反:你有一个正常工作的内部 SATA 驱动器,当你通过 USB 连接它时,它似乎“损坏”了。

问题在于您的磁盘现在显示为Sector size (logical/physical): 4096 bytes / 4096 bytes,而以前是512 bytes / 4096 bytes

看来你的保护性MBR描述 MBR 支持的最大分区大小。当逻辑扇区大小为 512 B 时,它是 2 TiB(尽管您的磁盘小于 1 TiB),现在它是 16 TiB。

GPT 可能仍是完整的,但由于它从定义上的扇区 1 (LBA 1) 开始,因此当逻辑扇区大小为 512 B 时,它是在驱动器开头的 512 B 偏移处创建的。现在 LBA 1 表示 4096 B 偏移 - 就像旧的 LBA 8 一样。这就是为什么gparted他们gdisk看不到您的 GPT,因为他们查看了错误的位置。

解决方案:将驱动器直接连接到主板并再次使用Sector size (logical/physical): 512 bytes / 4096 bytes

我希望您还没有对不合适的逻辑扇区大小进行任何“恢复”。这可能会使情况变得更糟。

相关内容