
私の友人は、Linux カーネル RAID (mdadm raid5/6) は信頼できないと言っていました。物理ボリュームの 1 つでセクターを上書きしようとしてファイルが破損したからです。私は、RAID5 システムはエラーを検出するのではなく、ディスク読み取りエラーによってエラーがすでに検出された場合にエラーを修正することだけを目的としているため、これは正常だと答えました。
しかし、ディスク自体にエラーを書き込むことで、この概念を証明したり信頼性テストを行ったりする方法があるのか疑問に思いました。Linux で、コントローラーにすべてを管理させるのではなく、"CRC"⁽¹⁾ コードを手動で読み書きできるような、ある種の raw モードでセクターを書き込む (または読み取る) 方法はあるでしょうか?
同じ論理で、ディスクを回復不能にするために、不良な回復ソフトウェアで発生する、オリジナルではなくコピー上でいくつかのデータ回復処理を試すために、ディスクを別のディスクにそのままコピーする方法はありますか。
誰かが同様の質問をしているのを見たことがあるここまたはそこにはですが、かなり古く、あまり明確ではなく、満足のいく回答も得られませんでした。明らかに、目的はディスクを物理的に破壊することではなく、無効なコンテンツを強制的に書き込むことであり、後で同様の方法で書き換えられる可能性があります。ちなみに、ディスクに実際にエラーが含まれている場合、事前に正しく読み取る必要があるため、通常の操作でセクターが再配置される可能性はありません。
(1) : 最近のディスクではエラー検出コードがまだ CRC ベースであるかどうかわからないため、引用符を付けました。
答え1
非常に短い答えですが、これが受け入れられるなら:
基本的に、すべてのストレージ メディアは、さまざまな他のプロトコル (SATA、USB など) を介して SCSI コマンドを送信することによってアクセスされますが、それらのコマンドで CRC または同様のフィールドを制御する方法はありません。実際、最新のドライブは、次の書き込み時に CRC が良好な他のセクターにマッピングすることで修正できない不良 CRC のセクターを、自動的に置き換えます。
これらすべてをより直接的に制御できるベンダー固有の拡張機能があるかもしれませんが、ベンダーはそれを教えてくれないでしょう。