如何将 Western Digital “Ultrastar® DC HC530 14TB HDD”从 512e 转换为 4Kn 扇区大小?(在 Windows 10 中)

Fab*_*Fab 8 hard-drive sata sectors advanced-format windows-10

背景

\n

西部数据“Ultrastar\xc2\xae DC HC530 14TB HDD”(型号:WUH721414ALE6L4)(SATA 接口)默认只有 512e 扇区大小。

\n

根据下面的 2 个西部数据文档,“** 512e 型号可以转换为 4Kn 格式,反之亦然。 ”:

\n

a) WD 部件号选择器(请参阅脚注 1)( https://documents.westerndigital.com/content/dam/doc-library/en_us/assets/public/western-digital/product/data-center-drives /ultrastar-dc-hc500-series/data-sheet-part-numbers-ultrastar-dc-hc530.pdf )

\n

b) 产品手册(请参阅第 17 页) ( https://documents.westerndigital.com/content/dam/doc-library/en_us/assets/public/western-digital/product/data-center-drives/ultrastar- dc-hc500-series/product-manual-ultrastar-dc-hc530-sata-oem-spec.pdf )

\n

但是,西部数据没有提供任何指令或软件/实用程序来执行从 512e 到 4Kn 扇区大小的转换(在 Windows 10 中)。

\n

我已写信给西部数据支持门户,但他们没有提供任何有用的回复。

\n

问题

\n

感谢您就如何将 Western Digital“Ultrastar\xc2\xae DC HC530 14TB HDD”从 512e 扇区大小转换为 4Kn 扇区大小提供建议。(在 Windows 10 中)

\n

kal*_*iya 6

您需要使用西部数据公司的名为“Hugo”的程序。您不能只从他们的网站下载它,但如果您在 1-2 周后联系他们提出支持请求,有人会联系您并向您发送下载链接。

我使用的是 HUGO 7.5.4 (win64),随附的文档专门列出了要兼容的 WUH721818ALE6L4 (=HC550)。然后我做了以下操作,将 18TB HGST(现在是 WD)驱动器的格式从默认的 512e 更改为 4Kn

C:\Program Files\WDC\HUGO\bin>hugo s --device
     Manuf.       Model               Serial                Interface       Capacity  Type  Firmware
----------------------------------------------------------------------------------------------------
  1) HGST         WUH721818ALE6L4     XXXXXXX              SATA            18000 GB  HDD   PCGNW232
        Device handles: \\.\PhysicalDrive2

C:\Program Files\WDC\HUGO\bin>hugo format -g \\.\PhysicalDrive2 -b 4096 --fastformat -n max

        ******************************** WARNING **********************************
           The Format command will result in loss of data on the specified device.
           This device might be your boot device and it won't be protected.
        ******************************** WARNING **********************************

                Are you sure you want to Format this device? (Y/N) y
            
Format device on 1 Device(s)...

C:\Program Files\WDC\HUGO\bin>hugo s --device
     Manuf.       Model               Serial                Interface       Capacity  Type  Firmware
----------------------------------------------------------------------------------------------------
  1) HGST         WUH721818ALE6L4     XXXXXXX              SATA            18000 GB  HDD   PCGNW232
        Device handles: \\.\PhysicalDrive2

C:\Program Files\WDC\HUGO\bin>hugo s --device -b
     Manuf.       Model               Serial                Interface       Capacity  Type  Firmware
----------------------------------------------------------------------------------------------------
  1) HGST         WUH721818ALE6L4     XXXXXXX              SATA            18000 GB  HDD   PCGNW232
        Block Size: 4096                Native Block Size: 4096
        Device handles: \\.\PhysicalDrive2
Run Code Online (Sandbox Code Playgroud)

请注意“块大小” - 以前为 512 - 现在在格式后将“本机块大小”与 4096 (=4Kn) 匹配

更新:

与此同时,我购买了一个 wuh722222ale6l4 (=HC570 22TB),它没有具体列出,但使用上述过程将磁盘更改为 4Kn,再次使用 HUGO 7.5.4(尝试风险自负!)。

其他注意事项:在格式化过程中不要更改 cmd 窗口的大小,因为这会导致显示混乱。我认为它立即以“失败”结束,并按一个键使其继续,但它仍然应用了更改。请注意,一旦完成并输入“hugo s --device -b”,应用程序反应非常慢,并且仍然报告“块大小”为 512。我通过 USB 适配器将其连接到 PC,从 USB 拔出后,插入它返回并重新运行命令,它现在确实显示“块大小:4096”。

将其安装在 Synology NAS 中时,检测到磁盘为“4K Native HDD”= yes。

Synology NAS 中的 HC570 22TB 4Kn


Low*_*wer 6

但是,没有任何说明...

这并不完全正确,根据该产品规范,该驱动器支持名为 的 ATA 命令Set Sector Configuration Ext,该命令可用于更改逻辑扇区大小,而无需使用供应商的任何修复程序,例如 HUGO;Set Sector Configuration Ext (B2h)有关此命令的详细说明,请参见第 287 页部分。

