如何在 Unix 中识别块设备的主要和次要编号

Tiamo_T 发表于 2021/12/19 08:16:40 2021/12/19
【摘要】 问题:如何找出我的块设备/分区/挂载点/SAN磁盘/文件系统的主要和次要编号?

问题:如何找出我的块设备/分区/挂载点/SAN磁盘/文件系统的主要和次要编号?

为什么需要知道主次设备号?

有时,出于各种原因,您可能需要知道设备的主要和次要数量。例如,sar 实用程序以 dev m-n的格式报告文件系统的 i/o 数据,如下所示。(m 是主要编号,n 是次要编号)

来自 sar 手册页以下是 DEV 列的含义如下所示:

-d     Report activity for each block device (kernels  2.4  and  newer
       only).  When data is displayed, the device specification dev m-
       n is generally used ( DEV column).  m is the  major  number  of
       the  device.   With  recent  kernels (post 2.5), n is the minor
       number of the device, but is only a sequence  number  with  pre
       2.5 kernels.


通过查看下面的 sar 输出,我们无法判断 dev110-1 表示什么挂载点(文件系统)。在这种情况下,您知道该设备代表一个主设备号为 110 和次设备号为 1 的块设备。

$ sar -d
Linux 2.6.9-67.0.0.0.1.ELsmp (webserver)        06/21/2009

12:00:00 AM    DEV              tps    rd_sec/s  wr_sec/s
12:02:00 AM    dev110-1        6.00      0.00      6.00
12:02:00 AM    dev8-1           1.00      1.00      0.00
12:02:00 AM    dev1-1           2.00      1.00      1.00
12:02:00 AM    dev1-2           1.00      0.00      1.00
12:02:00 AM    dev1-3           4.00      2.00      2.00
12:02:00 AM    dev1-4           5.00      3.00      2.00

df -k 不显示主次号

在以下示例中,当您执行 df -k 时,它表明您已将本地 SCSI 硬盘驱动器分区 (/dev/sda1) 挂载为 / (root) 并挂载了 SAN 设备分区 (/dev/san-device1)作为 /home/mysql. 请注意,SAN 设备可以是 EMC、NetApps 或任何类型的 SAN 存储。

$ df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             10317828   2353828   7439884  25% /
/dev/sandevice1   50537528  22350656  25619688  47% /home/mysql

如何识别主次设备号?

现在,如果您想知道这些设备的主要和次要编号,请 cd 到 /dev 目录并执行 ls -l 如下所示,这将显示主要和次要编号


$ cd /dev

$ ls -l sd*
brw-rw----  1 root disk 8,  0 Feb  8  2008 sda
brw-rw----  1 root disk 8,  1 Feb  8  2008 sda1

[Note: Major for /dev/sda1 is 8 and minor is 1]

$ ls -l san*
brw-------  1 root root 110,  0 Feb 8 sandevice
brw-------  1 root root 110,  1 Feb 8 sandevice1

[Note: Major for /dev/sandevice1 is 110 and minor is 1]

  • sda1 – 主要编号为 8,次要编号为 1
  • sandevice1 – 主要编号为 110,次要编号为 1


有了这些信息,您现在可以识别在 sar -d 输出中报告的相应设备。

$ sar -d
Linux 2.6.9-67.0.0.0.1.ELsmp (webserver)        06/21/2009

12:00:00 AM    DEV              tps    rd_sec/s  wr_sec/s
12:02:00 AM    dev110-1        6.00      0.00      6.00
12:02:00 AM    dev8-1           1.00      1.00      0.00

[Note: Now, we know dev110-1 is /dev/sandevice1 and
                    dev8-1 is /dev/sda1 ]

SCSI 和 IDE 驱动器的主要编号

SCSI 和 IDE 的主要编号不会更改,并且具有以下硬编码值。

  • SCSI (/dev/sd?) 主要编号是 8
  • IDE (/dev/hd?) 主要编号是 3
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。