sda
を交換するのと同じ問題があります そして sdb
ディスク名。私は自分の HP サーバーで上記の投稿と同様の udev ルールを書き込もうとしました。しかし、ディスクのサイズを /etc/udev/rules.d/00-corrections.rules
で使用しました
KERNEL=="sd?", ATTR{size}=="781357232", NAME="sda"
KERNEL=="sd??", ATTRS{size}=="781357232", NAME="sda%n"
KERNEL=="sda", ATTR{size}=="3125515952", NAME="sdb"
KERNEL=="sda?", ATTRS{size}=="3125515952", NAME="sdb%n"
このルールの前に、cat /sys/block/sda/size
でデバイスのサイズを見つけます と cat /sys/block/sdb/size
ここで説明されています:sysfs からの情報の検索。
しかし、udev ルールを udevadm test /sys/block/sdb
でテストしようとすると、 出力に次の行が表示されます:
NAME="sda" は無視されます。カーネル デバイス ノードの名前は変更できません。 /etc/udev/rules.d/00-corrections.rules:1 で修正してください
ubuntu 18.04 を使用していますが、これは不可能であることがわかりました (少なくとも ubuntu 18.04 では) この投稿に基づく:Is there a way to change device names in /dev directory?
最近では、Linux カーネルは UDEV ルールに従って /dev/ を動的に設定します。
まず、デバイス ファイルのしくみについて説明します。各デバイス ファイル (通常はブロック デバイス ファイル) には、メジャー番号とマイナー番号があります。これらの数値は、ファイルが指しているデバイスを実際に示しています。名前はこれには何の役割も果たしません。ディスクの特定のケースを見てみましょう:
# ls -l sd*
brw-rw---- 1 root disk 8, 0 Aug 22 15:45 sda
brw-rw---- 1 root disk 8, 1 Aug 22 15:45 sda1
brw-rw---- 1 root disk 8, 2 Aug 22 15:45 sda2
brw-rw---- 1 root disk 8, 3 Aug 22 15:45 sda3
brw-rw---- 1 root disk 8, 5 Aug 22 15:45 sda5
brw-rw---- 1 root disk 8, 6 Aug 22 15:45 sda6
ここで、私の最初のディスクにはさまざまなパーティションがあり、8 月 22 日の午後 3 時に起動したことがわかります。これは、カーネルがルールに従ってファイルを作成した時刻です。また、メジャー番号が 8 で、マイナー番号がパーティションへのアクセスに使用されていることもわかります (0 はディスク全体を指します)。各行の先頭にある「b」は、これらのそれぞれが特別な「ブロック デバイス」ファイルであることを示しています。
私が言ったように、カーネルは「最近」動的にファイルを作成します。常にそうであるとは限らず、他の Unix システムでもそうではありません。そこでは、ファイルが静的に作成され、ユーザーがこれらのファイルを作成または操作します。
独自の名前とメジャー/マイナー番号を使用して、独自のデバイス ファイルを作成することは完全に可能です。 mknod を参照 (man mknod
) そのために。ただし、再起動すると、カスタム ファイルは消えます。
2 つ目の可能性は、UDEV ルールを変更することです。ルールはシステムの起動中に処理され、永続的に一貫した動作が保証されます。これらの規則に関する適切なガイドは、http://www.reactivated.net/writing_udev_rules.html にあります。
デバイスに一致する特定のハードウェア情報を指定して、「sda*」を作成するルールを定義できることがわかります。 sda を作成する元のルールを自分のものに置き換える必要があります。これがどのように機能するかは、ディストリビューションによって異なります。
これは初心者にとって危険なビジネスだと思うので、具体的な手順については説明しません。上でリンクしたドキュメントは、必要なすべての情報を提供します。実際にすべて読む必要があります。