Linux如何查看设备号?
- Linux
- 2025-06-10
- 7
在Linux系统中,设备号(Device Number)是操作系统识别硬件设备的核心标识符,由主设备号(Major Number)和次设备号(Minor Number)组成,主设备号标识设备类型(如硬盘、USB控制器等),次设备号区分同类型的不同设备实例,以下是查看设备号的详细方法:
通过 ls -l 命令查看设备文件
设备文件位于 /dev 目录下,直接使用 ls -l 可显示设备号:
ls -l /dev/sda
输出示例:

- 8, 0 即设备号:8 为主设备号,0 为次设备号。
- 常见设备类型:
- b:块设备(如硬盘 /dev/sda)
- c:字符设备(如串口 /dev/ttyS0)
使用 stat 命令获取详细信息
stat 命令可显示设备文件的元数据,包括设备号:
stat /dev/sda
关键输出:

- 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+ 系统验证。