Os dados em um disco rígido podem ser degradados sem que o Windows me avise que isso aconteceu quando tento acessar os dados?

30

É provável que uma degradação física de um disco rígido possa fazer com que os bits 'revirem' o conteúdo do arquivo sem o 'aviso' do sistema operacional e informem sobre isso ao ler o arquivo? por exemplo, um 'p' em um arquivo de texto ASCII (binário 0111000 0 ) pode ser alterado para 'q' (0111000 1 ) e, em seguida, um usuário (eu) poderá abrir o arquivo e ver 'q' sem perceber que há uma falha ocorreu?

Estou interessado em respostas relacionadas ao FAT, NTFS ou ReFS ... se isso fizer diferença.

Quero saber se o sistema operacional me protege disso ou se devo verificar meus dados quanto a invariância entre cópias / ao longo do tempo.

topo Restabelecer Monica
fonte
Não especificamente relacionado, mas semelhante: superuser.com/questions/613702/...
Michael Frank
Suponho que seja possível que uma cabeça de leitura / gravação danificada aplique acidentalmente a carga incorreta ao disco, embora nunca tenha visto corrupção de dados em uma escala tão pequena. Além disso, não confio no Windows para me informar se uma unidade está falhando ou não (A mensagem no logon). Eu já vi unidades morrerem lentamente ao longo do tempo, sem nenhum aviso do Windows.
CConard96
Obviamente ... os dados são armazenados como bits com valores relativos de 0 ou 1, entropia ocorre em todos os sistemas, incluindo armazenamento magnético e de estado sólido. Todos os dados são degradados ao longo do tempo.
Acejavelin
2
@ Moab: Eu ficaria mais impressionado com o seu segundo comentário ("Também ...") se o URL fosse, de qualquer forma, qualquer que fosse, diferente do URL no seu primeiro comentário.
TOOGAM
1
Se você usar o ReFS no topo de um volume espelhado (sem paridade!) E configurá-lo corretamente, ele verificará os dados do arquivo de soma de verificação, bem como os metadados do sistema de arquivos. Ele será verificado na leitura (e corrigido, se necessário) e também há um trabalho agendado que verificará periodicamente todo o volume em busca de erros detectados.
Davidbak

Respostas:

24

Sim , existe uma coisa chamada bit apodrecer.

Mas não , isso não afetará você despercebido.

Quando uma unidade grava um setor nos pratos, ela não apenas grava os bits da mesma maneira que são armazenados na RAM - ela usa uma codificação para garantir que não haja sequências do mesmo bit muito longas. e adiciona códigos ECC, que permitem reparar erros que afetam alguns bits e detectar erros que afetam mais do que alguns bits.

Quando a unidade lê o setor, verifica esses códigos ECC e repara os dados, se necessário e possível. O que acontece a seguir depende das circunstâncias e do firmware da unidade, que é influenciado pela designação da unidade.

  • Se um setor puder ser lido e não tiver problemas de ECC, ele será passado para o SO
  • Se um setor puder ser reparado facilmente, a versão reparada poderá ser gravada no disco, lida novamente e verificada, para determinar se o erro foi aleatório (raios cósmicos ...) ou se existe um erro sistemático na mídia.
  • Se a unidade determinar que há um erro na mídia, ela realocará o setor
  • Se um setor não puder ser lido nem corrigido após algumas tentativas de leitura, em uma unidade designada como unidade RAID , a unidade desistirá, realocará o setor e informará ao controlador que houve um problema. Ele conta com o controlador RAID para reconstruir o setor dos outros membros do RAID e gravá-lo novamente na unidade com falha, que o armazena no setor realocado que, esperançosamente, não tem o problema.
  • Se um setor não puder ser lido ou corrigido em uma unidade de desktop , a unidade fará muito mais tentativas para lê-lo. Dependendo da qualidade da unidade, isso pode envolver o reposicionamento do cabeçote, a verificação de bits que são invertidos quando lidos repetidamente, a verificação de quais bits são os mais fracos e algumas outras coisas. Se alguma dessas tentativas tiver êxito, a unidade realocará o setor e gravará os dados reparados.

