web-dev-qa-db-ja.com

LinuxソフトウェアRAIDを使用してシリコンイメージコントローラーから孤立したRAID 0を回復しますか?

私は古いXP Raid0のマシン、2x 120GBドライブをSil3112 controller。ドライブは無傷(afaik)ですが、マザーボードまたはP4はトーストです。

ドライブから貴重な写真を復元したり、その内容全体を外部にダンプしたりするのが好きです。 UbuntuがliveCDを使用してデータを回復できるように、最新のシステムでアレイを再構築できる可能性があることを理解し始めています。これは正しいです?

その場合、既存のRAIDポート/コントローラなどを備えたマシンが必要ですか、それとも通常のSATA接続を備えたボードが必要ですか。このトピックに関する支援に感謝します。

1
user220310

It8212「偽のRAID」コントローラとRAID0の2つのディスクでほぼ同じ問題がありました。驚いたことに、mdadmは少しの試行錯誤で問題を解決できました。チャンクサイズ(各ディスクの各並列ディスクの読み取り/書き込みの量)を知っている/覚えている場合は、そのようなことを試すことができます(まだ試していない)。

 Sudo mdadm --build --verbose --run --chunk=64 /dev/md0 --level=raid0 --raid-devices=2 /dev/sde /dev/sdd

/ dev/md0がすでに使用されている場合は、0の代わりに増分番号を使用してもかまいません。もちろん、/ dev/sdeおよび/ dev/sddの場合、ディスクは私の場合、チャンクサイズは64kでしたが、簡単に確認できます。独自の構成:Sudo fdisk -l

これにより、すべての物理ディスクのすべてのパーティションが一覧表示されます。サイズ、シリンダー、セクターなどの点で興味のあるこれらの2つはまったく同じである必要があります。さらに、パラメーターの順序が重要であるため、最初の(私の/ dev/sdeの代わりに)パーティションテーブル(またはその一部(拡張dosパーティションを使用した場合)、および2番目のパーティション(私の/ dev/sdd)は完全に破損しているように見えます。ただし、他のRAID以外のディスクには触れないように注意してください。:-) OTAH、両方が無効になっているように見える場合は、この回答を読むのをやめることができます。

--createの代わりに--buildを使用すると、スーパーブロック情報の作成がスキップされ、データ消去のリスクが回避され、さらに最も重要なことに、セクター0から実際のデータが開始され、いわゆる「レガシー」アセンブリが作成されます。これは、ほとんどの「偽のRAID」チップセットベンダーが行うことです(推測によると、スーパーブロック情報はチップセットNVメモリに書き込まれるため、ディスクにメタデータを書き込む必要はありません)。

ここで、元のチャンクサイズを覚えていない場合は、試行錯誤が必要です...毎回異なるチャンクサイズでビルドしてから、/ dev/md0でfdisk -lを明示的に使用して、パーティション情報が表示されるかどうかを確認してください正しく。その場合は、検出されたパーティションの1つを読み取り専用としてマウントし、一部のデータ(できればテキスト)を確認して確認してください。そうでない場合は、元に戻します。 mdadmのビルドを元に戻し、ディスクを再び使用できるようにするには、Sudo mdadm --stop /dev/md0およびSudo mdadm --remove /dev/md0を使用してから、チャンクサイズを変えて再試行します。

マウントで十分です(破損したパーティションをマウントする機能は非常にまれです)が、パーティション識別子文字列を検索して、正しいチャンクサイズをチェックするためのやや高度なトリックです。うまくいけば、有効なパーティションテーブルには、1つ以上の認識可能なパーティションの開始セクターが記述されています。繰り返しますが、私の場合:

 /dev/sde1   *          63    47118644    23559291    7  HPFS/NTFS/exFAT
 /dev/sde2        47118645   102896324    27888840    7  HPFS/NTFS/exFAT
 /dev/sde4       102896325   980463014   438783345    5  Extended

ほとんどすべての場合、すべてのタイプのパーティションの先頭に近い識別子文字列を見つけることができます。すなわち。 NTFSの場合は「NTFS」自体。 ddを使用して、ディスクの最初の数セクター(/ dev/md0)をファイルにコピーします。

 Sudo dd if=/dev/md0 of=testfile bs=1024 count=256 skip=0

これにより、最初の(skip = 0)256Kのディスクデータが「testfile」にコピーされます。今、次のようなものを使用します:

strings -a -t d testfile | grep NTFS

または、16進数を好む場合はdの代わりにx、またはもっと簡単に、

hexdump -C testfile | less

次に、「/」で検索します

そして、ディスク全体での弦の位置を見つけることができます。計算されたパーティションオフセットと比較してください。たとえば、私の場合、最初のntfsパーティションは63番目のセクターで開始され、オフセットは63 * 512 = 32256になります。「NTFS」文字列は32259の場所で見つかったため、これを「一致」と見なします(3バイトは最初のポスト)。 (ddでゼロ以外のスキップが使用されている場合は、skip * bsを計算に追加することを忘れないでください)。残念ながら、一致は必ずしも正しいチャンクサイズであることを意味しませんが、不一致は確かにそうでないことを意味します。

2
trollercoaster

私が知る限り、mdadm/LinuxソフトウェアRAIDではサポートできません。これは、サポートされる外部メタデータ形式が Intel(R)Matrix Storage ManagerとDDF

同じチップ(およびおそらくファームウェア)を備えた正確または類似のマザーボードまたはコントローラーを入手する必要があり、ドライブを「インポート」するか、データが失われる場合は、非常に注意が必要です。

私はずっと前にシリコンイメージチップを使用していて、このソリューションがいかに悪いかを理解しました(何か問題が発生した場合に備えて、常に正確なスペアのコントローラーを用意しておく必要があります)。

偽のRAIDサポート

Ubuntu Community Documentation および Arch Linux Wikidmraid/Fake RAIDに関する記事が役立つかもしれませんあなたへ。

LinuxソフトウェアRAIDと偽RAID

偽のRAID のLinux Raid Wikiからの抜粋:

適切なハードウェアRAIDシステムは、ブロックデバイスとしてLinuxに提示されます[...]

BIOS /ファームウェアRAID別名偽RAIDカード:

  • [...]
  • 「レイド」カードまたはマザーボードが故障した場合、正確な交換品を見つける必要があり、これは古いカードでは扱いにくい場合があります
  • ドライブが他のマシンに移動すると、データを簡単に読み取ることができません
  • 通常、アレイの監視やレポートは行われません。問題が発生した場合、マシンを再起動しない限り実際に誰かがBIOSブート画面(または複数のエラーが発生してデータが失われるまで)
  • おそらくテストされておらず、サポートメカニズムがなく、コミュニティもほとんどない、BIOSに書き込まれたパッチ適用不可能なソフトウェアにデータを委託しています。
  • [...]

RAIDのポイントは通常リスクを低減することであることを考えると、ファケレイドを使用することはひどい考えであり、真のHW RAIDまたはカーネル内のSW RAIDのいずれかにエネルギーを集中する方が良いと言えます[...]

0
LiveWireBT