Linux

/proc/devices 中的所有“sd”設備是什麼

  • March 21, 2018

/proc/devices文件按主要修訂號和名稱列出了設備。在我的系統上它顯示(部分):

Block devices:
259 blkext
 7 loop
 8 sd
 9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp

那些“sd”設備是什麼?第一個(版本號 8)可能是/dev/sda,但其餘的沒有出現/dev- 沒有具有這些主要版本號的設備。

確實看到了設備列表:

crw-rw---- 1 root tty       7, 128 Jul 29 14:15 vcsa
crw-rw---- 1 root tty       7, 129 Jul 29 14:15 vcsa1
crw-rw---- 1 root tty       7, 130 Jul 29 14:15 vcsa2
crw-rw---- 1 root tty       7, 131 Jul 29 14:15 vcsa3
crw-rw---- 1 root tty       7, 132 Jul 29 14:15 vcsa4
crw-rw---- 1 root tty       7, 133 Jul 29 14:15 vcsa5
crw-rw---- 1 root tty       7, 134 Jul 29 14:15 vcsa6

其中次要編號可能是匹配的 - /proc 會顯示次要修訂號,以及為什麼它們被稱為sd. 無論哪種方式,我都沒有看到任何設備沒有。135.

有人可以向我解釋一下嗎?

第一個磁碟/dev/sda8:0(major:minor),但主要數字 8 也包含接下來的 15 個磁碟(Documentation/devices.txt在核心原始碼中):

 8 block       SCSI disk devices (0-15)
                 0 = /dev/sda          First SCSI disk whole disk
                16 = /dev/sdb          Second SCSI disk whole disk
                32 = /dev/sdc          Third SCSI disk whole disk
                   ...
               240 = /dev/sdp          Sixteenth SCSI disk whole disk

               Partitions are handled in the same way as for IDE
               disks (see major number 3) except that the limit on
               partitions is 15.

其餘的用於您的其餘驅動器(主要數字 66-71 和 128-134 相似,並且所有分區方案都相同):

65 block       SCSI disk devices (16-31)
                 0 = /dev/sdq          17th SCSI disk whole disk
                16 = /dev/sdr          18th SCSI disk whole disk
                   ...


135 block       SCSI disk devices (240-255)
                 0 = /dev/sdig         241st SCSI disk whole disk
                   ...
               240 = /dev/sdiv         256th SCSI disk whole disk

好吧,您可能沒有那麼多磁碟,並且系統只生成您實際擁有的設備所需的節點,所以sda除了/dev.


至於vcsa和朋友,它們與虛擬控制台有關:

 7 char        Virtual console capture devices
                 0 = /dev/vcs          Current vc text contents
                 1 = /dev/vcs1         tty1 text contents
                   ...
               128 = /dev/vcsa         Current vc text/attribute contents
               129 = /dev/vcsa1        tty1 text/attribute contents
                   ...

另請注意,這/dev/vcs*是字元設備,而不是塊設備。輸出中的第一個字母ls告訴它是哪一個。

引用自:https://unix.stackexchange.com/questions/383926