Não é possível executar dados SMART e autoteste no disco rígido externo


13

No momento, minha unidade externa não possui erros, mas eu só quero verificar manualmente para ter certeza.
Como visto na imagem abaixo, a opção para dados SMART e autoteste fica acinzentada. Veja também os detalhes sobre o disco rígido na própria imagem.

  1. Eu tentei correr, gksu gnome-disksmas ainda a opção está acinzentada.
  2. Corri sudo smartctl --all /dev/sdb --test=short -T permissive, recebi este erro:

smartctl 6.4-07-10 2014 r4002 [x86_64-linux-3.19.0-15-generic] (compilação local) Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

Falha na leitura da identidade do dispositivo: campo não suportado por erro scsi no comando scsi

=== INÍCIO DA SEÇÃO DE INFORMAÇÃO ===

Modelo do dispositivo: [Nenhuma informação encontrada]

Número de série: [Nenhuma informação encontrada]

Versão do firmware: [Nenhuma informação encontrada]

O dispositivo está: Não está no banco de dados smartctl [para detalhes, use: -P showall]

A versão do ATA é: [Nenhuma informação encontrada]

A hora local é: Qua 17 de junho às 11:33:46 2015 IST

O suporte SMART é: Ambíguo - as palavras 82-83 do ATA IDENTIFY DEVICE não aparecem se o SMART for suportado.

O suporte SMART é: Ambíguo - as palavras 85-87 do ATA IDENTIFY DEVICE não são exibidas se o SMART estiver ativado.

Um comando SMART obrigatório falhou: saindo. Para continuar, adicione uma ou mais opções '-T permissivas'.

insira a descrição da imagem aqui


Mesmo problema aqui. Posso acrescentar que isso acontece no Ubuntu 14.04 , mas NÃO no Ubuntu 12.04, onde o SMART é lido corretamente pela GUI e pela linha de comando. Alguma ideia?
Alvaro Gutierrez Perez

1
Encontrou a solução, ver a minha resposta
Alvaro Gutierrez Perez

Respostas:


13

Eu tive o mesmo problema. No meu caso, a SMART trabalhava corretamente no dispositivo há anos enquanto usava o Ubuntu 12.04 e, no Ubuntu 14.04 , acontecia exatamente o que você dizia na pergunta.

O problema está relacionado a um novo módulo do kernel que foi introduzido no Linux Kernel 3.15 chamado uas(USB Attached SCSI ) (consulte o comunicado de lançamento ).

Esse módulo agora é responsável pelo gerenciamento de dispositivos de armazenamento em massa USB. Há um tópico em que as pessoas reclamam que uasno kernel 3.15 está causando a falha de seus dispositivos USB. Outro diz que pode ser a causa de problemas SMART.

Felizmente, esses problemas parecem ter desaparecido no kernel 3.19 (que estou usando), pois meu dispositivo está sendo detectado corretamente. Somente o problema SMART permanece.

Para corrigi-lo, você precisa desativar o uso do uasmódulo para o dispositivo especificado.

Desativar uassem reiniciar

Primeiro, desconecte todos os dispositivos USB que possam estar usando. Em seguida, remova os módulos uase usb-storage:

sudo modprobe -r uas
sudo modprobe -r usb-storage

Em seguida, carregue o usb-storagemódulo com um parâmetro que diga para não usar uasem um determinado dispositivo:

sudo modprobe usb-storage quirks=VendorId:ProductId:u

VendorIde ProductIddeve ser substituído pelo fornecedor do dispositivo e pela ID do produto, que pode ser obtida com o lsusbcomando (são os caracteres a seguir ID).

Por exemplo, eu tenho o seguinte dispositivo:

Bus 002 Device 011: ID 0bc2:3320 Seagate RSS LLC SRD00F2 [Expansion Desktop Drive]

Portanto, meu ID de fornecedor é 0bc2e meu ID de produto é 3320. Meu comando é:

sudo modprobe usb-storage quirks=0bc2:3320:u

O último udiz usb-storagepara ignorar uaso dispositivo (consulte a fonte ).

Nesse ponto, você pode inserir o dispositivo USB e ele saberá não usá-lo uas, fazendo o SMART funcionar corretamente. Você verá linhas como estas dmesgao inserir o dispositivo USB:

