Fsck agressivamente um disco antes da instalação

12

Eu tenho uma máquina HP Athlon antiga que uso para testar o software no processador antigo. Temos desmaios freqüentes e, após o último, o disco estava uma bagunça. Foi tão ruim que não pude correr fscke despachar todos os problemas. Fiz uma nova instalação do sistema operacional, mas ainda estou recebendo fsckreclamações.

Gostaria de tentar mais uma vez recarregar o Linux antes de condenar o disco rígido ou a máquina. Depois que o sistema de arquivos é criado, mas antes da instalação ocorrer, eu gostaria que um agressivo fosse fsckexecutado para marcar os blocos suspeitos como ruins.

O disco é grande (cerca de 500 GB) e uma distribuição Debian 8 é relativamente pequena (8-12 GB geralmente é mais do que suficiente), então eu não me importo se bons blocos são marcados como ruins. Também gosto da instalação da GUI, mas não sou casada com ela.

Eu tenho duas perguntas:

  1. O Debian 8 oferece uma opção para executar um fsckantes de instalar o sistema base? Se sim, onde fica? Caso contrário, qual é o processo?

  2. Tem fsckuma configuração para controlar quão agressivamente os blocos são marcados como ruins? Se assim for, o que é? Caso contrário, o que pode ser usado?


EDIT : a máquina é uma HP5850. Entrando no BIOS, navegando até Armazenamento e, em seguida, o autoteste do Sistema de proteção de unidade (DPS) resultou na recomendação do DPS de substituir a unidade. O DPS não forneceu estatísticas, portanto, não tenho certeza da extensão do dano.

Considerando que posso comprar uma [antiga] nova unidade SATA II por US $ 12, vou substituí-la. Não faz sentido perder tempo ou energia com isso.


As referências relacionadas são as seguintes. Nenhuma das perguntas parece ter sido abordada.


fonte
Por que não o SpinRite ?
Peter Mortensen
Se você tiver algum bloco defeituoso, a unidade inteira está fisicamente falhando e não deve ser usada.
usar o seguinte comando
2
"Fsck agressivamente um disco" parece tão sujo ...
A. Mirabeau

Respostas:

19
  1. "O Debian 8 oferece uma opção para executar um fsck antes de instalar o sistema base? Se sim, onde está? Se não, então qual é o processo?"

    Como alternativa, primeiro faça o download e grave um CD do GPartEd (ou grave em um pen drive). Antes de executar o instalador, inicialize GPartEde particione o disco ao seu gosto e execute fsckou apenas execute badblockspor muito tempo.

    Quando você executa o instalador da Debian, diga-lhe como usar as partições existentes. O instalador não precisa criar suas próprias partições. É perfeitamente feliz usar as partições existentes.

  2. "O fsck tem uma configuração para controlar quão agressivamente os blocos são marcados como ruins? Se sim, o que é? Se não, então o que pode ser usado?"

    A -copção para e2fsckexecutar o badblocksprograma para procurar blocos defeituosos. Você também pode executar badblocks diretamente. Por padrão, badblocksfaz um teste somente leitura. Para ser mais agressivo, você pode especificar -num teste de leitura e gravação não destrutivo. Você também pode definir a -popção de aumentar o número de passes efetuados.

    Você pode querer executar badblocksantes de particionar. Dessa forma, você pode especificar o teste mais rápido de -wgravação.

John1024
fonte
1
John, +1, apenas curioso, badblockstem algum método para marcar em um nível de hardware ou apenas no nível FS?
precisa saber é
3
@heemayl Meu entendimento é que, nos discos rígidos modernos , o firmware do disco rígido tenta fazer todo o seu próprio gerenciamento de blocos defeituosos. O objetivo da execução badblocksé apenas forçar o disco rígido a ler / gravar todos os setores. O disco rígido possui detecção e remapeamento de setores defeituosos e, se tudo funcionar como deveria, o badblocksprograma nunca será informado de que o disco rígido está fazendo isso.
precisa saber é o seguinte
hmmm..compreensível. Então, em essência, o fsck pode marcar blocos no FS, mas os badblocks apenas ajudam o firmware do disco a fazer a marcação, não faz nada por conta própria?
heemayl
3
@heemayl Antigamente, badblockscuspia uma lista de setores defeituosos e o sistema de arquivos os anotava . Nos tempos modernos, badblocks e o FS ainda tenta fazer isso, mas, com um HD moderno, a lista geralmente está vazia.
precisa saber é o seguinte
1
@heemayl, e se a lista não estiver vazia, o disco geralmente está tão danificado que sua melhor opção é substituí-lo.
Mark
7

Se você está recebendo erros de fsck com tanta frequência, a unidade também pode estar tossindo sangue. Mesmo se você marcar cada bloco ruim como ruim, não demorará muito para que mais blocos fiquem ruins. Eu imagino que você poderia mudar para outro tty para fazer um fsck se realmente precisar (Ctrl + alt + F2 para mudar para tty2), mas não posso enfatizar o suficiente o quanto você precisa de um novo disco rígido, se estiver dizendo é preciso.

