Linux中如何通過設備號找到設備

来源:https://www.cnblogs.com/kerrycode/archive/2018/07/19/9335593.html
-Advertisement-
Play Games

關於Linux中的設備文件,設備文件用來為操作系統和用戶提供它們代表的設備介面。所有的Linux設備文件均位於/dev目錄下,是根(/)文件系統的一個組成部分,因為這些設備文件在操作系統啟動過程中必須可以使用。應用程式可以打開、關閉和讀寫這些設備文件,完成對設備的操作,就像操作普通的數據文件一樣。為... ...


關於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

 

clip_image001

 

 

因為這個設備是一個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)

 

 

clip_image002

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • linux結構目錄 中有一句話叫做:一切皆文件。 下麵來瞭解一下這些文件。 首先看一下 根目錄下結構: :存放二進位可執行文件,一般常用命令都存放在這裡。 :存放系統啟動時的一些引導文件。 :存放設備文件,一般時用於掛載光碟機,訪問文件相當於訪問光碟機。 :存放系統配置文件。 :預設的用戶的家目錄,存放 ...
  • 3.1 用戶配置文件和密碼配置文件 3.2 用戶組管理 3.3 用戶管理 1、用戶配置文件和密碼配置文件 /etc/passwd配置文件 每個用戶一行,用冒號分隔為七段 分別表示: /etc/shadow配置文件 與/etc/passwd配置文件一一對應 每個用戶一行,用冒號分隔為八段 分別表示: ...
  • Linux集群 Linux集群(cluster)就是一組Linux電腦,它們作為一個整體向用戶提供一組網路資源,這些單個的電腦系統就是集群的節點(node)。一個理想的集群,用戶是不會意識到集群系統底層的節點的,在他們看來,集群是一個系統,而非多個電腦系統,並且集群系統的管理員可以隨意增加和刪 ...
  • 最近系統伺服器進行搬遷,又恰好需要使用定時任務運行程式,而我的程式主要使用PHP寫的,然後總結了下定時任務的用法,但是在使用過程中遇到不少問題,例如no crontab for root等問題。 ...
  • 1/什麼是NginxNginx("enginex")是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器,在高連接併發的情況下Nginx是Apache伺服器不錯的替代品.其特點是占有記憶體少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好.目 ...
  • 本文介紹使用 _OpenVPN_ 在 _CentOS_ 和 _Ubuntu_ 上搭建基本的VPN服務的方法. 生成所需密鑰和證書 _OpenVPN_ 使用 _Easy RSA_ 來管理PKI所需要的密鑰和證書. _Easy RSA_ 現在有2和3兩個主要版本, 使用方式略有不同. 下麵分別介紹用法. ...
  • 有關於centos7獲取IP地址的方法主要有兩種,1:動態獲取ip;2:設置靜態IP地址 在配置網路之前我們先要知道centos的網卡名稱是什麼,centos7不再使用ifconfig命令,可通過命令 IP addr查看,如圖,可以看到我的網卡名為ens32,從中也可以看到是沒有IP地址的 1、動態 ...
  • Nginx Nginx是一款面向性能設計的HTTP伺服器,相較於Apache、lighttpd具有占有記憶體少,穩定性高等優勢,整體採用模塊化設計,有豐富的模塊庫和第三方模塊庫,配置靈活。 在Linux操作系統下,Nginx使用epoll事件模型,在OpenBSD或FreeBSD操作系統上採用類似於e ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...