我只是想知道為什麼 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 訊息與 dd_rescue、fdisk 和 dmesg 值之間存在 483840 位元組的差異。產品規格顯示該驅動器比向 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 檔案系統,但可以修復。但我認為新的硬碟不應該有損壞的檔案系統。也許這是部門的內部重新映射?
我剛剛發現我的另一個 Western Digital 外接 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 安全擦除單元無法通過 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/sdb
、cat /sys/block/sdb/size
和cat /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