详解Linux lsblk命令:显示块设备信息

  • Post category:Linux

Linux lsblk 命令详解

lsblk 命令是 Linux 中一个列出块设备信息的工具,它可以显示出系统中存在的所有块设备信息。块设备是一种物理存储设备,例如硬盘、光驱、U盘等等。

命令语法

lsblk [options] [device]
  • options: 选项
  • device: 设备

常用选项

  • -a:列出所有块设备和非块设备(默认只列出块设备)
  • -d:不显示子分区
  • -f:显示文件系统信息
  • -h:以“人性化”的方式显示容量大小
  • -i:不用IPv6格式输出
  • -l:只显示块设备名称
  • -m:使用有用的格式显示信息
  • -n:不进行DNS解析
  • -o:自定义输出格式
  • -p:使用完全路径输出
  • -r:以反向顺序显示块设备
  • -S:不显示大小信息
  • -t:指定要显示的设备类型
  • -x:使用关键字方式输出

示例说明

示例 1:

假设有如下的块设备存在:

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0  500G  0 disk 
├─sda1    8:1    0  100M  0 part /boot/efi
├─sda2    8:2    0  200G  0 part /
└─sda3    8:3    0  300G  0 part /data

使用默认方式,使用lsblk命令将输出如下:

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0  500G  0 disk 
|-sda1    8:1    0  100M  0 part /boot/efi
|-sda2    8:2    0  200G  0 part /
`-sda3    8:3    0  300G  0 part /data

其中的每一行对应一个块设备,包含以下信息:

  • NAME:设备名
  • MAJ:主设备号
  • MIN:次设备号
  • RM:是否可以被移除
  • SIZE:设备的大小
  • RO:是否为只读设备
  • TYPE:设备类型
  • MOUNTPOINT:设备挂载点

示例 2:

在示例 1 中,使用默认方式输出是全部信息,但有时候我们只关注几个关键信息,可以使用-o选项来自定义输出格式。

例如,若我们只关心设备名称及其挂载情况,可以使用下面的命令:

lsblk -o NAME,MOUNTPOINT

输出结果如下:

NAME MOUNTPOINT
sda  
|-sda1 /boot/efi
|-sda2 /
`-sda3 /data

示例 3:

假设我们有如下快设备:

NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb                8:16   0 931.5G  0 disk
├─sdb1             8:17   0   500M  0 part /boot
├─sdb2             8:18   0   5.5G  0 part [SWAP]
└─sdb3             8:19   0 925.5G  0 part /

我们可以使用参数 -t 来列出具体类型的块设备信息,例如:

lsblk -t

上述命令可以将所有块设备按类型分组,输出的结果就是:

NAME   ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE  RA WSAME
sdb             0    512      512     512     512    0 cfq      128   1     0
|-sdb1          0    512      512     512     512    0 cfq      128   1     0
|-sdb2          0    512      512     512     512    0 cfq      128   1     0
`-sdb3          0    512      512     512     512    0 cfq      128   1     0

其中:

  • NAME:设备名
  • ALIGNMENT:设备扇区对齐值
  • MIN-IO:设备最小输入输出大小
  • OPT-IO:设备优化输入输出大小
  • PHY-SEC:物理扇区大小
  • LOG-SEC:逻辑扇区大小
  • ROTA:是否为机械设备(0:否,1:是)
  • SCHED:I/O调度程序
  • RQ-SIZE:请求队列大小
  • RA:设备支持的随机读写能力
  • WSAME:设备支持的写入同样数据的次数上限

结语

lsblk 命令是一个非常实用的 Linux 系统命令,它可以用于列出系统中所有块设备信息,支持多种选项,使用方便,建议熟悉一下使用方法。