Como executar um disco de verificação?

84

Eu suspeito que pode haver um setor defeituoso em um disco. Eu usei o sistema de arquivos ext3.

Qual ferramenta é o melhor equivalente da ferramenta de verificação de erros do Windows?

Guillaume Coté
fonte
@ PabloBianchi: Essa pergunta tem exatamente o mesmo escopo. Estou sinalizando-os para um mod para mesclá-los.
David Foerster

Respostas:

101

Discos

Para verificar se há setores defeituosos, verifique os dados SMART, provavelmente os melhores acessíveis, iniciando o utilitário Disks ( Palimpsest ). Mesmo se você não encontrar nenhum bloco defeituoso lá, inicie um autoteste para ter certeza.

O programa está incluído no gnome-disk-utilitypacote. Corregksudo gnome-disks

SMART de Palimpsest

Ou no Ubuntu 16.04 versão (3.18):

SMART a partir de discos

Badblocks

Você também pode usar badblocks

sudo badblocks -sv /dev/sda

para apenas verificar ou verificar e corrigir, primeiro grave o resultado em um arquivo temporário:

sudo badblocks -sv /dev/sda  > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1

irá verificar o disco inteiro e imprimir todos os blocos defeituosos encontrados em / dev / sda .

Do badblocksmanual:

Nota importante: Se a saída de badblocks for alimentada para os programas e2fsck ou mke2fs, é importante que o tamanho do bloco seja especificado corretamente, pois os números de bloco gerados dependem muito do tamanho do bloco em uso pelo sistema de arquivos . Por esse motivo, é altamente recomendável que os usuários não executem badblocks diretamente, mas que usem a opção -c dos programas e2fsck e mke2fs.

fsck

fsckpor si só não ajudará a encontrar setores defeituosos, pior ainda, se houver muitos setores defeituosos, os dados poderão ser danificados ainda mais. Use-o apenas quando o disco estiver íntegro.

organizar
fonte
1
Na verdade, o manual do badblocks desencoraja o uso direto e direciona os usuários ao e2fsck com a opção "-c" (para verificação somente leitura) ou "-cc" (para verificação de leitura e gravação).
Mrówa
2
como nota, no 13.04, você executa o palimpsest apenas executando "discos" no menu do ubuntu, no entanto ... eu não vejo uma opção para iniciar um autoteste (possivelmente porque eu tenho apenas uma unidade e é a única em execução Ubuntu ...)
rogerdpack 11/11
2
@ mrówa o manual diz apenas fazer isso se "a saída do badblocks vai ser alimentado aos programas e2fsck ou mke2fs"
Jon
1
Colocar a informação que para listar todos os discos usar sudo fdisk -l
Kangarooo
2
isso agora é chamado de discos gnome
endolith
74

Ao longo desta resposta, assumirei 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 Gnome Instalar discos Gnome (anteriormente conhecido como Gnome Disk Utility, também conhecido como palimpsest), se uma GUI estiver disponível, ou
  • no olhar do terminal na saída lsblke ls -l /dev/disk/by-ide tentar encontrar o dispositivo correto por tamanho, particionamento, fabricante e nome do modelo.

Verificação básica

  • detecta apenas mídias totalmente não responsivas
  • quase instantâneo (a menos que o meio seja girado ou quebrado)
  • seguro
  • funciona em mídia somente leitura (por exemplo, CD, DVD, BluRay)

Às vezes, um meio de armazenamento simplesmente se recusa a trabalhar. 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á com defeito ou falha ao interagir com o kernel do Linux conforme o esperado. No caso anterior, com um pouco de sorte, um especialista em recuperação de dados com um laboratório adequadamente equipado pode recuperar seu conteúdo. Neste último caso, vale a pena tentar um sistema operacional diferente. (Encontrei unidades USB que funcionam no Windows sem drivers especiais, mas não no Linux ou OS X.)

Autoteste SMART

  • precisão ajustável
  • instantâneo a mais lento ou mais lento (depende da exaustividade do teste)
  • seguro
  • alerta sobre falha provável em um futuro próximo

Os dispositivos que o suportam podem ser consultados sobre sua saúde através do SMART ou instruídos a realizar autotestes de integridade com diferentes detalhes. Geralmente, é a melhor opção, mas geralmente disponível apenas em unidades de disco rígido (não antigas) e de estado sólido (não antigas). A maioria das mídias flash removíveis não é compatível.

Mais recursos e instruções:

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 de leitura de todo o dispositivo sem escrever nele, podemos usar o badblocks(8)seguinte:

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

Essa operação pode levar muito tempo, especialmente se a unidade de armazenamento estiver realmente danificada. Se a contagem de erros for superior a zero, saberemos que há um bloqueio incorreto. Podemos abortar a operação com segurança a qualquer momento (mesmo com força durante uma falha de energia), se não estivermos interessados ​​na quantidade exata (e talvez na localização) dos blocos defeituosos. É possível abortar automaticamente em caso de erro com a opção -e 1.

