Como verificar se um disco é SSHD (unidade híbrida) usando comandos ATA

4

Depois de analisar esta questão:

( Como saber se um disco é um SSD ou um HDD )

Eu sou capaz de detectar HDD e SSD. O problema agora é que eu não sei como detectar SSHD, já que a ferramenta hdparm mostra que meu disco (ST1000DX001) é um disco rígido clássico.

Sou capaz de detectá-lo com base em qualquer uma das informações coletadas pela emissão do comando IDENTIFY Ata?

    
por Peter Cerba 04.08.2016 / 13:59

1 resposta

5

Eu não acho que exista uma maneira absolutamente certa de detectar um SSHD, mas se a unidade for conhecida por smartctl , você poderá usar smartctl -P show .

por exemplo,

$ sudo smartctl -P show /dev/sda
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.6-2.dmz.2-liquorix-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

Drive found in smartmontools Database.  Drive identity strings:
MODEL:              ST4000DX001-1CE168
FIRMWARE:           CC44
match smartmontools Drive Database entry:
MODEL REGEXP:       ST[124]000DX001-.*
FIRMWARE REGEXP:    .*
MODEL FAMILY:       Seagate Desktop SSHD
ATTRIBUTE OPTIONS:  188 Command_Timeout
                    240 Head_Flying_Hours

grep que por ^MODEL FAMILY:.*SSHD

smartctl conhece (pelo menos alguns) os SSHDs da Seagate, mas não o Western Digital WD10J31X (um SSHD de laptop de 1 TB com 8 GB de cache) e provavelmente outros.

$ grep -i sshd /var/lib/smartmontools/drivedb/drivedb.h 
  { "Seagate Laptop SSHD", // tested with ST500LM000-1EJ162/SM11
  { "Seagate Desktop SSHD", // tested with ST2000DX001-1CM164/CC43

Se você tem um SSHD que smartctl não conhece, envie um relatório de bug ou patch.

Outra coisa que me ocorre é que a maioria dos HDDs (todos?) suporta apenas velocidades de transferência SATA2, porque 3,0Gbps é muito mais do que eles são capazes de qualquer maneira.

Portanto, se você determinou que uma unidade é um disco rígido, é possível fazer algo como hdparm -I /dev/XXX | grep -E 'Gen3 signaling speed|6.0Gb/s)' para ver se é um SSHD.

por exemplo. no meu sistema com uma mistura de HDDs WD, ST e OCZ, SSHDs e SSDs:

$ list_disks
sda ST4000DX001-1CE168_Z303PTHA
sdb ST4000DX001-1CE168_Z303PSH6
sdc ST4000DX001-1CE168_Z302ZSGB
sdd ST4000DX001-1CE168_Z303PVZ9
sde WDC_WD10EACS-00ZJB0_WD-WCASJ2114122
sdf WDC_WD10EACS-00ZJB0_WD-WCASJ2195141
sdg WDC_WD10EARS-00Y5B1_WD-WMAV50933036
sdh ST31000528AS_9VP18CCV
sdi OCZ-VECTOR_OCZ-8RL5XW08536INH7R
sdj OCZ-VECTOR_OCZ-0974C023I4P2G1B8

$ for i in /dev/sd? ; do echo -n "$i: " ; sudo hdparm -I "$i" | 
    grep -E 'Gen3 signaling speed|6.0Gb/s)' || echo ; done
/dev/sda:      *    Gen3 signaling speed (6.0Gb/s)
/dev/sdb:      *    Gen3 signaling speed (6.0Gb/s)
/dev/sdc:      *    Gen3 signaling speed (6.0Gb/s)
/dev/sdd:      *    Gen3 signaling speed (6.0Gb/s)
/dev/sde: 
/dev/sdf: 
/dev/sdg: 
/dev/sdh: 
/dev/sdi:      *    Gen3 signaling speed (6.0Gb/s)
/dev/sdj:      *    Gen3 signaling speed (6.0Gb/s)

Os SSHDs e o SSD reportam Gen3, os HDDs não.

Não tenho certeza de que isso é 100% confiável ... meus HDDs são um pouco ultrapassados, os HDDs mais novos podem usar o Gen3 de qualquer maneira, apenas para que os fabricantes possam padronizar em um único chip / placa de interface.

    
por 04.08.2016 / 14:30