web-dev-qa-db-ja.com

/etc/mdadm.confを使用せずに特定のRAIDアレイを組み立てる方法

mdadmを使用して特定のRAIDアレイとそのスキャン機能をアセンブルすることは可能ですが、構成ファイルは必要ありません?

バックグラウンド:
カスタムセットアップのinitramfsを使用してシステム(dm-cryptなど)をセットアップしています。すべてはinitスクリプト内で実行および構成されており、それが私がそれを保持したい方法です。つまり、追加の構成ファイルなしでです。

私の目標:
initスクリプト内で、コマンドラインのみを使用して特定のRAIDアレイを1つ組み立てたいと思います。アレイはUUIDを介して識別され、mdデバイス名が指定され、アレイメンバーをスキャンする必要があります(たとえば、接続されたUSBスティックや故障したデバイスが/ dev/sdX名を台無しにするため)。他のすべてのデバイスと潜在的なRAIDアレイは無視されます。これは、ブート時にその1つのアレイのみが対象となるためです(ルートファイルシステムを実行します)。


mdadmのmanページを徹底的に読み、いくつかのテストを実行して、これを思いつきました。

mdadm --assemble --uuid <uuid> /dev/md0


これは機能しているようですが、これは正しい方法ですか?


manページから:
正確に1つのデバイスがリストされているが、-scanが指定されていない場合、mdadmは--scanが指定されているかのように動作し、識別情報が構成ファイルから抽出されます。

9
maxxim

配列UUIDがわかっている場合は、mdadm --assemble /dev/md0 --uuid <uuid>(パラメーターの順序のわずかな違いに注意)が必要な処理を実行します。未使用のすべてのボリュームをスキャンして、指定されたUUIDのmdメタデータを持つボリュームを探します。別のオプション:

  • mdadm --assemble /dev/md0 --name <name>--uuidと同じことを行いますが、UUIDの代わりに配列名を使用します。)
  • mdadm --assemble /dev/md0 --super-minor <minor id #>--uuidと同じことを行いますが、メタデータにマイナーデバイス番号を使用します。バージョン0.90メタデータにのみ推奨されます。)
  • mdadm --assemble /dev/md0 /dev/disk/by-id/<disk>...udev/dev/disk/by-idエイリアスを設定した場合、ハードウェアの変更全体で静的である必要があります。)
  • mdadm --assemble --scanアレイが構成ファイルにリストされていない場合(mdメタデータのすべての未使用ボリュームをスキャンし、検出されたものに基づいてRAIDアレイをアセンブルします。複数のアレイがあり、そのうちの1つ、または配列が分割されている場合、これは期待どおりに動作しません。)
15
Mark