來源:瀟湘隱者 ,
www.cnblogs.com/kerrycode/p/9335593.html
關於Linux中的裝置檔案,裝置檔案用來為作業系統和使用者提供它們代表的裝置介面。所有的Linux裝置檔案均位於/dev目錄下,是根(/)檔案系統的一個組成部分,因為這些裝置檔案在作業系統啟動過程中必須可以使用。應用程式可以開啟、關閉和讀寫這些裝置檔案,完成對裝置的操作,就像操作普通的資料檔案一樣。為了管理這些裝置,系統為裝置編了號,每個裝置號又分為主裝置號和次裝置號。主裝置號用來區分不同種類的裝置,而次裝置號用來區分同一型別的多個裝置。對於常用裝置,Linux有約定俗成的編號。
一個字元裝置或者塊裝置都有一個主裝置號和次裝置號。主裝置號和次裝置號統稱為裝置號。主裝置號用來表示一個特定的驅動程式。次裝置號用來表示使用該驅動程式的各裝置。
檢視主裝置號:
# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
6 lp
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
116 alsa
128 ptm
136 pts
162 raw
180 usb
189 usb_device
202 cpu/msr
203 cpu/cpuid
216 rfcomm
249 blkwatch_272
250 hidraw
251 usbmon
252 bsg
253 pcmcia
254 rtc
Block devices:
1 ramdisk
2 fd
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
如上所示,該命令會顯示字元裝置和塊裝置的主裝置號。如果你想檢視某個主裝置號,那麼可以
[root@mylnx01 ~]# cat /proc/devices | grep 253
253 pcmcia
253 device-mapper
其中Device Mapper,Device Mapper 是 Linux 2.6 核心中提供的一種從邏輯裝置到物理裝置的對映框架機制,在該機制下,使用者可以很方便的根據自己的需要制定實現儲存資源的管理策略,當前比較流行的 Linux 下的邏輯捲管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等都是基於該機制實現的。
次裝置號檢視
[root@mylnx01 ~]# ls -l /dev 或 ll /dev
[root@mylnx01 ~]# ll /dev | grep 253 | grep -v grep
brw-rw—- 1 root root 253, 0 Jul 17 23:08 dm-0
brw-rw—- 1 root root 253, 1 Jul 17 23:08 dm-1
brw-rw—- 1 root root 253, 2 Jul 17 23:08 dm-2
brw-rw—- 1 root root 253, 3 Jul 17 23:08 dm-3
brw-rw—- 1 root root 253, 4 Jul 17 23:09 dm-4
brw——- 1 root root 253, 1 Jul 17 23:09 root
但是在一臺伺服器的日誌資訊遇到下麵錯誤資訊,透過/dev 沒有找到次裝置號為253:14的塊裝置。 如下所示
Jul 19 05:02:01 mylnx01 kernel: BLKWATCH ERR: Attempt to get a sector index out of the bitmap bounds.
Jul 19 05:02:01 mylnx01 kernel: BLKWATCH ERR: Critical error 1 happened for device 253:14. Additional info: Failed to mark block as dirty.
[root@getlnx01 ~]# ll /dev | grep 253 | grep -v grep
因為這個裝置是一個VG,所以上述命令無法找到裝置,不過可以透過命令dmsetup檢視。如下所示:
# dmsetup ls
VolGroup03-LogVol00–PS–user–snapshot-cow (253, 15)
VolGroup05-LogVol00-real (253, 5)
VolGroup03-LogVol00–PS–user–snapshot (253, 16)
VolGroup00-LogVol00-real (253, 0)
VolGroup00-LogVol00–PS–user–snapshot (253, 3)
VolGroup01-LogVol00–PS–user–snapshot-cow (253, 23)
VolGroup05-LogVol00 (253, 6)
VolGroup04-LogVol00-real (253, 9)
VolGroup04-LogVol00 (253, 10)
VolGroup05-LogVol00–PS–user–snapshot (253, 8)
VolGroup04-LogVol00–PS–user–snapshot-cow (253, 11)
VolGroup03-LogVol00 (253, 14)
VolGroup02-LogVol00–PS–user–snapshot (253, 20)
VolGroup03-LogVol00-real (253, 13)
VolGroup02-LogVol00 (253, 18)
VolGroup02-LogVol00–PS–user–snapshot-cow (253, 19)
VolGroup01-LogVol00 (253, 22)
VolGroup02-LogVol00-real (253, 17)
VolGroup00-LogVol01 (253, 4)
VolGroup04-LogVol00–PS–user–snapshot (253, 12)
VolGroup00-LogVol00 (253, 1)
VolGroup05-LogVol00–PS–user–snapshot-cow (253, 7)
VolGroup01-LogVol00–PS–user–snapshot (253, 24)
VolGroup00-LogVol00–PS–user–snapshot-cow (253, 2)
VolGroup01-LogVol00-real (253, 21)
關於次裝置號的主要用途,這篇部落格主裝置號和次裝置號介紹了部分內容。
-
區分裝置驅動程式控制的實際裝置;
-
區分不同用途的裝置 (misc 系列裝置)
-
區分塊裝置的分割槽 (partition)
通常,為了使應用程式區分所控制裝置的型別,核心使用主裝置號。而存在多臺同類裝置時,為了選擇其中的一種,裝置驅動程式就使用次裝置號。
# ll /dev/ | grep sd #或者命令 ll /dev/ | grep disk
brw-r—– 1 root disk 8, 0 Jul 17 23:08 sda
brw-r—– 1 root disk 8, 1 Jul 17 23:10 sda1
brw-r—– 1 root disk 8, 2 Jul 17 23:08 sda2
brw-r—– 1 root disk 8, 3 Jul 17 23:08 sda3
brw-r—– 1 root disk 8, 16 Jul 17 23:08 sdb
brw-r—– 1 root disk 8, 17 Jul 17 23:08 sdb1
brw-r—– 1 root disk 8, 18 Jul 17 23:08 sdb2
brw-r—– 1 root disk 8, 21 Jul 17 23:08 sdb5
brw-r—– 1 root disk 8, 32 Jul 17 23:08 sdc
brw-r—– 1 root disk 8, 33 Jul 17 23:08 sdc1
brw-r—– 1 root disk 8, 34 Jul 17 23:08 sdc2
brw-r—– 1 root disk 8, 37 Jul 17 23:08 sdc5
brw-r—– 1 root disk 8, 48 Jul 17 23:08 sdd
brw-r—– 1 root disk 8, 49 Jul 17 23:08 sdd1
brw-r—– 1 root disk 8, 50 Jul 17 23:08 sdd2
brw-r—– 1 root disk 8, 51 Jul 17 23:08 sdd3
brw-r—– 1 root disk 8, 53 Jul 17 23:08 sdd5
brw-r—– 1 root disk 8, 64 Jul 17 23:08 sde
brw-r—– 1 root disk 8, 65 Jul 17 23:08 sde1
brw-r—– 1 root disk 8, 66 Jul 17 23:08 sde2
brw-r—– 1 root disk 8, 67 Jul 17 23:08 sde3
brw-r—– 1 root disk 8, 69 Jul 17 23:08 sde5
brw-r—– 1 root disk 8, 80 Jul 17 23:08 sdf
brw-r—– 1 root disk 8, 81 Jul 17 23:08 sdf1
brw-r—– 1 root disk 8, 85 Jul 17 23:08 sdf5
brw-r—– 1 root disk 8, 96 Jul 17 23:08 sdg
brw-r—– 1 root disk 8, 97 Jul 17 23:08 sdg1
brw-r—– 1 root disk 8, 98 Jul 17 23:08 sdg2
brw-r—– 1 root disk 8, 101 Jul 17 23:08 sdg5
brw-r—– 1 root disk 8, 112 Jul 17 23:08 sdh
brw-r—– 1 root disk 8, 113 Jul 17 23:08 sdh1
brw-r—– 1 root disk 8, 117 Jul 17 23:08 sdh5
參考資料:
-
https://blog.csdn.net/liangkaiming/article/details/6234238
●編號573,輸入編號直達本文
●輸入m獲取文章目錄
運維
更多推薦《18個技術類微信公眾號》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。