@Oli - salut, je suis Jim Salter, le gars qui a écrit cet article. Je travaillais avec une machine virtuelle, ce qui simplifiait les choses. Ce que j'ai fait est démarré avec un fichier JPEG et ouvert dans un éditeur hexadécimal. Le plus particulier que j'ai utilisé était Bless, que vous pouvez installer dans Ubuntu avec un simple apt-get install bless .
Après avoir ouvert le JPEG dans Bless, je me suis rendu plusieurs fois sur la page pour me familiariser avec le format JPEG, puis j'ai simplement mis en valeur une cinquantaine de octets de données, puis copié et collé dans un éditeur de texte. (dans mon cas, gEdit). Cela m'a donné quelque chose à rechercher.
Maintenant, j'ai enregistré le fichier JPEG dans chaque tableau de la machine virtuelle. Le stockage derrière les tableaux était une série de fichiers .qcow2. Une fois que j'ai enregistré le JPEG dans les tableaux, je pouvais charger les fichiers .qcow2 associés à chaque tableau dans Bless et les rechercher - ils n'étaient pas très volumineux, ne contenant que le JPEG et certaines métadonnées - pour ce motif de cinquante octets J'ai mis en évidence et copié du JPEG. Voila, j'avais le bloc à corrompre! À ce stade, je pouvais simplement modifier manuellement les octets du fichier JPEG stockés sur le disque virtuel de la machine virtuelle à l’aide de Bless - et, ce qui est important, le faire de la même manière sur chaque baie.
Le seul inconvénient est que dans le cas de la matrice RAID5 testée dans l'article, je devais m'assurer de modifier la copie réelle des données dans la bande, et non la parité de la bande elle-même - c'était un petit image sur un tableau par ailleurs vide, il n'y avait donc aucune donnée dans le bloc SUIVANT dans la bande, ce qui fait que le bloc de parité contient les données non modifiées du bloc de données. Si je modifiais accidentellement le bloc de parité au lieu du bloc de données, l'image aurait été inchangée.
Une dernière remarque - vous n'avez PAS BESOIN de machines virtuelles pour ce faire - vous pouvez faire la même chose de la même manière avec du métal nu; ce serait juste plus pénible parce que vous auriez besoin de travailler avec des disques durs entiers plutôt qu'avec de petits fichiers .qcow2, et que vous deviez soit retirer les disques et les placer dans un autre ordinateur, soit démarrer dans un environnement live (ou simplement alternatif) pour les manipuler. (J'ai testé la guérison des données de ZFS de cette façon, mais sur de vraies machines nues, il y a 7 ans, quand je me suis intéressé aux systèmes de fichiers next-gen.)
J'espère que ça aide!