すべてのRAID1スーパーブロックを誤ってゴミで上書きしてしまいました。これは、Ubuntuが私をある種のハードディスクリカバリモードにしたときにALT-CTRL-DELを起動したために起こったと思います。私のディスプレイは機能していませんでした、そして私はこの「ブラインド」をしました。
RAIDパーティションを見ると、次のことがわかります。
# mdadm --examine /dev/sdc2
/dev/sdc2:
Magic : a92b4efc
Version : 0.90.00
UUID : 00000000:00000000:00000000:00000000
Creation Time : Fri Nov 1 18:59:05 2013
Raid Level : -unknown-
Raid Devices : 0
Total Devices : 1
Preferred Minor : 127
Update Time : Fri Nov 1 18:59:05 2013
State : active
Active Devices : 0
Working Devices : 1
Failed Devices : 0
Spare Devices : 1
Checksum : 6b1f0d22 - correct
Events : 1
Number Major Minor RaidDevice State
this 0 8 34 0 spare /dev/sdc2
0 0 8 34 0 spare /dev/sdc2
スーパーブロックがガベージによって完全に上書きされていることは明らかです。両方のディスク(sdb2、sdc2)は同じように見え、情報はガベージ、uuidはすべてゼロ、RAIDレベル:不明、RAIDデバイス:0などです。
私が持っている最善の策はこれです:
mdadm --create --assume-clean --metadata=0.90 /dev/md0 --level=1 --raid-devices=2 /dev/sdb2 /dev/sdc2
Mdadm --createを使用してRAIDアレイを再作成できますか?
RAIDスタックには、LVM2物理ボリュームがあります。どういうわけか、個々のディスクまたはバックアップディスクイメージからLVM2データにアクセスできますか?
GRUBはディスクからinitrdとカーネルイメージを見つけることができます。/bootはLVM2の上にあるext4ルートパーティションファイルシステムにあり、個別のパーティションではありません。したがって、データはほとんど無傷であり、スーパーブロックはなくなっていると思います。
編集:mdadmコマンドラインに--assume-cleanを追加します
0.90
スーパーブロック形式の場合は、メンバーを直接使用できるはずです(必要に応じて読み取り専用モードで)。これにより、データにアクセスできるようになり、もう一方のディスクだけで新しい新しいRAID-1を作成し、データをコピーしてから、元のディスクをRAIDに追加できます。
ただし、それが別のもの(1.2
メタデータなど)の場合は、マウントする前に、まず実際のパーティションのオフセットを見つける必要があります。たとえば、LVMの場合、次のようなオフセットを取得します。
# grep -a -b --only-matching LEVELONE /dev/disk
1049088:LABELONE
PVの最初のセクターは無料なので、512を引きます。それが実際に0.90
または1.0
メタデータであった場合、grepは512を表示するはずです。代わりに、これは0
の実際のオフセットを意味します。何か大きくなった場合、RAIDは他の形式を使用していました。
この場合、正しいオフセットでループデバイスを作成できます。
# losetup -f --show --read-only --offset $((1049088-512)) /dev/disk
/dev/loop0
# file -s /dev/loop0
LVM2 ...
そして、それがあなたのPVであり、vgscan
/vgchange -a y
が残りを処理する必要があります。
mdadm --create
に関しては、自分が何をしているのかを知っていれば実行できます。あなたはそれに非常に、非常に注意する必要があります。それは最後の手段にすぎません。
オフセットが0
の場合は、必ず0.90
メタデータを使用してください(それが使用していたものであることが確実な場合)。オフセットが別のものである場合は、mdadm --create
が同じオフセットを再度使用することを確認してください。通常、mdadm
のデフォルトは時間の経過とともに変化しません。したがって、--data-offset
を使用してコマンドラインで直接指定します。
また、1つのディスクのみで作成してください。もう一方のディスクはmissing
のままにします。これは、--assume-clean
よりも優れた方法です。最初に、作成がまったく機能したかどうかを確認し(/dev/md?
デバイスのデータは使用可能ですか?)、次に他のディスクを適切に同期させることができます。