John Leuenhagen
fonte
"Se você está recebendo erros de fsck com tanta frequência ..." - o que eu não tenho certeza é: são alguns fsckproblemas após a reinstalação da extensão do problema ou é a ponta do iceberg. O sistema inicializa, encontra alguns erros no sistema de arquivos (4 ou 6), recupera remontando como somente leitura e, em seguida, inicializa.
@jww, você pode postar alguns exemplos exatos dos erros mencionados no sistema de arquivos?
John Leuenhagen
Por que mudar para outro tty? Que vantagem isso proporciona?
fpmurphy
@ fpmurphy1 parecia que ele não conseguia abrir uma janela do terminal, então mudar para outro tty seria a próxima melhor maneira de entrar em um shell.
John Leuenhagen
@jww: Os mesmos blocos são relatados todas as vezes ou um novo conjunto é relatado em cada inicialização?
TMN
5
  1. Não, e acho que não vale a pena. O Fsck (conforme implementado pela maioria dos sistemas de arquivos) não verifica suas unidades. Ele valida os metadados do sistema de arquivos e garante que a visualização seja consistente ao montá-los. Não faz muito sentido fazê-lo antes da instalação, porque, por definição, você só terá espaço vazio.

  2. Use badblocks . Se você deseja garantir que seus dados não apodreçam, use um sistema de arquivos que suporte a depuração. O próprio Lvm também pode fazê-lo .

viraptor
fonte
3

Para verificar a confiabilidade de um disco moderno, considere usar os testes integrados; você pode acioná-los com o utilitário smartctl, por exemplo:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

Se você quiser ter certeza de que tudo foi gravado recentemente, para descobrir setores que não serão gravados corretamente, você pode sobrescrever todo o meio com algo como um dd de / dev / urandom ou fragmentar com um dos itens aleatórios opções

rackandboneman
fonte
3
Observe que a ddpartir de /dev/randomdemorará muitos dias para ser concluída em uma unidade de 500 GB.
Dmitry Grigoryev
1
erro de digitação fixo, thx :) Não quis especificar a sintaxe exata do dd, pois queria evitar linhas de comando em torno disso, se coladas acidentalmente em um shell, causariam uma perda de dados verdadeiramente irrecuperável.
rackandboneman
Infelizmente, Debian não aparecer para fornecer smartctl: E: Unable to locate package smartctl. É um utilitário Red Hat / Fedora?
O pacote debian / ubuntu é smartmontools. BTW, use a pesquisa apt-cache para procurar qual pacote tem alguma coisa.
rackandboneman
2

Eu recomendaria obter o software de formato de baixo nível do fabricante (se houver), que só pode ser executado no Windows (ou se você tiver sorte, a partir de um CD / DVD / USB inicializável para o qual você baixaria uma imagem do site) . Se você tiver controle suficiente sobre a operação para reduzir a capacidade relatada da unidade em troca de um pool de setor de reposição muito maior, deverá fazê-lo, antecipando a substituição de muitas dessas peças sobressalentes ao testar a unidade, como sugeriu @rackandboneman . É muito melhor ter uma unidade de 400 ou 450 GB com todos os setores defeituosos trocados por peças sobressalentes e mais sobra para defeitos futuros, do que esgotar o pool de reposição e ter setores defeituosos futuros que não podem ser remapeados de forma transparente.

Monty Harder
fonte
Consegui executar o SeaTools for DOS . O SeaTools informou que o SMART não foi acionado, o que parecia incomum. O teste longo e o teste curto falharam imediatamente. Eu redimensionei o disco para 32 GB; e depois executou o teste longo novamente. O SeaTools encontrou 4 LBAs ruins em torno da marca 1190000 e os reparou. Uma nova instalação do SO correu perfeitamente; e as reinicializações subsequentes não tiveram problemas. Desde que eu comprei a unidade SATA II de substituição, a manterei como hot spare se a unidade existente se comportar mal.
Pena que você já aceitou uma resposta diferente.
Monty mais dura
Sim, é a armadilha de perguntas e respostas ... Eu tenho que fazer perguntas específicas para obter uma resposta precisa. Se eu perguntasse "como instalar o Linux em um disco rígido com falha", a pergunta provavelmente teria sido encerrada.
0

Algumas coisas básicas se você não tiver ferramentas mais sofisticadas disponíveis (por exemplo, é um disco USB e o SMART não funciona):

dd if=/dev/sdX of=/dev/null bs=1M

irá ler todo o disco. Você verá nodmesg log se existem setores que não puderam ser lidos. Embora não lhe diga se conseguiu lê-los após novas tentativas. Não é tão bom quanto, badblocksmas eu menciono isso por sua onipresença.

Se você possui setores defeituosos e não deseja nada no disco:

dd if=/dev/zero of=/dev/sdX bs=1M

fará com que todos os blocos sejam reescritos. Se houver setores ilegíveis, isso deve fazer com que sejam trocados por setores no pool realocado e se tornem utilizáveis ​​novamente.

Se você tiver um disco em que a realocação está acontecendo, o disco estará saindo. Eu não o usaria para nada importante, mas às vezes você tem dados com os quais não se importa tanto e pode ser bom para isso.

Se for um SSD, as coisas são diferentes e elas não se aplicam.

user1908704
fonte