(Essa é uma das principais diferenças entre as unidades vendidas como unidades "Desktop", "NAS / RAID" ou "Vigilância por vídeo". Uma unidade RAID pode simplesmente desistir rapidamente e fazer com que o controlador repare o setor para evitar latência no Uma unidade de desktop tentará novamente várias vezes, porque esperar que o usuário espere alguns segundos é provavelmente melhor do que dizer que os dados foram perdidos. E uma unidade de vídeo valoriza a taxa de dados constante mais do que a recuperação de erros, pois normalmente um quadro danificado é vencido nem ser notado.)

De qualquer forma, a unidade saberá se houve podridão por bits, normalmente se recuperará e, se não puder, informará o controlador que, por sua vez, informará o driver que informará o sistema operacional. Então, cabe ao sistema operacional apresentar esse erro ao usuário e agir de acordo com ele. É por isso que o cybernard diz

Eu nunca testemunhei um único erro, mas já vi muitos discos rígidos onde setores inteiros falharam.

a unidade saberá que há algo errado com o setor, mas não sabe quais bits falharam. (Um único bit que falhou será sempre detectado pelo ECC).

Observe que o chkdsk e o reparo automático de sistemas de arquivos não tratam os dados de reparo nos arquivos. Aqueles são direcionados à corrupção dentro da estrutura do sistema de arquivos; como um tamanho de arquivo diferente entre a entrada do diretório e o número de blocos alocados. O recurso de autocorreção do NTFS detectará danos estruturais e os impedirá de afetar ainda mais seus dados; eles não repararão nenhum dado que já esteja danificado.

Obviamente, existem outras razões pelas quais os dados podem ser danificados. Por exemplo. RAM ruim em um controlador pode alterar os dados antes mesmo de serem enviados para a unidade. Nesse caso, nenhum mecanismo na unidade detectará ou reparará os dados, e esse pode ser um dos motivos pelos quais a estrutura de um sistema de arquivos está danificada. Outros motivos incluem erros simples de software, blecaute durante a gravação do disco (embora isso seja resolvido pelo registro no diário do sistema de arquivos) ou drivers incorretos do sistema de arquivos (o driver NTFS no Linux ficou padronizado como somente leitura por um longo tempo, pois o NTFS teve engenharia reversa, não documentado , e os desenvolvedores não confiaram em seu próprio código).

Eu tive esse cenário uma vez, em que um aplicativo salvava todos os seus arquivos em dois servidores diferentes em diferentes datacenters, para manter uma cópia de trabalho se os dados em todas as circunstâncias. Após alguns meses, percebemos que em uma das cópias, cerca de 0,1% de todos os arquivos não correspondiam à soma MD5 que o aplicativo armazenava em seu banco de dados. Acabou sendo um cabo de fibra com defeito entre o servidor e a SAN.

Esses outros motivos são os motivos pelos quais alguns sistemas de arquivos, como o ZFS, mantêm informações adicionais de soma de verificação para detectar erros. Eles foram projetados para protegê-lo de muito mais coisas que podem dar errado do que apenas apodrecer.

Guntram Blohm apoia Monica
fonte
2
+1 por apontar que outros problemas de hardware, além da degradação da mídia da unidade, podem fazer com que os dados corrompidos sejam lidos e gravados . Pessoalmente, tive o problema com cabos defeituosos em um caso. Além disso, o FYI, além do ZFS, o sistema de arquivos Windows ReFS (para Server 2012 ou superior), quando configurado corretamente e em execução no Storage Spaces, verificará os dados do arquivo de soma de verificação, bem como os metadados do sistema de arquivos e os recuperará, além de realizar todo o volume periódico verificações de integridade para detectar e corrigir muitos desses erros.
Davidbak
17

Sim, os discos rígidos podem degradar sem aviso do sistema operacional. É chamado de podridão por bits . Eu nunca testemunhei um único erro, mas já vi muitos discos rígidos onde setores inteiros falharam.

