数年前に故障した古いハードウェアがいくつかあり、そこにはまだ2台のHDDがあり、どちらもJBODとして構成されています。
これらのドライブを1台のHDDにダンプし、JBODを削除/再構築する方法はありますか?
JBODは、Promise 20579チップ(AMD 64用のMSIメインボードK8T Neo)上に構築されました。
数年前に故障した古いハードウェアがいくつかあり、そこにはまだ2台のHDDがあり、どちらもJBODとして構成されています。
これらのドライブを1台のHDDにダンプし、JBODを削除/再構築する方法はありますか?
JBODは、Promise 20579チップ(AMD 64用のMSIメインボードK8T Neo)上に構築されました。
回答:
ディスクが連結されて1つの大きなボリュームになる可能性があります。JBODに関しては、最も簡単なソリューションです。ハードウェア担当者のみがKISSの原則に従った場合、ハードウェアの代わりにソフトウェアを使用してデータにアクセス/ダンプすることに問題はありません。
Linuxでは適切なツールはですがdmsetup
、ディスクをイメージ(または別のディスク)のみにダンプする場合は、単純なものでcat
十分です。
最初に、JBODのディスクの元の順序を知る必要があります。最初のディスクを簡単に識別できるはずです。トリッキーな部分は、残りを注文することです。2台のHDDがある場合、問題はありません。最初のディスクには、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を掛けると、ディスクのサイズを取得できます。)
仮想連結デバイスを作成します。次のコードでは、読みやすくするためにhereドキュメントの構文を使用しています。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です。(私は100%確実すべての実装ではありませんよdmsetup
内のノードを作成し/dev/mapper/
、それにもかかわらず、mydevice
どこかに表示されます。)他のデバイスと同じようにそれに取り組みます。
別の答えを読んでください。その中の取り付けセクション全体があなたのケースに適用されます。
破壊するには/dev/mapper/mydevice
:
dmsetup remove /dev/mapper/mydevice
もちろんumount
、最初にパーティションを作成する必要があります。