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 Web サイトのドライブ仕様:
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 にはそれについてのヒントは表示されませんでした。OS は 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 情報と 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/sdb
、より小さい容量 / 512B 物理セクターの情報を表示します。cat /sys/block/sdb/size
cat /sys/block/sdb/queue/physical_block_size
セキュリティの問題に関しては、誰も「アクセスできない」セクターに機密データを書き込んでいなければ問題ないはずです。fdisk
それらは見えませんし、私の場合、Windows もそれらを認識していません。おそらくそれらはパーティションに属したことがなかったのでしょう。
ただし、一部の LVM ツールではこの矛盾によって混乱が生じるようです。https://unix.stackexchange.com/questions/139705/why-does-hdparm-see-two-different-values-for-the-size-of-a-drive/180808