usb 2-2: UAS is blacklisted for this device, using usb-storage instead
usb-storage 2-2:1.0: USB Mass Storage device detected
usb-storage 2-2:1.0: Quirks match for vid 0bc2 pid 3320: 800000
scsi host12: usb-storage 2-2:1.0

Tornar a mudança permanente

A peculiaridade anterior durará apenas até você reiniciar o sistema. Para torná-lo persistente, você precisa seguir as etapas descritas aqui , que eu copio abaixo:

Primeiro, crie um arquivo nomeado ignore_uas.confno /etc/modprobe.d/diretório com o seguinte conteúdo:

options usb-storage quirks=VendorId:ProductId:u

Como antes, substitua VendorIde ProductIdpelo fornecedor do dispositivo e pelo ID do produto obtido lsusb.

Em seguida, regenere seu ramdisk inicial:

mkinitcpio -p linux

ou, nas versões mais recentes do Ubuntu:

sudo update-initramfs -u

Finalmente, reinicie o seu computador.


Edit: Mais informações sobre o problema e outra maneira de contorná-lo sem desativar o uas (que possui uma taxa de transferência melhor do que o armazenamento USB) podem ser encontradas aqui: https://www.smartmontools.org/ticket/971#comment:12

Parece que o kernel está SAT ATA PASS-THROUGHna lista negra de alguns dispositivos quando rodando no modo uas, pois eles quebraram o firmware.

Portanto, a lista negra pode ser desabilitada (por seu próprio risco) usando o método anterior que mencionei na resposta, mas removendo a final uda peculiaridade, ou seja:

quirks=VendorId:ProductId:

Observe, no entanto, que eu não testei essa abordagem.


Eu estou usando Ubuntu 15.10 com o kernel Linux 4.2, fiz o que você disse, mas eu não está trabalhando para mim
Edward Torvalds

@edwardtorvalds é a GUI que não funciona ou também smartctl? No meu caso, a GUI permanece acinzentada (ainda não reiniciei), mas smartctlfunciona.
Alvaro Gutierrez Perez

2
Nenhum mkinitcpio no 16.04. Agora não é "sudo update-initramfs -u"?
filofel 13/10/16

1
Ótima resposta! Consigo acessar minha unidade USB da Seagate e obter todos os dados do smartctl. Eu tentei sua edição lá com a remoção do ue que infelizmente travou a unidade para que eu não pudesse obter dados SMART e o tempo de inicialização foi lento. No entanto, eu adicionei de volta o ue ele funciona perfeito.
Terrance

1
Para mais de um, ele se parece com:quirks=0bc2:ab24:u,0bc2:ac30:u
Tom Hale

6

Unidades externas (via USB, suponho) são complicadas com o SMART. Alguns não funcionam. As smartmontoolspessoas publicaram uma lista de discos rígidos com opções de linha de comando para adicionarsmartctl (consulte a quinta coluna).


Para unidades de expansão da Seagate, em particular, parece que você precisa -d satou -d sat,12. Tente o seguinte:

sudo smartctl -d sat --all /dev/sdb
sudo smartctl -d sat,12 --all /dev/sdb

Se um desses funcionar, ele indica qual -dopção adicionar aos seus smartctlcomandos.


ambos estão me dando erro link
Edward Torvalds

o nome do disco rígido externo é: Seagate Expansion External. parece ser apoiada, mas ainda as opções estão dando erro
Edward Torvalds

3

Apenas uma atualização que estou adicionando à resposta de Alvaro

Acabei de testar isso no Ubuntu 18.04 para uma unidade externa da Seagate que eu tenho onde não consegui smartctller a unidade. Exigiu uma reinicialização porque não queria ficar atrás do meu sistema e mexer nas conexões USB.

Primeiro executei lsusbe recebi todas as minhas informações para a unidade:

terrance@terrance-ubuntu:~$ lsusb
Bus 006 Device 002: ID 0bc2:a0a4 Seagate RSS LLC Backup Plus Desktop Drive
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 1532:0118 Razer USA, Ltd 
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 003: ID 046d:c215 Logitech, Inc. Extreme 3D Pro
Bus 003 Device 002: ID 1532:005b Razer USA, Ltd 
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Como você pode ver, minha unidade tem o nome Seagate, então tudo que eu precisava fazer era executar a seguinte linha para adicionar as informações ao /etc/modprode.d/ignore_uas.confarquivo:

echo options usb-storage quirks=$(lsusb | awk '/Seagate/ {print $6}'):u | sudo tee -a /etc/modprobe.d/ignore_uas.conf

