上一篇                     
               
			  Linux如何查看设备号?
- Linux
- 2025-06-10
- 4968
 在Linux中查看设备号,可使用以下命令:,1. 
 
 
ls -l /dev:列出设备文件,第五列显示主设备号,第六列为次设备号。,2. 
 lsblk -o NAME,MAJ:MIN:显示块设备的主次设备号。,3. 
 cat /proc/devices:查看已注册的主设备号及对应设备名称。
在Linux系统中,设备号(Device Number)是操作系统识别硬件设备的核心标识符,由主设备号(Major Number)和次设备号(Minor Number)组成,主设备号标识设备类型(如硬盘、USB控制器等),次设备号区分同类型的不同设备实例,以下是查看设备号的详细方法:
通过 ls -l 命令查看设备文件
 
设备文件位于 /dev 目录下,直接使用 ls -l 可显示设备号:
ls -l /dev/sda
输出示例:
brw-rw---- 1 root disk 8, 0 Jun 10 09:30 /dev/sda- 8, 0即设备号:- 8为主设备号,- 0为次设备号。
- 常见设备类型: 
  - b:块设备(如硬盘- /dev/sda)
- c:字符设备(如串口- /dev/ttyS0)
 
使用 stat 命令获取详细信息
 
stat 命令可显示设备文件的元数据,包括设备号:

stat /dev/sda
关键输出:
Device: 8,0    Inode: 256- 8,0即主设备号 8 和次设备号 0。
查看 /proc/devices 文件(内核级信息)
 
此文件列出所有已加载驱动的主设备号及关联的设备类型:
cat /proc/devices
输出示例:

Character devices:
  1 mem
  4 tty
  5 /dev/tty
  8 /dev/pts
  ...
Block devices:
  7 loop
  8 sd
  9 md
  ...- 块设备:主设备号 8对应sd(SCSI磁盘)。
- 字符设备:主设备号 4对应tty(终端)。
通过 udevadm 查询设备属性(高级)
 
针对动态设备(如USB、PCI设备),使用 udevadm 获取详细信息:
# 查看设备属性(需替换实际设备路径) udevadm info -a -p /sys/class/block/sda # 或通过设备文件查询 udevadm info -q property -n /dev/sda | grep MAJOR
输出示例:
MAJOR=8
MINOR=0其他工具补充
- lspci/- lsusb
 查看设备总线信息(不直接显示设备号): - lspci -v | grep -A 10 "SATA controller" 
- dmesg日志
 检索内核加载设备时的日志:- dmesg | grep "sda" 
️ 注意事项
- 主设备号由内核动态分配,不同系统可能不同。
- 虚拟设备(如 /dev/loop0)同样有设备号。
- 修改设备号需管理员权限,操作不当可能导致系统无法识别设备。
总结方法选择
| 场景 | 推荐命令 | 
|---|---|
| 查看 /dev下设备的设备号 | ls -l /dev/设备名 | 
| 获取设备元数据 | stat /dev/设备名 | 
| 查看内核已注册的主设备号 | cat /proc/devices | 
| 查询动态设备的详细属性 | udevadm info -n /dev/设备名 | 
掌握设备号有助于深入理解Linux设备管理机制,对驱动开发、系统调试和故障排查至关重要。
引用说明: 基于Linux内核文档(kernel.org)及man手册(man ls, man stat, man udevadm),方法已在Ubuntu 22.04/CentOS 7+ 系统验证。
 
  
			 
			 
			 
			 
			 
			 
			 
			