SMART 用户容量和 fdisk -l 大小值不同。为什么?安全问题?

SMART 用户容量和 fdisk -l 大小值不同。为什么?安全问题?

我只是想知道为什么 smartctl(“用户容量”)显示的驱动器大小与 fdisk -l、dmesg、hdparm 显示的值不同,并且与数据表中的驱动器规格值不同。我需要一些提示来解释这些值。

首先我做了一个

dd_rescue /dev/zero /dev/sdf 

直到 dd_rescue 因“设备上没有剩余空间”而中断。

传输量为 3000558944256 字节。它与 fdisk -l 和 dmesg 的字节数相似。

smartctl -x 说:

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Green (Adv. Format)
(...)
Firmware Version: 80.00A80
User Capacity:    3.000.559.428.096 bytes [3,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ACS-2 (revision not indicated)
Local Time is:    Thu Jul  3 19:10:34 2014 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

fdisk -l 说:

Note: sector size is 4096 (not 512)

Disk /dev/sdf: 3000.6 GB, 3000558944256 bytes
255 heads, 63 sectors/track, 45599 cylinders, total 732558336 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

dmesg 说:

[  176.168005] sd 5:0:0:0: [sdf] Spinning up disk.............ready
[  186.352957] sd 5:0:0:0: [sdf] 732558336 4096-byte logical blocks: (3.00 TB/2.72 TiB)

hdparm -I -g /dev/sdf

/dev/sdf:
 geometry      = 364797/255/63, sectors = 5860466688, start = 0             
(that's the fdisk -l value / 512)

 LBA48  user addressable sectors: 5860467633 
(that's the SMART reported value / 512)

WD 网站上的驱动器规格:

User sectors per drive: 5860533168
(That is LBA48 Value + 65 535) (?!)

hdparm --dco-identify /dev/sdf

DCO Revision: 0x0002
(...)
Real max sectors: 5860533168

hdparm -N /dev/sdf

/dev/sdf:
 READ_NATIVE_MAX_ADDRESS_EXT failed: Input/output error    

问题:SMART 信息中的 483840 字节与 dd_rescue、fdisk 和 dmesg 值存在差异。产品规格显示驱动器比报告给 SMART 的扇区大 65535 个扇区,无法通过 LBA 访问。所以我有 3 个我不理解的大小值。

我计算了一下,发现

483840 / 4096 = 118
483840 / 512 = 945
(483840 / 63 (sectors/track) = 7 680)

也许这有一定的意义,即丢失的字节是扇区大小的 n 倍?有些扇区无法寻址吗?为什么?是从 LBA -> CHS 转换而来的吗?

该驱动器是新从店里买来的。SMART 显示没有待处理的扇区、没有重新分配事件,也没有重新分配的扇区。

我做了一些额外的实验:
在我的内置硬盘“Hitachi Deskstar T7K500”上,SMART 和 fdisk 值没有区别。
在我的外置 USB 硬盘“SAMSUNG SpinPoint F2 EG”上,SMART 和 fdisk 值没有区别。只有在我的外置 USB 硬盘(Western Digital My Book)上才有区别。

也许有一些预留空间?为了什么?也许这与硬件加密功能(未打开)有关?

会不会是驱动器上有坏扇区,而固件在内部重新映射了它但并未向 SMART 报告?

该驱动器带有一个可修复的损坏的 ntfs 文件系统。但我认为新硬盘驱动器的文件系统不应该损坏。也许这是内部扇区重新映射?

我刚刚发现我的另一个西部数据外置 USB 驱动器(Western Digital My Passport Essential SE)也有同样的问题,SMART 输出和 fdisk -l 输出之间缺少 2 842 624 字节。 (但此驱动器上有待处理的扇区)。

我认为这甚至可能是一个安全问题:

通常情况下,使用 dd_recue 命令,您可以确保覆盖整个磁盘,但是由于字节差异问题,我不确定是否所有内容都被覆盖(我知道,物理上坏的扇区和可能内部重新映射的扇区和待处理的扇区可能无法访问并且无法被覆盖,但 SMART 日志中没有重新映射的扇区)。

在这期间我听说过“主机保护区”和 DCO 的概念,但 dmesg 没有显示任何关于此的提示。操作系统是 OpenSuse 12.2,内核版本 (uname -r) 是“3.4.11-2.16-desktop”。

此外我还发现了这个网站:
https://unix.stackexchange.com/questions/139705/why-does-hdparm-see-two-different-values-for-the-size-of-a-drive
这也可能是提示。但我计算了我的值,但没有找到解决方案。

有人对此有提示或解释吗?

问题是:
1. 为什么 SMART Info 和 dmesg 之间有 483840 字节的差异?
2. 为什么 hd 规范和 LBA 扇区之间有 65535 个扇区差异?
3. 驱动器上是否有主机保护区或 DCO?如何找出?
4. 我的硬盘实际上有多大,我如何安全擦除它(我认为 ATA SECURITY ERASE UNIT 无法通过 USB 工作,我稍后会尝试)

谢谢!

答案1

这不是一个答案,但可能会有所帮助。我遇到过类似的情况,USB 外置硬盘在以不同方式查询时报告不同的容量。

smartctl -i -d scsi /dev/sdb给出:

smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.14.27-std-def-alt1] (ALT Linux 6.2-alt0.M70P.1)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               BUFFALO
Product:              HD-PNTU3
Revision:             0001
User Capacity:        1,000,173,428,736 bytes [1.00 TB]
Logical block size:   512 bytes
Logical Unit id:      0x6000039426a846b30000000000000000
Device type:          disk
Local Time is:        Thu Jan 22 19:57:29 2015 JST
SMART support is:     Unavailable - device lacks SMART capability.

但是,smartctl -i -d sat /dev/sdb给出:

smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.14.27-std-def-alt1] (ALT Linux 6.2-alt0.M70P.1)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Toshiba 2.5" HDD MQ01ABD...
Device Model:     TOSHIBA MQ01ABD100
Serial Number:    72D7F1JHS
LU WWN Device Id: 5 000039 426a846b3
Firmware Version: AX0A1U
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Jan 22 19:57:36 2015 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

它们不仅在容量上有所不同,而且在型号名称上也有所不同,并且是否报告物理扇区大小为 4096 字节。现在,就我的情况而言:

  • hdparm -I /dev/sdb似乎看到了更大的容量/4KiB物理扇区的信息。

  • hdparm -g /dev/sdb、、fdisk -l /dev/sdbcat /sys/block/sdb/sizecat /sys/block/sdb/queue/physical_block_size显示较小的容量/512B物理扇区信息。

至于安全问题,如果没有人将敏感数据写入“不可访问”扇区,那就没问题了。fdisk看不到它们,就我而言,Windows 也看不到它们。可能它们从未属于过分区。

然而,一些 LVM 工具似乎确实对这种差异感到困惑:https://unix.stackexchange.com/questions/139705/why-does-hdparm-see-two-different-values-for-the-size-of-a-drive/180808

相关内容