Cómo corromper un sistema de archivos

Cómo corromper un sistema de archivos

Voy a probar 'xfs_repair' en algunos sistemas de archivos grandes (alrededor de 50 TB), ya que en el pasado el uso de memoria es alto. Si bien solo pude probar el programa en sistemas de archivos correctos, sería bueno probarlos en un sistema corrupto.

Entonces, ¿cuál sería la mejor manera de corromper un sistema de archivos? Crédito extra si el método repetidamente da la misma corrupción cada vez....

Para darle a la gente una idea de lo que quiero decir en 2006

"Para verificar o ejecutar con éxito la reparación en un sistema de archivos de varios terabytes, necesita:

  • una máquina de 64 bits
  • un binario xfs _ reparación/xfs _ check de 64 bits
  • ~2 GB de RAM por terabyte de sistema de archivos
  • 100-200 MB de RAM por millón de inodos en el sistema de archivos.

xfs_repair normalmente utilizará menos memoria que esto, pero estos números le dan una cifra aproximada de lo que puede requerir reparación de un sistema de archivos grande que está > 80% lleno.

FWIW, la última vez que surgió esto internamente, el sistema de archivos de 29 TB en cuestión requirió ~75 GB de RAM+intercambio para repararse".

Respuesta1

xfs_db tiene una opción blocktrash que

Desecha los bloques de metadatos del sistema de archivos seleccionados aleatoriamente. La basura se produce en bits seleccionados aleatoriamente en los bloques elegidos. Este comando sólo está disponible en las versiones de depuración de xfs_db. Es útil para realizar pruebas xfs_repair(8)y xfs_check(8).

Por ejemplo

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

Respuesta2

dd bloquea al dispositivo donde reside el sistema de archivos. Puede programar esto para que sea repetible. Solo unos pocos bloques aleatorios en ubicaciones aleatorias, luego continúa.

Respuesta3

Podría intentar sobrescribir los primeros 512 bytes (MBR y tabla de particiones) del dispositivo de bloque.

Haga una copia de seguridad primero:

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

Y ponlo a cero más tarde:

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

Su máquina no debería arrancar después de eso, puede probar la reparación XFS usando un CD en vivo.

información relacionada