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?


@ 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.


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 .


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í.


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 .


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


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 .


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.


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


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
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.