Como intencionalmente corromper um sistema de arquivos ext4?

0

Eu quero intencionalmente corromper um arquivo em um sistema de arquivos ext4 para testes. Existe uma maneira de corrompê-lo, digamos, deixando um arquivo aberto e reinicializando?

    
por tarabyte 29.12.2015 / 22:33

1 resposta

4

Você quer se recuperar? Ou quão corruptos estamos falando?

Eu usaria dd , um utilitário de transferência de bloco.

dd if=/dev/urandom of=/dev/sdWV count=X bs=Y seek=Z

onde

sdWV é o dispositivo que você deseja corromper

  • sdW será o dispositivo de bloco
  • V será o número da partição

X é o número de bloqueios que você deseja escrever

Y é o tamanho de cada bloco

Z é o lugar na partição onde você deseja começar a corromper os dados

Certifique-se de fazer um backup antes de qualquer dano.

Aqui, a fonte da imagem será /dev/urandom , um fluxo que irá gerar apenas dados aleatórios, sobrescrevendo tudo e qualquer coisa no seu dispositivo.

Se você omitir a diretiva count , ela continuará escrevendo até que o dispositivo esteja cheio.

editar

Heh, desculpe pela corrupção em seu sistema atual: o título e o corpo do post diferem muito. Corrompendo um sistema de arquivos e corrompendo um arquivo são bem diferentes ...

Se você quiser corromper o arquivo, você ainda pode usar o dd, mas pode sobrescrever um arquivo existente - não o dispositivo de bloco real.

~ > echo "this is a test file that is about to be corrupted" > test_file
~ > cat test_file
this is a test file that is about to be corrupted
~ > dd if=/dev/urandom of=test_file bs=8 count=1 seek=1
1+0 records in
1+0 records out
8 bytes (8 B) copied, 0.007185 s, 1.1 kB/s
~ > cat test_file
this is \o♣▒▒▒_C~ >
    
por 29.12.2015 / 23:12