@Oli: hola, soy Jim Salter, el tipo que realmente escribió ese artículo. Estaba trabajando con una máquina virtual, lo que simplificó las cosas. Lo que hice comenzó con un archivo JPEG y lo abrí en un editor hexadecimal. El particular que usé fue Bless, que puedes instalar en Ubuntu con un simple apt-get install bless .
Después de abrir el JPEG en Bless, presioné la página varias veces para adentrarme en la "carne" del JPEG, y luego resalté unos cincuenta bytes de datos, y los copié y pegué en un editor de texto (en mi caso, gEdit). Esto me dio algo que buscar.
Ahora guardé el JPEG en cada matriz en la VM. El almacenamiento detrás de las matrices era una serie de archivos .qcow2. Una vez que guardé el JPEG en las matrices, pude cargar los archivos .qcow2 asociados con cada matriz en Bless, y buscarlos, no eran muy grandes, no eran más que JPEG y algunos metadatos, para ese patrón de cincuenta bytes. Lo había resaltado y copiado del JPEG. ¡Voila, tenía el bloqueo para corromper! En este punto, podría editar manualmente bytes individuales del JPEG tal como están almacenados en el disco virtual de la VM usando Bless, y, lo que es más importante, hacerlo exactamente de la misma manera en cada matriz.
El único inconveniente es que, en el caso de la matriz RAID5 probada en el artículo, tuve que asegurarme de que edité la copia real de los datos en la banda, y no la paridad de la banda en sí, era una pequeña imagen en un de lo contrario, matriz vacía, por lo que no había ningún dato en el bloque SIGUIENTE en la franja, lo que hace que el bloque de paridad contenga los datos inalterados del bloque de datos. Si hubiera editado accidentalmente el bloque de paridad en lugar del bloque de datos, la imagen se habría mostrado sin cambios.
Una nota final: no NECESITA máquinas virtuales para hacer esto: podría hacer las mismas cosas de la misma manera con metal desnudo; Sería más doloroso porque necesitarías trabajar con unidades RAW enteras en lugar de con pequeños archivos .qcow2, y tendrías que extraer las unidades y colocarlas en una máquina diferente, o iniciar en un entorno en vivo (o simplemente alternativo) para meterse con ellos. (Probé la recuperación de datos de ZFS exactamente de esta manera, pero en máquinas reales de metal desnudo, hace 7 años, cuando me interesé por primera vez en los sistemas de archivos de próxima generación).
¡Espero que esto ayude!