title Gentoo Linux 3.0.8 Hardened
kernel (hd0,0)/linux-3.0.8-hardened/linux \
root=/dev/md0 \
md=0,/dev/sda1,/dev/sdc1 \
rootfstype=ext4 \
rootflags=nodelalloc,data=ordered,journal_checksum,barrier=1,acl,user_xattr \
panic=15 \
vga=792
パラメータ値:
1. root = / dev / md0は、ルートFSからデバイスファイルの名前を設定します。
2. md = 0、/ dev / sda1、/ dev / sdc1
このパラメーターについて詳しく説明します。 次の形式があります。
md=md_device_number,raid_level,chunk_size_factor,fault_level,dev0,dev1,...,devn
- md_device_number -mdデバイス番号。 たとえば、0は/ dev / md0を意味し、1は/ dev / md1を意味します。 注意してください-これはデバイスのNUMBERであり、Webの説明で時々見られるように、アレイに含まれるディスクの数ではありません。
- raid_level -RAIDレベル。 線形モード(値-1)およびRAID-0(値0)に必要です。 他のタイプの配列の場合、情報はスーパーブロックから取得されるため、この値は省略してください。
- chunk_size_factor-チャンクのサイズを設定します。 最小値は4kb(4k)です。
- fault_level-ドキュメントから理解している限り、このパラメーターはMDドライバーによって無視されます(その後はどうなりますか?)
- dev0、...、devn-アレイに含まれるデバイスのリスト。
もう一つ重要な点があります。 ドキュメントには、ドライバーがスーパーブロックバージョン0.90.0およびmd-1をサポートすることが記載されています。
しかし、デフォルトでmdadmによって作成されるスーパーブロックバージョン1.2のRAID-1から起動しますが、成功しませんでした。 バージョン0.90.0でアレイを再作成する必要があり、その後ダウンロードが成功しました。 おそらく、バージョン1.1と1.2を除いて、バージョン1.0のサポートを意味していました。
mdadmスイッチ--metadata = 0.90を指定して、スーパーブロックバージョン0.90で配列を作成できます。たとえば、次のようになります。
$ mdadm --create /dev/md0 -n 2 -l 1 --metadata=0.90 /dev/sd[ac]1
アレイが既に作成されているが、スーパーブロックのバージョンが1.2の場合、上記のコマンドで新しいアレイを作成し、古いアレイから新しいアレイにデータを転送するだけで、バージョン0.90に変更できます。 つまり データバックアップ必須!
次に、その理由を説明します。 テスト配列のデータを失うことなく、スーパーブロックを1.2から0.90に置き換える可能性を特に確認しました。 今後は、そのような可能性はないと言います。 いずれにせよ、私は成功しませんでした。 あなたがこれを行う方法を知っているなら-教えてください、私は感謝します。
理論的には、ご想像のとおり、次のコマンドでスーパーブロックを消去できます。
#!!! . !!!
$ mdadm --zero-superblock /dev/sd[ac]1
ディスク同期なしで新しいアレイを作成します(--assume-clean)が、コマンドでバージョン0.90を作成します。
$ mdadm --create /dev/md0 --assume-clean -n 2 -l 1 --metadata=0.90 /dev/sd[ac]1
動作します。 アレイは作成され、パーティションテーブルは残ります(ext4を持つ1つのパーティションがアレイに作成されました)が、以前に(スーパーブロックをクリーニングする前に)作成されたファイルシステム(ext4)は、破損したスーパーブロックを誓ってマウントを拒否します。 アレイv1.2とv0.90のこのFSのスーパーブロックを比較すると、それらが異なることがわかりました。 さらに、メインスーパーブロックもバックアップスーパーブロックも保存されません(ブロック1および8193)。 だからチームも
$ mount -o sb=8193,nocheck -t ext4 /dev/md0 /mnt/test
保存しません。 つまり データについては、RAIDアレイのスーパーブロックのバージョンの変更が行われましたx ...一般に、それは悪いことです。
したがって、新しいアレイを作成し、そこにデータを転送する方が、より重要で、最も安全です。
ちなみに、同じバージョンの破損したスーパーブロック(バージョン1.2のアレイがあり、同じバージョンの破損したスーパーブロックを復元しているとしましょう)を上記の2つのコマンドで修復すると、データは正常に機能します。 --assume-cleanスイッチのおかげで、アレイの各ディスクに新しいスーパーブロックのみが作成され、データ自体には影響しません。
MDドライバーのドキュメント