O Windows não possui proteção interna do conteúdo do arquivo além da estrutura do sistema de arquivos NTFS. Pense no NTFS como um livro: bem, ele protege apenas o índice e verifica se as coisas coincidem. No entanto, se o dano estiver no meio de uma página, ele não oferece proteção. O FAT não tem nada. Os discos rígidos empregam a correção de erros do ECC por setor, mas a unidade não informa ao Windows. Alguns tipos de arquivos especificamente possuem hashes CRC, MD5 ou SHA para detectar corrupção, mas eles não corrigem nada.

Mesmo assim, o hash informa apenas que há um problema, mas não sabe onde o erro está localizado.

O disco rígido possui o SMART, que monitora a saúde do disco rígido, mas, a menos que esteja na porta da morte, o BIOS não avisará. Pior ainda, o SMART geralmente é desativado por padrão no BIOS. Você pode monitorar os números através do software, mas unidades diferentes têm problemas diferentes. Se você possui vários setores realocados ou os erros do seu ECC aumentam constantemente. Se você tem 100.000 novos ECCs todos os dias, é um mau sinal.

Muitos tipos de arquivos não têm proteção contra a podridão de bits . Tipo, TXT e BMP, que não têm nenhuma proteção. O Winrar tem uma opção opcional para adicionar dados de paridade ao arquivo, o que aumentará o arquivo, mas pode detectar (proporcional à quantidade de dados de paridade adicionada) e reparar esse tipo de erro.

Todos os outros programas de compressão que eu conheço detectam erros, mas não podem fazer nada a respeito.

Eventualmente, os erros em um setor serão tão ruins que o ECC não poderá corrigi-lo, e a unidade fornecerá o que lê, mesmo que esteja errado.

Você pode usar o QuickPar ou similar para criar arquivos de dados de paridade, mas, tanto quanto sei, não há como automatizá-lo. Por exemplo, você realmente altera o arquivo quando precisa atualizar manualmente a paridade. Você também pode ter dados de paridade para um grupo de arquivos, mas você altera 1 arquivo e todo o conjunto de paridades deve ser recriado. É uma verdadeira dor de cabeça para todos, mas um pequeno número de arquivos.

cybernard
fonte
O Windows, chdsk ou NTFS têm detecção contra a podridão de bits, manipulada pelo RAID ou um sistema de arquivos com paridade. Uma partição incorreta não é nem é causada por podridão de bits. Eu aprovo esta resposta
Ramhound
1
@Ramhound Infelizmente, o número de usuários que protegem lá de dados com o espelhamento RAID, nível 5 ou nível 6 é provavelmente inferior a 0,01%
cybernard
Eu sei que estava falando em geral. Rot
pod de
1
NOR = NÃO OU; usado em uma frase significa que é uma lista exclusiva;
Ramhound
1
Eu tinha esse disco rígido de 750 GB que fazia coisas assim. Primeiro, o computador estava lento e congela o tempo todo. Quando alguns arquivos de texto são zerados ou foram distorcidos. Mais tarde, o computador parou de inicializar. Tem um novo disco rígido (HDD eu tenho não SSD eu acho que deveria ter conseguido um SSD.) E o problema foi e o PC é rápido
Suici Doga
2

Sim, é possível. Windows é apenas software. Software é uma série de instruções para um computador seguir.

Pense em outro tipo de uma série de instruções: um livro. O que essas instruções podem realizar se estiverem escritas em um livro que fica em uma prateleira e ninguém se incomoda em abrir o livro e ler essas instruções?

Assim como essas instruções escritas exigem que uma pessoa leia as instruções e comece a segui-las, o software requer que o hardware faça coisas úteis. Mesmo que um livro tenha instruções escritas com precisão fabulosa, isso não evita problemas se uma pessoa decide ler as instruções, mas depois implementá-las incorretamente. Da mesma forma, o software não pode impedir que o hardware faça coisas ruins. Portanto, o hardware quebrado pode triunfar fisicamente sobre o que qualquer software pode fazer, incluindo o Microsoft Windows.

