Linuxでデバイススペシャルファイルのメジャー番号とマイナー番号を知っている

StackOverflow https://stackoverflow.com/questions/1823743

  •  22-07-2019
  •  | 
  •  

質問

/ dev 内のすべてのファイルは特別なファイルです...それらはコンピューターのデバイスを表します。 それらは mknod syscallで作成されました。私の質問は次のとおりです。 この特別なファイルの作成に使用されたメジャー番号?

役に立ちましたか?

解決

リストは LANANA Linux Device List と呼ばれ、Alan Coxによって管理されます。

オンラインで最新のコピーを見つけることができます(直接リンク)、またはLinuxソース内。カーネルツリーのファイル名は Documentation / devices.txt

/ dev にノードを作成したメジャー番号とマイナー番号(またはそのためのデバイスノード)を表示するには、-で ls を使用します。 l オプション:

22:26 jsmith@undertow% ls -l /dev/xvd?
brw-rw---- 1 root disk    202,   0 Nov  1 20:31 /dev/xvda
brw-rw---- 1 root disk    202,  16 Nov  1 20:31 /dev/xvdb
brw-rw---- 1 root disk    202,  32 Nov  1 20:31 /dev/xvdc

この例では、 202 は3つのデバイスのメジャー番号であり、 0 16 、および 32 は未成年です。左側の b は、ノードがブロックデバイスであることを示しています。代替手段は、キャラクターデバイスである c です:

crw-rw-rw- 1 root tty       5,   0 Nov 22 00:29 /dev/tty

他のヒント

$ ls -l /dev/fd0 /dev/null
brw-rw---- 1 root floppy 2, 0 Nov 22 19:48 /dev/fd0
crw-rw-rw- 1 root root   1, 3 Nov 22 19:48 /dev/null
$ stat -c '%n: %F, major %t minor %T' /dev/fd0 /dev/null
/dev/fd0: block special file, major 2 minor 0
/dev/null: character special file, major 1 minor 3

ほとんどのデバイス番号は固定されています(つまり、 / dev / null は常にキャラクターデバイス 1:3 になります)が、Linuxでは一部が動的に割り当てられます。

$ cat /proc/devices
Character devices:
...
 10 misc
...

Block devices:
...
253 mdp
254 device-mapper
$ cat /proc/misc
...
 57 device-mapper
...

たとえば、このシステムでは、 / dev / mapper / control c:10:57 になり、残りの / dev / mapper / * b:254:* であり、これはブートサイクルごとに異なる場合があります-モジュールがロード/アンロードされ、デバイスが追加/削除される場合でも。

これらのデバイス登録は、 / sys でさらに調べることができます。

$ readlink /sys/dev/block/2:0
../../devices/platform/floppy.0/block/fd0
$ cat /sys/devices/platform/floppy.0/block/fd0/dev
2:0
$ readlink /sys/dev/char/1:3
../../devices/virtual/mem/null
$ cat /sys/devices/virtual/mem/null/dev
1:3

statを使用することもできます。

$ stat -c 'major: %t minor: %T' <file>

特にブロックデバイスの場合:

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0   90G  0 disk
├─sda1    8:1    0    4G  0 part [SWAP]
├─sda2    8:2    0    4G  0 part /

stat に依存しない代替案:

$ cat /sys/class/*/random/dev
1:8
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top