这些官方信息对于普通用户来说可能过于技术性,因此我尝试具体解释您应该执行哪些步骤以及原因;但是,此处提供的信息仅供参考,您必须对发送到磁盘驱动器的任何命令承担全部责任,并且只有在了解每个步骤的意图后才能进行练习。

我成功地将 HC530 14TB 驱动器的逻辑扇区大小从 512 更改为 4096。由于仅改变逻辑扇区大小,物理扇区大小始终为4096,因此该操作不会影响磁盘上已有的数据;但是,始终建议在尝试此类操作之前备份所有重要数据。

我在 FreeBSD 系统中执行了以下步骤,如果特定命令在其系统上不可用,任何使用不同操作系统的人都应该使用等效的命令/工具进行学习。

在继续之前,请确保没有程序正在使用该磁盘,并且没有从该磁盘安装文件系统。

该命令不是直接根据传入的值设置扇区大小,而是Set Sector Configuration Ext从名为 的预定义列表中设置扇区配置Sector Configuration Log,该列表作为 a 存储在磁盘上的General Purpose Log地址 0x27 处;每个条目称为一个Sector Configuration Descriptor12.21.13 Sector Configuration log有关日志结构的详细信息,请参阅第 217 页的产品文档部分。

我使用smartctl(8)来检索Sector Configuration Log我的驱动器,如下所示:

# smartctl --log gplog,0x2f /dev/ada8
smartctl 6.6 2017-11-05 r4594 [x86_64-unknown-freebsd10.4 FreeBSD 10.4-RELEASE-p14] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

General Purpose Log 0x2f [Set Sector Configuration], Page 0-0 (of 1)
0000000: 80 00 00 02 00 10 00 00 00 00 00 00 00 00 00 00 |................|
0000010: 80 00 08 02 40 10 00 00 00 00 00 00 00 00 00 00 |....@...........|
0000020: 80 00 10 02 80 10 00 00 00 00 00 00 00 00 00 00 |................|
0000030: 80 03 00 10 00 02 00 00 00 00 00 00 00 00 00 00 |................|
0000040: 80 03 40 10 08 02 00 00 00 00 00 00 00 00 00 00 |..@.............|
0000050: 80 03 80 10 10 02 00 00 00 00 00 00 00 00 00 00 |................|
0000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
...
Run Code Online (Sandbox Code Playgroud)

正如文档中所指定的,每个描述符的长度为 16 个字节,有效的描述符将设置第 7 位,可以在上面的输出中找到 6 个有效的描述符。

接下来我们需要找出哪个描述符的逻辑扇区大小为4096;位于描述符的偏移量 4处Logical Sector Size Setting field,大小为 4;请注意,描述符中的整数数据采用小端字节序;我们选择第一个描述符,因为它的值是00 10(0x1000 == 4096)

使用Set Sector Configuration Ext要求您传递描述符索引(在本例中为 0)作为sector_count参数,以及描述符的描述符检查值作为参数feature。描述符校验值大小为2,在描述符的偏移2处找到;所以当前情况下的描述符检查值为00 02。该规范还要求您设置device参数的位 6。

命令参数如下:

feature=0x0200
sector_count=0x0000
device=0x40
Run Code Online (Sandbox Code Playgroud)

其他参数未使用,应设置为 0。

我使用FreeBSD 上可用的camcontrol(8)命令来发送此 ATA 命令,语法如下:

comcontrol command <disk> [-v] -a "<command> <features> <lba_low> <lba_mid> <lba_high> <device> <lba_low_exp> <lba_mid_exp> <lba_high_exp> <features_exp> <sector_count> <sector_count_exp>" -r -
Run Code Online (Sandbox Code Playgroud)

其中选项-v在这里是可选的,它在命令失败时启用详细的错误消息;-r -具体来说,指示驱动器输出的命令寄存器值应在命令成功发送后打印到标准输出。

运行:

# camcontrol command ada8 -v -a "b2 00 00 00 00 40 00 00 00 02 00 00" -r -
50 00 00 00 00 00 00 00 00 00 00
Run Code Online (Sandbox Code Playgroud)

上述命令成功后验证逻辑扇区大小:

# smartctl --info /dev/ada8
smartctl 6.6 2017-11-05 r4594 [x86_64-unknown-freebsd10.4 FreeBSD 10.4-RELEASE-p14] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
...
User Capacity:    14,000,519,643,136 bytes [14.0 TB]
Sector Size:      4096 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
...
Run Code Online (Sandbox Code Playgroud)

您现在应该完全拔出驱动器并再次插入,以更新内核的视图其逻辑扇区大小;因为主机内核可能仍会在逻辑上将驱动器记住为 512 字节扇区,所以任何进一步的扇区访问都将无效,并可能导致 I/O 在内核中挂起,直到您重新插入驱动器。另外,内核应该能够毫无问题地使用本机 4096 字节扇区大小访问其扇区。