udev ルール: IMPORT{cmdline}="nodmraid" - これは何をしますか?

udev ルール: IMPORT{cmdline}="nodmraid" - これは何をしますか?

マニュアルでは明確ではありません。

IMPORT{cmdline}="nodmraid"実際に?

nodmraidという環境変数に "nodmraid"コマンドライン引数を導入しますか、それとも環境変数 "nodmraid"を "1"または ""に設定しますか、それとも単に "1"を返します(しかし値は割り当てられません)。 )?

ありがとう

答え1

IMPORT{cmdline}="nodmraid"カーネルコマンドラインを解析し、nodmraidデバイスのプロパティを設定します(1プロパティがnodmraid引数なしで起動コマンドラインに表示される場合)。パラメータがある場合(実際には意味はありませんが、nodmraidパラメータを提供できます)、属性値をそのパラメータに設定します。

これが正確にどのように機能するかを確認する簡単な規則IMPORT{cmdline}は次のとおりです。

IMPORT{cmdline}="ro"
IMPORT{cmdline}="modprobe.blacklist"
IMPORT{cmdline}="nodmraid"

(単に起動コマンドラインから任意のオプションを選択するだけです)結果は次のとおりです。udevadm info

$ udevadm info /dev/sda --query property --property nodmraid,ro,modprobe.blacklist
ro=1
modprobe.blacklist=nouveau

roパラメータがないため、値がに設定されており1modprobe.blacklistパラメータ()があり、値がに設定されていますが、開始パラメータにnouveau存在しないため設定しませんでした。nouveaunodmraid

実際にカーネルコマンドラインにある場合は、上記の「テスト」ルールがなくても、すべてのデバイスnodmraidに対して実際に設定されていることがわかります。1

$ udevadm info /dev/vda1 --query property --property nodmraid
nodmraid=1

関連情報