Como corromper intencionalmente um sistema de arquivos ext4?

0

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

tarabyte
fonte
1
Abrir arquivo, puxe o plugue de energia?
Ƭᴇcʜιᴇ007
abrir um arquivo apenas com o vim?
tarabyte
Prefiro fazer várias alterações em um banco de dados e depois desconectar a energia quando o único commit em todas as transações for iniciado.
ott--
Como solicitado, qual o nível de corrupção do arquivo? Você sempre pode abrir o arquivo em questão em um editor hexadecimal e remover o primeiro par de bytes e o último par de bytes .. ou no editor hex, apenas aleatoriamente passar e fazer mudanças aleatórias para azarar .. nenhum poder puxar ou ddnecessária ..
txtechhelp 30/12/2015

Respostas:

4

Deseja recuperar-se? 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 local da partição em que você deseja começar a corromper os dados

Certifique-se de fazer um backup antes de fazer qualquer corrupção.

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

Se você omitir a countdiretiva, ela continuará gravando até que o dispositivo esteja cheio.

editar

Desculpe a corrupção no seu sistema atual - o título e o corpo da postagem diferem muito. Corromper um sistema de arquivos e corromper um arquivo são bem diferentes ...

Se você quiser corromper o arquivo, ainda poderá usar o dd, mas a saída substituirá 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~ >
Matt Clark
fonte
1
Não deveria ser / dev / sdWV onde W é o dispositivo e V é o número da partição?
David
offsetdeveria ser seeknão?
tarabyte
Eu apenas explodi o que eu acho que era /sbin/init. existe uma corrupção mais controlada que pode corromper um arquivo que mora no meu diretório pessoal e forçar o sistema de arquivos a remontar como somente leitura?
tarabyte
ahhh ... desculpe, eu li errado - o título e o corpo da postagem diferem - então você quer corromper apenas um arquivo, não o sistema de arquivos? Veja minha edição.
Matt Clark
Posso perguntar o que exatamente você está tentando testar? Isso pode ajudar a encontrar melhor um método mais adequado de corrupção.
Matt Clark