当前位置:首页 > Linux > 正文

Linux如何查看设备号?

在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 命令可显示设备文件的元数据,包括设备号:

Linux如何查看设备号?  第1张

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

其他工具补充

  1. lspci / lsusb
    查看设备总线信息(不直接显示设备号):

    lspci -v | grep -A 10 "SATA controller"
  2. dmesg 日志
    检索内核加载设备时的日志:

    dmesg | grep "sda"

️ 注意事项

  1. 主设备号由内核动态分配,不同系统可能不同。
  2. 虚拟设备(如 /dev/loop0)同样有设备号。
  3. 修改设备号需管理员权限,操作不当可能导致系统无法识别设备。

总结方法选择

场景 推荐命令
查看 /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+ 系统验证。

0