Nota para uso avançado: se quisermos reutilizar a saída e2fsck, precisamos definir o tamanho do bloco ( -b) para o do sistema de arquivos contido. Também podemos ajustar a quantidade de dados ( -cem blocos) testados ao mesmo tempo para melhorar a taxa de transferência; 16 MiB deve ser bom para a maioria dos dispositivos.

Verificação não destrutiva de leitura e gravação

  • muito completo
  • mais lento
  • bastante seguro (exceto uma falha de energia ou pânico intermitente do kernel)

Às vezes - especialmente com mídia flash - ocorre um erro apenas ao tentar escrever. (Isso não descobrirá de maneira confiável as mídias (flash), que anunciam um tamanho maior do que elas realmente têm; use o Fight Flash Fraud .

  • NUNCA use isso em uma unidade com sistemas de arquivos montados ! badblocksse recusa a operar com eles de qualquer maneira, a menos que você o force.

  • Não interrompa esta operação com força ! Ctrl+ C(SIGINT / SIGTERM) e aguardar o término prematuro normal está ok, mas killall -9 badblocks(SIGKILL) não está. Em caso de encerramento forçado, badblocksnão é possível restaurar o conteúdo original do intervalo de blocos testado no momento e deixá-lo sobrescrito com dados indesejados e possivelmente corromper o sistema de arquivos.

Para usar verificações não destrutivas de leitura e gravação, adicione a -nopção ao badblockscomando acima .

Verificação destrutiva de leitura e gravação

  • muito completo
  • Mais devagar
  • APAGA TODOS OS DADOS DA UNIDADE

Como acima, mas sem restaurar o conteúdo da unidade anterior após a execução do teste de gravação, é um pouco mais rápido. Como os dados são apagados de qualquer maneira, a terminação forçada permanece sem conseqüência negativa (adicional).

Para usar verificações destrutivas de leitura e gravação, adicione a -wopção ao badblockscomando acima .

David Foerster
fonte
43

fsck - verifique e repare um sistema de arquivos Linux. Invoque-o usando

fsck /dev/sda1

onde / dev / sda1 é a unidade que você deseja verificar. Veja 'man fsck' para mais detalhes.

Há também o comando 'badblocks' que verifica um dispositivo, você adivinhou, blocos ruins.

A unidade precisa ser desmontada quando marcada, portanto, para verificar a partição raiz, é necessário criar um arquivo 'forcefsck' na raiz da partição e reiniciar. O dispositivo será verificado na próxima inicialização:

sudo touch /forcefsck
sudo reboot

Como alternativa, você pode inicializar a partir de um Live CD e executar a verificação a partir daí.

Sergey
fonte
Obrigado, a máquina está funcionando sem monitor, existe uma maneira de acessar a saída da verificação após a reinicialização?
Guillaume Coté
Criei o arquivo e reiniciei, mas foi muito rápido e não há nada de novo no boot.log.
Guillaume Coté
O fsck apenas faz uma verificação muito rápida, tentei a opção -c para verificar o bloco defeituoso.
Guillaume Coté
O fsck -c acabou de dizer: / dev / sda9: Atualizando o inode do bloco inválido. Não tenho informações sobre quantos nós defeituosos e qual proporção do sistema de arquivos eles representam.
Guillaume Coté
sudo dumpe2fs -b /dev/sda9. Mas eu acho que é melhor se o disco cuidar de setores defeituosos, não do sistema de arquivos (SMART, badblocks etc, veja meu post).
organize
20

badblocks

Você pode verificar se há badblocks executando o comando

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-resultpara um teste de leitura e gravação não destrutivo. Isso irá gerar um arquivo chamado bad-blocks-resultcom os setores danificados.
    • -n Use o modo não destrutivo de leitura e gravação. Por padrão, apenas um teste somente leitura não destrutivo é realizado.

    • -s Mostre o progresso da verificação escrevendo a porcentagem aproximada de conclusão aproximada dos badblocks atuais transmitidos pelo disco.

    • -v modo detalhado.

  2. Em seguida, você pode executar sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]para informar ao sistema de arquivos onde estão os setores defeituosos e afastar os dados deles, se possível.

Você pode encontrar mais informações sobre isso aqui .

Dielson Sales
fonte
1
Para continuar com a badblocks mais tarde ou se você se esqueceu de exportar o setor ruim para um arquivo de texto (como eu) esta resposta irá ajudá-lo: superuser.com/a/693000/218025
chelder
posso usar badblocks para verificar minha partição do windows? Ou de alguma forma pode danificá-lo?
Privado
1
@ Privado Se você tiver uma nova pergunta, use o link "Fazer uma pergunta" na parte superior.
John
O fsckcomando falha com btrfssistemas de arquivos.
Luís de Sousa
20

smartctl

IMO smartctl é uma ferramenta melhor. Você provavelmente precisará instalá-lo primeiro