Agora, o ReFS pode ser projetado com a intenção de que o software armazene detalhes sobre os dados e faça com que o software os compare posteriormente. Um conceito simples é "soma de verificação", em que o software adiciona certos valores e garante que esses valores correspondam a um resultado esperado. Quando o hardware implementa esse software, certos resultados ruins podem ser detectados. Pode até ser altamente provável que funcione. No entanto, como o número de possíveis problemas, que teoricamente podem existir, é basicamente um número infinito, não há garantia de que o software necessariamente detecte todos os problemas. (Lembre-se de que o software é uma série de instruções criadas com antecedência.)

O FAT é particularmente baixo em recursos. O FAT12 foi projetado para disquetes e o FAT16 para sistemas de até 4 GB (embora a maior parte da implementação do FAT16 da Microsoft tendesse a não funcionar acima de 2 GB). Sem a extensão VFAT, nenhum deles suporta nomes de arquivos com mais de 11 caracteres (alguns dos quais estariam em uma parte chamada "extensão"). O FAT foi simplesmente projetado para armazenar dados em um momento em que a capacidade de armazenar dados era um conceito novo sobre o qual os adultos precisavam aprender. Quando o FAT era considerado uma tecnologia de ponta, a tecnologia de computadores ainda não era suficientemente prevalente e elaborada para as pessoas se preocuparem com os recursos avançados.

O NTFS adicionou suporte para mais alguns recursos, talvez o mais notável em o sistema operacional poder acompanhar facilmente as permissões do usuário. Existem versões diferentes do NTFS. Por exemplo, o Moab salienta que o Windows Server 2008 adicionou suporte para NTFS com auto-recuperação, que pode detectar algumas coisas. Ainda assim, esse recurso era novo no Windows Server 2008, portanto, não é algo compatível com o Windows XP (ou Windows Server 2003 ou anterior). Mesmo assim, examinando a lista de recursos, parece que isso envolveu alguns metadados que ajudam o sistema operacional a detectar problemas tão graves que o disco não pode ser montado ou outras áreas importantes do disco que afetam o kernel do sistema operacional. Não parecia que todos os dados, em cada arquivo, são afetados por esse recurso em particular.

É improvável que o software desses sistemas operacionais note essas coisas, a menos que causem problemas notáveis ​​para o sistema operacional realizar tarefas. Pode haver algumas exceções, como as partes do sistema operacional que verificam os discos (CheckDsk / ChkDsk / ScanDisk / ScanDskW, dependendo do sistema operacional), mas mesmo assim elas serão bastante limitadas no que podem detectar, principalmente porque os sistemas de arquivos não armazena uma quantidade muito grande de dados que deveriam ser úteis para verificação de disco.

(O RAID5 pode ser mais propenso a detectar essas coisas, com todos os bits tendo um bit de paridade que ajudaria a perceber algo incomum. Mesmo assim, caberia à implementação do RAID executar uma verificação para detectar o problema. Se o problema ocorreu em uma parte do disco que não está sendo trabalhada ativamente, o problema pode passar despercebido até que alguém tente começar a usar esses dados.)

Em tempos mais recentes, um número maior de bits significava que pequenas probabilidades, como chances de "1 em 10 milhões", eram mais propensas a afetar as coisas. O público em geral também aprendeu sobre os "raios cósmicos", que podem ter um pequeno impacto nas coisas. Como os bits estão sendo amontoados com tanta força em dispositivos mais novos, os requisitos físicos para representar um pouco são menores, portanto, mesmo pequenos impactos têm maior probabilidade de interferir na maneira como um bit é reconhecido. O ReFS possui alguns recursos projetados para ajudar na detecção deles. O artigo da Wikipedia sobre ReFS se refere a isso como "verificação automática de integridade". Como isso é descrito como um recurso notável desse sistema de arquivos, esses recursos provavelmente são mais desenvolvidos do que com o NTFS (e certamente mais do que o FAT, que era relativamente simples por natureza,

TOOGAM
fonte