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が指定されているかのように動作し、識別情報が構成ファイルから抽出されます。
配列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つ、または配列が分割されている場合、これは期待どおりに動作しません。)