Linux

Identificando blocos defeituosos ou erros de disco no Linux

Na dica de hoje vamos ensinar como verificar blocos defeituosos de disco em seu sistema operacional. Estes teste foram realizados na distribuição Linux CentOS / RHEL, verifique compatibilidade com sua distribuição.

Os discos rígidos podem falhar inesperadamente e é melhor manter backups recentes de todos os dados importantes. Lembre-se de que, mesmo que uma falha atual ou iminente seja detectada, pode não haver tempo suficiente para fazer backup dos dados. Abaixo estão vários métodos que podem ser usados para identificar blocos defeituosos ou erros de disco no Linux.

Passo 1 – Usando SmartCTL

Se houver vários erros de E/S em /var/log/messages ou simplesmente suspeitarmos que os discos rígidos podem estar falhando, o smartctl pode ser uma ferramenta útil para verificá-los. S.M.A.R.T. significa Tecnologia de Automonitoramento, Análise e Relatórios. Você precisa ativar o suporte a S.M.A.R.T. no BIOS antes de usá-lo.

Em seguida, instale os pacotes necessários para executar /usr/sbin/smartctl. No Red Hat Enterprise Linux, ele é fornecido pelo pacote smartmontools.

Precisando de uma hospedagem de site ou de um servidor dedicado personalizado, seja para ambiente de teste, desenvolvimento ou de produção? E com um suporte de especialistas, que ti, ajudam a resolver os problemas o mais rápido possível? A SoloWeb tem o prazer em ti, ajudar com isso. Entre em contato conosco e faça uma cotação agora mesmo, acesse: www.soloweb.com.br.

Verifique se seu disco rígido suporta S.M.A.R.T. com o seguinte comando:

$ smartctl -i /dev/xxx

Lembre-se de substituir o xxx pelo seu dispositivo sda sdb entre outros.

Se caso seu hd for sata execute com esses parâmetros:

$ smartctl -i -d ata /dev/xxx

Se caso o suporte ao smarctl não estiver habilitado habilite com executando o seguinte comando:

$ smartctl -s on /dev/xxx            ### Para discos SCSI
$ smartctl -s on -d ata /dev/xxx     ### Para discos SATA

Para executar um teste rápido PASS/FAIL execute o seguinte comando:

$ smartctl -H /dev/xxx

Para um teste mais detalhado e em segundo plano execute:

$ smartctl -t long /dev/xxx

Para visualizar os resultados execute:

$ smartctl -a /dev/xxx

Passo 2 Usando badblocks

Você também pode usar o comando “badblocks” para verificar se há blocos defeituosos em um dispositivo de disco. O comando “badblocks” pode ser muito útil para isolar problemas com a sincronização de partições LVM no Linux. As operações LVM falharão devido a blocos defeituosos em um disco. Blocos defeituosos no disco de origem ou de destino em um espelho LVM causarão uma falha de sincronização.

Badblocks também podem ser usados em conjunto com o fsck e makefs para marcar os blocos como ruins. Se a saída de badblocks vai ser alimentada para os programas e2fsck ou mke2fs, é importante que o tamanho do bloco seja especificado corretamente, uma vez que os números de bloco que são gerados são muito dependentes 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 usem a opção -c dos programas e2fsck e mke2fs.

Aviso: O uso indevido desses comandos pode causar perda de dados. Informações adicionais sobre o comando “badblocks” estão disponíveis usando o comando “man badblocks”.

Use a ferramenta de verificação de disco badblocks para verificar o bloco de disco rígido especificado por bloco. Por exemplo, para verificar /dev/sdd execute os comandos:

$ mount | grep sdd                  # procura por todas as partições montadas sdd
$ umount /dev/sdd1                  # desmonta a partição desejada
$ badblocks -n -vv /dev/sdd         # verificação do badblocks

Onde -n é usar o modo de leitura-gravação não destrutivo. Por padrão, apenas um teste somente leitura não destrutivo é feito.

Nunca use a opção -w em um dispositivo que contenha um sistema de arquivos existente. Esta opção apaga dados! Se o teste de modo de gravação precisar ser executado em um sistema de arquivos existente, use a opção n. É mais lento, mas preservará os dados.

Se as mensagens semelhantes aos exemplos encontrados abaixo aparecerem em /var/log/messages ou no console após a execução de badblocks, recomenda-se fazer backup de todos os dados nos dispositivos afetados e substituir o dispositivo:

Apr  4 13:50:40 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Apr  4 13:50:40 test kernel: sdd: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367232
Apr  4 13:50:40 test kernel: ide: failed opcode was: unknown
Apr  4 13:50:40 test kernel: end_request: I/O error, dev sdd, sector 74367232
Apr  4 13:50:42 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Apr  4 13:50:42 test kernel: sdd: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367240
Apr  4 13:50:42 test kernel: ide: failed opcode was: unknown
Apr  4 13:50:42 test kernel: end_request: I/O error, dev sdd, sector 74367240
Apr  4 13:50:44 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error }

Execute o comando abaixo para inserir os blocos defeituosos encontrados para o arquivo badblocks.log:

$ badblocks -v -o badblocks.log /dev/sdd

Pronto, agora que você sabe que seu hd possui blocos defeituosos, você poderá tomar medidas para solucionar o problema.

Esperamos ter ajudado com mais esta dica, e siga nos, nas redes sociais para mais tutoriais, e se precisar de nossa ajuda estamos a disposição: www.soloweb.com.br.

E lembrando que a SOLOWEB além de oferecer Hospedagem de Sites, Servidores Dedicados, Servidores VPS com o menor custo do Brasil, também desenvolve soluções de software e realiza gerenciamento e monitoramento de servidores para sua empresa, faça uma cotação sem custo, acesse: www.soloweb.com.br