Seagate 10TB 硬盘在 Ubuntu Xenial 上显示为 1.2TB

Seagate 10TB 硬盘在 Ubuntu Xenial 上显示为 1.2TB

我刚买了一个 10TB 的 Seagate NAS 硬盘,Ubuntu(以及 Debian)显示它为 1.2TB。10TB 大小是否还打破了另一个限制?我尝试在其上放置一个 gpt 分区表,但 parted 仍然看不到正确的大小。内核无法正确识别它,所以这可能是问题的根源。那么我该如何解决这个问题呢?

[  154.088570] scsi 6:0:0:0: Direct-Access     ST10000V N0004-1ZD101          PQ: 0 ANSI: 2 CCS
[  154.089768] sd 6:0:0:0: Attached scsi generic sg2 type 0
[  154.090364] sd 6:0:0:0: [sdb] 2353004544 512-byte logical blocks: (1.20 TB/1.10 TiB)
[  154.091486] sd 6:0:0:0: [sdb] Write Protect is off
[  154.091499] sd 6:0:0:0: [sdb] Mode Sense: 34 00 00 00
[  154.092608] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  154.104351] sd 6:0:0:0: [sdb] Attached SCSI disk
[  596.708969]  sdb:

答案1

您说这是 NAS 驱动器,这意味着您要么购买了作为完整 NAS 解决方案销售的产品(在这种情况下,它已经严重损坏,应该退回),要么将裸驱动器放在某种外壳中。如果是后者,那么问题几乎肯定是外壳具有 32 位寻址限制。这通常会导致磁盘容量“回绕”,有点像旧车上的里程表。在带有 5 位里程表的汽车中,一旦您达到 99,999 英里(或公里),里程表就会“回绕”并显示里程为 0,而汽车实际上行驶了 100,000 英里。当汽车的实际里程为 150,000 英里时,里程表读数为 50,000,依此类推。在具有 32 位限制的设备上也会发生类似的事情,但回绕点通常为 2 TiB,然后再次为 4 TiB、6 TiB 和 8 TiB。因此,您看到的是磁盘容量中超过 8 TiB 的部分。(请注意TB 与 TiB 不同;TB 小于 TiB,因此您看不到完整的 2 TB,更不用说 2 TiB(介于 8 TiB 和 10 TB 之间)。)

此类问题在 USB 外壳中极为常见。您将磁盘标识为NAS 设备。我不太熟悉这种类型的设备,但我的理解是,这些是文件级服务器;但您的输出将磁盘标识为/dev/sdb,即不是我期望真正的 NAS 会如何显示——除非您显示了 NAS 设备的内核输出。因此,我有点困惑。您可能需要通过确定所涉及的确切产品以及从何处获取内核输出(在您的 Ubuntu 计算机上还是在 NAS 上)来澄清问题。

无论如何,有几种可能的解决方案:

  • 直接连接-- 您可以将磁盘直接连接到计算机主板,而不必通过外部机箱。在 Linux 中,通过 SATA 端口直接连接的磁盘很少会出现此类问题。(Windows 用户就没那么幸运了;Windows 驱动程序有 32 位限制。)
  • 重新配置机柜-- 某些机柜配有开关,可以调整磁盘的处理方式。这些开关通常可以将八个 512 字节扇区“转换”为单个 4096 字节扇区,从而将 2 TiB 限制提高到 16 TiB。这足以处理您的 10 TB 磁盘。(不过,您应该知道,此更改将使现有分区定义无效,因此,只有在您尚未对磁盘进行分区并在其上存储数据的情况下才可以执行此操作。)
  • 更改接口方法-- 一些 USB 外壳还配有 eSATA 端口。使用 eSATA 通常可以解决该问题。
  • 获得新的外壳-- 如果所有其他方法都失败了,您通常可以通过购买新机箱来解决问题。如果我对您使用的 USB 机箱的怀疑是正确的,您可以购买一个可以进行我刚刚描述的扇区大小转换的机箱,以将容量提高到 16 TiB,或者您可以切换到具有不同类型接口的机箱,例如 eSATA 或真正的 NAS,它可以对磁盘本身进行分区并使用 NFS、SMB/CIFS 或其他更高级别的协议通过以太网进行通信。

相关内容