Como corromper um sistema de arquivos

8

Vou testar o 'xfs_repair' em alguns sistemas de arquivos grandes (por volta de 50 TB), já que, no passado, o uso da memória era alto. Embora eu pudesse testar o programa apenas em sistemas de arquivos que estavam corretos, seria bom testá-los em um sistema corrompido.

Então, qual seria a melhor maneira de corromper um sistema de arquivos? Crédito extra se o método repetidamente der a mesma corrupção todas as vezes ....

Para dar às pessoas uma ideia do que quero dizer em 2006 ish

"Para verificar ou executar o reparo com êxito em um sistema de arquivos de vários terabytes, você precisa:

  • uma máquina de 64 bits
  • um xfs de 64 bits _ repair / xfs _ verifica o binário
  • ~ 2 GB de RAM por terabyte de sistema de arquivos
  • 100-200MB de RAM por milhão de inodes no sistema de arquivos.
O

xfs_repair normalmente usa menos memória do que isso, mas esses números dão a você uma estimativa do que é um sistema de arquivos grande que é > 80% completos podem precisar de reparos.

FWIW, a última vez que isso surgiu internamente, o sistema de arquivos de 29TB em questão levou ~ 75GB de RAM + swap para reparo. "

    
por James 14.07.2009 / 09:27

3 respostas

12

xfs_db tem uma opção de bloqueio de blocos que

Trash randomly selected filesystem metadata blocks. Trashing occurs to randomly selected bits in the chosen blocks. This command is available only in debugging versions of xfs_db. It is useful for testing xfs_repair(8) and xfs_check(8).

Por exemplo

xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/xfstest/testfs

    
por 14.07.2009 / 10:15
2

dd blocos para o dispositivo onde o sistema de arquivos reside. Você pode roteirizar isso para que seja repetitivo. Apenas alguns blocos aleatórios em locais aleatórios, depois siga em frente.

    
por 14.07.2009 / 09:44
0

Você pode tentar substituir os primeiros 512 bytes (MBR e tabela de partições) do dispositivo de bloco.

Faça o backup primeiro:

dd if=/dev/device bs=512 count=1 of=backup.bin

E zerar depois:

dd if=/dev/zero bs=512 count=1 of=/dev/device

Sua máquina não deve inicializar depois disso, você pode testar o reparo do XFS usando o live CD.

    
por 14.07.2009 / 09:52