解決策 1:
この情報はおそらくOPを助けるには遅すぎますが、おそらく他の誰かを助けるでしょう.
最初のコマンドはスーパー ブロックをワイプし、2 番目のコマンドは新しいアレイを作成しますが、デバイスがクリーンであると想定しています。これを実行したところ、すべて問題ないようです。これを行う前に、バックアップをお勧めします。失うデータがなかったため、整合性を確認する必要がありませんでした。あと 4 時間の再同期を避けたかっただけです。
$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
--level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90
解決策 2:
0.90 と 1.2 のメタデータ ブロックはサイズだけでなく場所も異なるため、上記のように、クリーンで一貫性のないメタデータを想定して配列を作成すると、既存のデータが破損する可能性があります。
0.90 <-> 1.0 で機能する場合がありますが、これは例外です。
https://raid.wiki.kernel.org/index.php/RAID_superblock_formats
解決策 3:
GRUB wiki は次のことを確認しています:
<ブロック引用>また、(1.96+20080724 の時点で) GRUB は、バージョン 0.90 メタデータ スーパーブロック (つまり、mdadm の --metadata=0.90 オプションで作成されたもの) を使用する RAID からのみ起動できます。
不思議なことに、mdadm の man ページには
<ブロック引用>-e , --metadata=
使用するスーパーブロック (raid メタデータ) のスタイルを宣言します。 --create のデフォルトは 0.90 で、その他の操作では推測します。
mdadm -Q -D <device>
で再確認します
その後、どの RAID レベルを実行していますか?ミラー (RAID 1) について考えられる最良のシナリオは、
<オール>n
の配列 0 からデバイス A を削除します デバイスn-1
を使用してアレイ 1 を作成します スペア、古いスーパーブロック形式を明示的に使用n-1
まで繰り返します デバイス...しかし、絶対にこれを実行する必要があることを確認してください!