@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. Celui que j'ai utilisé était Bless, que vous pouvez installer dans Ubuntu avec une simple installation d’apt-get bless .
Après avoir ouvert le fichier JPEG dans Bless, j’ai jeté plusieurs fois la page vers le bas pour bien entrer dans la "viande" du JPEG, puis juste mis en évidence une cinquantaine de octets de données, que je copiais et collais dans un éditeur de texte cas, gEdit). Cela m'a donné quelque chose à rechercher.
Maintenant, j'ai enregistré le JPEG dans chaque tableau de la VM. Le stockage derrière les baies était constitué d’une série de fichiers .qcow2. Une fois le fichier JPEG sauvegardé dans les tableaux, je pouvais charger dans Bless les fichiers .qcow2 associés à chaque tableau et les rechercher - ils n'étaient pas très volumineux, n'étant rien d'autre que du JPEG et des métadonnées - pour ce modèle de cinquante octets. J'avais mis en évidence et copié à partir du JPEG. Voilà, j'avais le bloc à corrompre! À ce stade, je pouvais simplement éditer manuellement des octets individuels du fichier JPEG stocké sur le disque virtuel de la machine virtuelle à l'aide de Bless - et, ce qui est important, le faire exactement 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 que j'avais édité la copie réelle des données de la bande, et non la parité de la bande elle-même - il s'agissait d'une petite image sur une sinon, tableau vide, il n'y a donc aucune donnée dans le bloc FOLLOWING dans la bande, ce qui fait que le bloc de parité contient les données non modifiées du bloc de données. Si j'avais édité accidentellement le bloc de parité au lieu du bloc de données, l'image serait restée inchangée.
Une dernière remarque - vous n’AVEZ PAS BESOIN de machines virtuelles pour le faire - vous pouvez faire les mêmes choses de la même manière avec du métal nu; ce serait simplement plus pénible parce que vous auriez besoin de travailler avec des lecteurs bruts entiers plutôt qu'avec de jolis petits fichiers .qcow2, et de tirer les lecteurs et de les placer dans un autre ordinateur, ou démarrez dans un environnement réel (ou simplement alternatif) pour vous compliquer la vie. (J'ai testé la récupération de données de ZFS exactement de cette manière, mais sur de véritables machines nues, il y a sept ans lorsque je me suis intéressé aux systèmes de fichiers next-gen.)
J'espère que cela t'aides!