何年も前に故障した古いハードウェアがいくつかありますが、まだ2台のHDDがあり、どちらもJBODとして構成されています。
これらのドライブを1台のHDDにダンプし、実際のハードウェアが使用できなくなった状態でJBODを削除/再構築する方法はありますか?
JBODは、Promise 20579チップ– AMD64用のMSIメインボードK8TNeo上に構築されました。
ディスクが1つの大きなボリュームに連結される可能性があります。 JBODに関しては、これが最も簡単なソリューションです。 ハードウェア担当者のみが従った場合 KISS原則 )ハードウェアではなくソフトウェアを使用してデータにアクセス/ダンプすることに問題はありません。
Linuxでは適切なツールはdmsetup
ですが、ディスクをイメージ(または別のディスク)にのみダンプする場合は、単純なcat
で十分な場合があります。
最初に、JBOD内のディスクの元の順序を知る必要があります。最初のディスクを簡単に識別できるはずです。トリッキーな部分はそれらの残りを注文することです。 HDDが2台ある場合は問題ありません。最初のディスクには、全体JBOD上のパーティションを記述する有効なMBRパーティションテーブルまたは有効なGPT(プライマリですがセカンダリではありません)があります。パーティションテーブルなしでJBODを使用しない限り、この方法は機能します。 gdisk -l
でディスクを確認し、最初のディスクを特定します。
私の例では、適切な順序は/dev/sdb
、/dev/sdc
です。以下の変数定義を必要に応じて変更してください。
device1=/dev/sdb
device2=/dev/sdc
このようにして、変更なしで後続のBashコマンドを使用できます。
ディスクをイメージにダンプするには、これで十分です(注:今後、Sudo
が必要になる場合があります)。
cat "$device1" "$device2" > image.raw
実際にJBODを操作したい場合は、さらに準備が必要です。デバイスのサイズを512バイトのセクターに保存する必要があります。サイズを取得するコマンドはblockdev --getsz /dev/sdX
のようなものなので、
size1="$(blockdev --getsz "$device1")"
size2="$(blockdev --getsz "$device2")"
echo "$size1" "$size2"
で2つの番号があることを確認します。 (サニティチェック:それらに512を掛けると、ディスクのサイズを取得する必要があります。)
仮想連結デバイスを作成する時が来ました。次のコードは、読みやすさのためにヒアドキュメント構文を使用しています。 Bashを使用しない場合は、調整が必要になる場合があります。一方、Bashでは、ターミナルに貼り付けるだけで機能するはずです。
dmsetup create mydevice << EOF
0 $size1 linear $device1 0
$size1 $size2 linear $device2 0
EOF
注mydevice
は任意の名前です。 2行目と3行目は、dmsetup
のデバイスマップを作成します。詳細については、man dmsetup
を参照してください。
これで、/dev/mapper/mydevice
が使用可能になり、使用できるようになります。それはあなたのJBODです。 (dmsetup
のすべての実装が/dev/mapper/
にノードを作成するかどうかは100%わかりませんが、mydevice
はどこかに表示されるはずです。)他のデバイスと同じように操作します。
読む 私の別の答え 。その中の取り付けセクション全体があなたのケースに適用されます。
/dev/mapper/mydevice
を破壊するには:
dmsetup remove /dev/mapper/mydevice
もちろん、最初にそのパーティションをumount
する必要があります。