sudo apt-get install smartmontools 

Então

sudo smartctl -a /dev/sda | less

para imprimir dados de integridade da unidade, atributos e resultados de teste disponíveis. Para sair menos, digite q. alternativamente

sudo smartctl -H /dev/sda

apenas imprimir dados de saúde.

Para iniciar um novo autoteste curto (alguns minutos) ou longo (até muitas horas) em segundo plano:

sudo smartctl -t [short|long]

GSsmartControl ( página inicial ) e Discos Gnome são front-ends gráficos, se você preferir.

Veja também

Pantera
fonte
5
Ótima solução, se o dispositivo suportar SMART. Muitas unidades flash removíveis (baratas) e discos rígidos muito antigos não.
David Foerster
Inicialmente fiquei perplexo quando smartctlrelatado: "Ponte USB desconhecida", "Especifique o tipo de dispositivo com a opção -d". Encontrei os dados necessários em: smartmontools.org/wiki/Supported_USB-Devices .
No1
10

F3 (Fight Flash Fraud) é outra opção que deve detectar adicionalmente unidades flash falsas (unidades flash cuja capacidade real é uma fração da capacidade anunciada):

  1. Instale F3

    sudo apt install f3
    
  2. Insira sua unidade

  3. Escreva dados de teste no espaço livre na unidade (verifique onde a sua unidade está montada lsblk)

    f3write /media/$USER/D871-DD7C/
    
  4. Leia os dados do teste

    f3read /media/$USER/D871-DD7C/
    

Referência:

O Badblocks funciona bem, mas não foi projetado para detectar unidades flash falsas e pode não gerar nenhum erro para elas .

bmaupin
fonte
badblockscom -wou com fscksetores de marca como ruins / danificados, para que não sejam usados. f3 pode retornar algo como Corrupted: 16.01 MB (32784 sectors), mas marca esses setores como ruins? Ou ainda precisamos de badblocks para isso? Estou tentando comdumpe2fs -b e parece id não marca.
Pablo A
4

Você pode testar o disco inteiro enquanto lê um indicador de progresso:

time sudo pv /dev/sdc >/dev/null

Certos problemas de disco se manifestariam como erros de E / S relatados. Isso é um pouco mais agradável do que dddevido ao indicador de progresso e porque a interface da linha de comandos é um pouco mais padrão e menos propensa a erros de digitação . Observe que pvé basicamente e versão aprimorada do cat. Pode não ser instalado por padrão, mas pode ser instalado com sudo apt-get install pv.

Uma abordagem semelhante é ler o disco com uma das várias ferramentas disponíveis que estão especificamente cientes dos erros de E / S do disco - e têm o recurso de "se esforçar muito para recuperar dados". Procure ddrescueno gerenciador de pacotes.

nobar
fonte
Isso não detectará problemas que aparecem apenas durante o acesso de gravação e não informará a região afetada da mídia de armazenamento que seria necessária para corrigir ou solucionar o problema. dd count=1também é bastante rápido, a menos que o meio de armazenamento esteja totalmente quebrado (ou não seja suportado).
David Foerster
Veja também:ddrescueview
nobar 01/03
Desde GNU Coreutils 8.24+ ddtem um indicador de progresso com status=progress.
Pablo A
1

Se você tiver uma partição que NÃO PODE PERDER OS DADOS, siga estas etapas

  1. Determine qual partição você deseja verificar setor defeituoso usando o

$fdisk -l commnd

Vamos supor que a partição a verificar seja chamada / dev / sdPTC (partição a verificar) e que você tenha outra partição para armazenar os resultados montados na pasta / scan / resultPath /

2.Em seguida, você pode executar este comando

$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt

que determinará quais são os blocos defeituosos do dispositivo fornecido e os armazenará em um arquivo chamado badsectors.txt

  1. Agora você pode usar o fsckcomando para dizer ao Ubuntu para não usar os setores defeituosos mencionados no arquivo badsectors.txt.

$sudo fsck -l /scan_result/badsectors.txt /dev/sda

Dessa forma, a vida útil do disco rígido aumenta um pouco até você obter um novo para substituição.


Se você possui uma partição completa que deseja verificar se há setores físicos defeituosos e PODE AFETAR A PERDA DE TODOS OS DADOS nessa partição ou está VAZIO, siga estas etapas

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. Verifique e verifique se não há dados importantes nessa partição

  4. Usando gnome-disksDELETE / REMOVE a partição manualmente usando o sinal "-"

  5. Usando gnome-disksCREATE uma nova partição e selecione a opção "lenta" que verificará o espaço especificado quanto a erros

insira a descrição da imagem aqui

Mauricio Gracia Gutierrez
fonte
Importa qual versão do Ubuntu é? Lida bionic beavercom verificações de disco de maneira diferente?
Gabriel Fair
Eu não tentei esse processo nessa versão.
Mauricio Gracia Gutierrez