A capacidade do usuário SMART e o valor do tamanho do fdisk -l são diferentes. Por que? Problema de segurança?

A capacidade do usuário SMART e o valor do tamanho do fdisk -l são diferentes. Por que? Problema de segurança?

Só estou me perguntando por que o tamanho da minha unidade que o smartctl ("Capacidade do usuário") mostra difere do valor que fdisk -l, dmesg, hdparm mostra e difere dos valores de especificação da unidade na folha de dados. Preciso de algumas dicas para interpretar esses valores.

Primeiro fiz um

dd_rescue /dev/zero /dev/sdf 

até que dd_rescue seja interrompido com "sem espaço no dispositivo".

O valor transferido foi de 3000558944256 bytes. É semelhante à quantidade de bytes fdisk -l e dmesg.

smartctl -x diz:

=== 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 diz:

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 diz:

[  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)

Especificação da unidade no site da WD:

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

hdparm --dco-identificar /dev/sdf

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

hdparm -N /dev/sdf

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

O problema: é uma diferença de 483.840 bytes das informações SMART para os valores dd_rescue, fdisk e dmesg. E a especificação do produto mostra que a unidade é 65.535 setores maior do que o relatado à SMART e não pode ser acessada através do LBA. Então eu tenho 3 valores de tamanho que não entendo.

Eu calculei e descobri que

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

Talvez isso tenha algum significado, que os bytes ausentes sejam n vezes o tamanho do setor? Alguns setores são inacessíveis? Por que? É da tradução LBA -> CHS?

A unidade é nova na loja. SMART não mostra setores pendentes, eventos de realocação e setores realocados.

Fiz alguns experimentos adicionais:
No meu disco rígido interno "Hitachi Deskstar T7K500" os valores SMART e fdisk não diferem.
No meu disco rígido USB externo "SAMSUNG SpinPoint F2 EG" os valores SMART e fdisk não diferem. Está apenas no meu disco rígido USB externo (Western Digital My Book).

Talvez haja algum espaço reservado? Para que? Talvez tenha algo a ver com a capacidade de criptografia do hardware (não ativada)?

Será que existem setores defeituosos na unidade que o firmware remapeou internamente e não reportou à SMART?

A unidade veio com um sistema de arquivos NTFS defeituoso que pode ser reparado. Mas acho que um novo disco rígido não deveria ter um sistema de arquivos corrompido. Talvez aqui houvesse um remapeamento interno de setores?

Acabei de descobrir que minha outra unidade USB externa Western Digital (Western Digital My Passport Essential SE) tem o mesmo problema, há 2.842.624 bytes faltando entre a saída SMART e a saída fdisk -l. (mas existem setores pendentes nesta unidade).

Acho que isso pode até ser um problema de segurança:

Normalmente, com o comando dd_recue você pode ter certeza de sobrescrever todo o disco, mas com esse problema de diferença de bytes, não tenho certeza se tudo foi sobrescrito (eu sei, setores fisicamente defeituosos e provavelmente setores remapeados internamente e setores pendentes podem não estar acessíveis e não pôde ser substituído, mas não há setores remapeados no log SMART).

Nesse meio tempo, ouvi falar do conceito de "área protegida de host" e DCO, mas o dmesg não deu nenhuma dica sobre isso. O sistema operacional é OpenSuse 12.2 e a versão do kernel (uname -r) é "3.4.11-2.16-desktop".

Além disso encontrei este site:
https://unix.stackexchange.com/questions/139705/why-does-hdparm-see-dois-valores-diferentes-para-o-tamanho-de-uma-unidade
o que também poderia ser uma dica. Mas calculei meus valores e não encontrei a solução.

Alguém tem dicas ou uma explicação para isso?

As perguntas são:
1. Por que existe uma diferença de 483.840 bytes entre o SMART Info e o dmesg?
2. Por que existe uma diferença de 65.535 setores entre a especificação HD e os setores LBA?
3. Existe uma área protegida de host ou DCO na unidade? Como descobrir?
4. Qual é o tamanho real do meu disco rígido e como posso apagá-lo com segurança (presumo que a ATA SECURITY ERASE UNIT não funcionará via USB, tentarei mais tarde)

Obrigado!

Responder1

Esta não é uma resposta, mas pode ajudar. Tenho uma situação semelhante com um disco rígido externo USB relatando capacidade diferente quando consultado de maneiras diferentes.

smartctl -i -d scsi /dev/sdbdá:

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.

No entanto, smartctl -i -d sat /dev/sdbdá:

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

Eles diferem não apenas na capacidade, mas também no nome do modelo e se é ou não relatado que o tamanho do setor físico é de 4.096 bytes. Agora, no meu caso:

  • hdparm -I /dev/sdbparece ver a maior capacidade / informações do setor físico de 4KiB.

  • hdparm -g /dev/sdb, e fdisk -l /dev/sdbtodos mostram informações de menor capacidade/setor físico 512B.cat /sys/block/sdb/sizecat /sys/block/sdb/queue/physical_block_size

Quanto à questão de segurança, não haveria problema se ninguém jamais gravou dados confidenciais nos setores “inacessíveis”. fdisknão consigo vê-los e, no meu caso, o Windows também não os vê. Provavelmente eles nunca pertenceram a uma partição.

No entanto, parece que algumas ferramentas LVM ficam confusas com a discrepância:https://unix.stackexchange.com/questions/139705/why-does-hdparm-see-dois-valores-diferentes-para-o-tamanho-de-uma-unidade/180808

informação relacionada