Lembre-se de substituir Seagatepelo nome da sua unidade. Agora, quando olho, /etc/modprode.d/ignore_uas.confvejo como:

~$ cat /etc/modprobe.d/ignore_uas.conf 
options usb-storage quirks=0bc2:a0a4:u

Em seguida, basta executar o update-initramfspara que as alterações se tornem permanentes:

sudo update-initramfs -u

Em seguida, reinicie o seu sistema. Agora o smartctl pode ler minha unidade externa.

$ sudo smartctl -a /dev/sdf
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-43-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST3000DM001-1E6166
Serial Number:    W1F3DNG2
LU WWN Device Id: 5 000c50 06a323610
Firmware Version: SC47
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri Jan 11 23:07:43 2019 MST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
See vendor-specific Attribute list for marginal Attributes.

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (  592) seconds.
Offline data collection
capabilities:            (0x73) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    ( 336) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x3081) SCT Status supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   108   099   006    Pre-fail  Always       -       19766104
  3 Spin_Up_Time            0x0003   094   091   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   097   097   020    Old_age   Always       -       3944
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   052   048   030    Pre-fail  Always       -       231936780154
  9 Power_On_Hours          0x0032   058   058   000    Old_age   Always       -       36793
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   097   097   020    Old_age   Always       -       3942
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   092   000    Old_age   Always       -       894 897 1362
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   056   039   045    Old_age   Always   In_the_past 44 (Min/Max 44/44 #237)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   099   099   000    Old_age   Always       -       3909
193 Load_Cycle_Count        0x0032   020   020   000    Old_age   Always       -       161838
194 Temperature_Celsius     0x0022   044   061   000    Old_age   Always       -       44 (0 13 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       8558h+07m+38.053s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       14574986552
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       18776308038

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Espero que isto ajude!


Após essa alteração, minha unidade não será mais montada. Por quê ?
Philippe Delteil

@ PhilippeDelteil Eu nunca ouvi falar disso fazendo com que a unidade não fosse montada corretamente. Você pode tentar askubuntu.com/a/952275/231142 para configurar um modo mais permanente se a unidade for vista gnome-disks.
Terrance

3

Como eu tinha duas unidades da Seagate conectadas, modifiquei o comando @Terrance para:

echo "options usb-storage quirks=$(lsusb | awk '/Seagate/ {print $6":u"}' | tr '\n' ',' | head -c-1)" | sudo tee -a /etc/modprobe.d/ignore_uas.conf

O que fornece um separador correto (e repetição de sinalizador) para vários elementos:

options usb-storage quirks=0bc2:3320:u,0bc2:2323:u

Essa substituição dos caracteres 'nova linha' por ',' provavelmente não é feita da maneira mais elegante (requer a remoção do separador extra usando head), mas parece funcionar.

Então:

sudo update-initramfs -u

E reinicie como na resposta original.


Boa descoberta! Não pensei em várias unidades no momento em que testei a minha. Eu realmente gosto disso! +1
Terrance

1

verifique a tabela com dispositivos USB suportados ...

o switch -d satindica que deve ser uma unidade com porta SATA.

existem comutadores específicos para determinadas pontes USB - lsusbpodem mostrar o nome concreto. se o controlador da ponte tiver uma implementação ruim - tente conectá-lo nativamente por SATA em vez de USB.

SCSI e ATA (de acordo com a saída do shell) provavelmente não são o que você está procurando :)


Estou usando o cabo que veio com o disco rígido quando o comprei. você pode querer ver estes erros: link
Edward Torvalds

o nome do disco rígido externo é: Seagate Expansion External. parece ser apoiada, mas ainda as opções estão dando erro
Edward Torvalds

@edwardtorvalds existem duas pré-condições básicas: ter o SMART ativado no BIOS / UEFI para a porta (se aplicável) e habilitá-lo através do software, antes de tentar lê-lo ... smartctl -T permissive --smart=on /dev/sdb(enquanto os logs parecem estar falando) para a porta errada)
Martin Zeitler

não há opção de boot para que, eu tentei comando acima eu tenho esse erro
Edward Torvalds

@edwardtorvalds parece que ainda está enviando comandos SCSI ... esse switch -d sat está ausente smartctl -d sat -T permissive --smart=on /dev/sdb... e, como eu escrevi acima, lsusbdeve listar qual é a ponte.
Martin Zeitler
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.