次回登録されるSCSI大容量記憶装置名を予測できますか?

次回登録されるSCSI大容量記憶装置名を予測できますか?

sdX次の大容量記憶装置(sda、、、、…)は、SCSIドライバから受信するデバイス名()を予測する必要がありますsdbsdc

あるデバイスを削除して別のデバイスを接続すると、新しく接続されたデバイスが削除されたデバイスの名前を使用せずに、代わりにアルファベット順のデバイス名を使用することがわかります。

この情報はどこに保存されますか?保管期間はどのくらいですか?この情報を使用して、次のデバイスが受信するデバイス名を予測するにはどうすればよいですか?

答え1

udevルールの処理とデバイスノードの作成を見てみる必要があるようです。デフォルトのudevルールは/lib/udev/rules.dにありますが、/etc/udev/rules.dで上書きできます。

答え2

私はLinuxが最初に利用可能な文字を使うと思います。ただし、これはカーネルのバージョンとデバイスの種類によって異なります。

あなたが必要とする可能性はほとんどありません予測する次の手紙。とにかくあなたはそれで役に立つものは何もできません:プログラムが反応する時間がある前に2つのデバイスを追加した場合Linuxには次のメカニズムがあります。コントロールデバイス名:ウデブ。 udevルールを作成して、デバイスの特定の種類、メーカー、モデル、特定のラベル、またはUUIDを持つファイルシステムを識別し、一致するデバイスが挿入されたらスクリプトを実行できます。バラよりIDEドライブを/ dev / hdaにマッピングするそしてワイヤレスキーボードが接続されている間に操作を実行するいくつかの例を見てください。

デフォルトのudevルールは、モデルとシリアル番号(in)でブロックデバイスを識別し、ラベルと/dev/disk/by-idシリアル番号(in/dev/disk/by-labelと)で/dev/disk/by-serialファイルシステムを識別するリンクを自動的に生成します。これはあなたの要求に十分かもしれません。

答え3

あるデバイスを削除して別のデバイスを接続すると、新しく接続されたデバイスが削除されたデバイスの名前を使用せずに、代わりにアルファベット順のデバイス名を使用することがわかります。

いいえ。時間と既存のデバイスの電源が入っているかどうかによって異なります。私のシステムからUSBフラッシュドライブを接続してから取り外し、数秒後に再接続すると、同じデバイスが表示されることがあります。接続してマウントしてマウント解除しない場合は、再接続すると次のデバイスが得られます。

文字自体は、実際のデバイスのメジャー/マイナーほど重要ではありません。以前のエントリがまだ使用中の場合、カーネルは別のエントリを使用します。

これは、カーネルが特定の操作に30秒以上かかると予想されるSCSI / SASテープで非常に明確に見えます。リンクが少し不安定な場合、カーネルはまだ/ dev / st0を開いて再び表示されると、ハードウェアはまだ使用中です(カーネルログには、デバイスの初期化が次の初期化として表示されるまでに長い時間がかかることを示します)。デバイス)。

レビューを見ると、次の端末を予測する必要があるのはなぜですか。多くの場合、udev(または他の多くの方法)を聞いて次のデバイスをudevadm monitor見つけ、特定の文字ではなく識別子として使用することをお勧めします。

関連情報