Em toda essa resposta, presumimos que uma unidade de armazenamento aparece como um dispositivo de bloco no caminho /dev/sdc
. Para encontrar o caminho de uma unidade de armazenamento em nossa configuração atual, use:
-
Discos do Gnome (anteriormente conhecido como Gnome Disk Utility, também conhecido como
palimpsest
), se uma GUI estiver disponível, ou - no terminal, observe a saída de
lsblk
els -l /dev/disk/by-id
e tente encontrar o dispositivo certo por tamanho, particionamento, fabricante e nome do modelo.
Verificação básica
- detecta apenas mídias totalmente sem resposta li>
- quase instantâneo (a menos que o meio esteja corrompido ou quebrado)
- seguro
- funciona em mídia somente leitura (por exemplo, CD, DVD, BluRay)
Às vezes, um meio de armazenamento simplesmente se recusa a funcionar. Ele ainda aparece como um dispositivo de bloco no kernel e no gerenciador de disco, mas seu primeiro setor que mantém a tabela de partição não é legível. Isso pode ser verificado facilmente com:
sudo dd if=/dev/sdc of=/dev/null count=1
Se este comando resultar em uma mensagem sobre um “erro de entrada / saída”, nossa unidade está quebrada ou falha em interagir com o kernel Linux como esperado. No primeiro caso, com um pouco de sorte, um especialista em recuperação de dados com um laboratório devidamente equipado pode salvar seu conteúdo. Neste último caso, vale a pena tentar um sistema operacional diferente. (Eu me deparei com drives USB que funcionam no Windows sem drivers especiais, mas não no Linux ou OS X).
S.M.A.R.T. auto-teste
- meticulosidade ajustável
- instantâneo para lento ou lento (depende da profundidade do teste)
- seguro
- avisa sobre possíveis falhas no futuro próximo
Dispositivos que o suportam, podem ser consultados sobre sua saúde por meio de SMART ou instruídos a realizar autotestes de integridade de diferentes meticulosidade. Geralmente, esta é a melhor opção, mas geralmente está disponível apenas em discos rígidos (não antigos) e unidades de estado sólido. A maioria das mídias flash removíveis não é compatível.
Mais recursos e instruções:
- Resposta sobre S.M.A.R.T. sobre esta questão
- Como posso verificar o status SMART de uma unidade no Ubuntu 14.04 até 16.10?
Verificação somente leitura
- detecta apenas alguns erros de mídia flash
- bastante confiável para discos rígidos
- lento
- seguro
- funciona em mídia somente leitura (por exemplo, CD, DVD, BluRay)
Para testar a integridade da leitura de todo o dispositivo sem gravar, podemos usar badblocks(8)
assim:
sudo badblocks -b 4096 -c 4096 -s /dev/sdc
Esta operação pode levar muito tempo, especialmente se a unidade de armazenamento estiver danificada. Se a contagem de erros ultrapassar zero, saberemos que há um bloqueio incorreto. Podemos seguramente abortar a operação a qualquer momento (mesmo que forçosamente como durante uma falta de energia), se não estivermos interessados na quantidade exata (e talvez na localização) de blocos defeituosos. É possível cancelar automaticamente em erro com a opção -e 1
.
Nota para uso avançado: se quisermos reutilizar a saída para e2fsck
, precisamos definir o tamanho do bloco ( -b
) como o do sistema de arquivos contido. Também podemos ajustar a quantidade de dados ( -c
, em blocos) testados de uma vez para melhorar o rendimento; 16 MiB deve estar bem para a maioria dos dispositivos.
Verificação não destrutiva de leitura / gravação
- muito completo
- mais lento
- bastante seguro (salvo uma falha de energia ou pânico intermitente do kernel)
Às vezes, especialmente com mídia flash, ocorre um erro ao tentar escrever. (Isso não detectará de forma confiável (em flash) a mídia, que anuncia um tamanho maior do que realmente possui; use Luta contra a fraude em Flash em vez disso.)
-
NUNCA use isso em uma unidade com sistemas de arquivos montados !
badblocks
se recusa a operar neles, a menos que você o force. -
Não interrompa esta operação forcefully ! Ctrl + C (SIGINT / SIGTERM) e esperar por finalização prematura graciosa é ok, mas
killall -9 badblocks
(SIGKILL) não é. Após o término forçado,badblocks
não poderá restaurar o conteúdo original do intervalo de blocos atualmente testado, deixando-o sobrescrito com dados indesejados e, possivelmente, corrompendo o sistema de arquivos.
Para usar verificações não destrutivas de leitura / gravação, adicione a opção -n
ao comando badblocks
acima.
Verificação de leitura / escrita destrutiva
- muito completo
- mais lento
- APAGA TODOS OS DADOS NA UNIDADE
Como acima, mas sem restaurar o conteúdo anterior da unidade depois de realizar o teste de gravação, é um pouco mais rápido.Como os dados são apagados de qualquer forma, a terminação forçada permanece sem conseqüências negativas (adicionais).
Para usar verificações destrutivas de leitura / gravação, adicione a opção -w
ao comando badblocks
acima.