Question

Tous les fichiers de / dev sont des fichiers spéciaux ... ils représentent des périphériques de l'ordinateur. Ils ont été créés avec l'appel système mknod . Ma question est la suivante: comment puis-je connaître le mineur et les principaux numéros qui ont été utilisés pour créer ce fichier spécial?

Était-ce utile?

La solution

Cette liste est appelée Liste des périphériques LANANA Linux . Elle est administrée par Alan Cox.

Vous pouvez trouver la dernière version en ligne ( lien direct ), ou dans la source Linux. Son nom de fichier dans l'arborescence du noyau est Documentation / devices.txt .

Pour voir les nombres majeurs et mineurs qui ont créé un nœud dans / dev (ou n'importe quel nœud de périphérique, utilisez simplement ls avec - l option:

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

Dans cet exemple, 202 est le numéro majeur des trois périphériques et 0 , 16 et 32 sont des mineurs. Le b à gauche indique que le nœud est un périphérique en mode bloc. L'alternative est c , un périphérique de caractère:

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

Autres conseils

$ 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

La plupart des numéros de périphériques sont fixes (par exemple, / dev / null sera toujours un périphérique de caractères 1: 3 ), mais sous Linux, certains sont alloués de manière dynamique.

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

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

Par exemple, sur ce système, il se trouve que / dev / mapper / control sera c: 10: 57 tandis que le reste de / dev / mapper / * sera b: 254: * , et cela peut différer d'un cycle de démarrage à un autre - ou même lorsque les modules sont chargés / déchargés et que les périphériques sont ajoutés / supprimés .

Vous pouvez explorer ces enregistrements de périphériques plus en détail dans / 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

Vous pouvez également utiliser stat.

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

Spécialement pour les périphériques en mode bloc:

$ 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 /

Alternative qui ne dépend pas de stat :

$ cat /sys/class/*/random/dev
1:8
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top