内容纲要

简介

在Linux系统下面,lsblk用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。这个包带了几个其它工具,如dmesg。要安装lsblk,请在此处下载util-linux包。Fedora用户可以通过命令sudo yum install util-linux-ng来安装该包。

lsblk安装

如果你的Linux系统上没有lsblk命令,没关系,安装很容易

yum install util-linux

lsblk常用参数详解

[root@local ~]# lsblk --help
用法:
lsblk [选项] [<设备> ...]
列出块设备的信息。

选项:
-a, --all            打印所有设备
-b, --bytes          以字节为单位而非易读的格式来打印 SIZE
-d, --nodeps         不打印从属设备(slave)或占位设备(holder)
-D, --discard        打印时丢弃能力
-e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
-I, --include <列表> 只显示有指定主设备号的设备
-f, --fs             输出文件系统信息
-h, --help           使用信息(此信息)
-i, --ascii          只使用 ascii 字符
-m, --perms          输出权限信息
-l, --list           使用列表格式的输出
-n, --noheadings     不打印标题
-o, --output <列表>  输出列
-O, --output-all     输出所有列
-p, --paths          打印完整设备路径
-P, --pairs          使用 key=“value” 输出格式
-r, --raw            使用原生输出格式
-s, --inverse        反向依赖
-S, --scsi           输出有关 SCSI 设备的信息
-t, --topology       输出拓扑信息

-h, --help     显示此帮助并退出
-V, --version  输出版本信息并退出

Available output columns:
NAME  设备名
KNAME  内部内核设备名称
MAJ:MIN  主:次 设备号
FSTYPE  文件系统类型
MOUNTPOINT  设备挂载位置
LABEL  文件系统标签
UUID  文件系统 UUID
PARTTYPE  分区类型 UUID
PARTLABEL  分区 LABEL
PARTUUID  分区 UUID
PARTFLAGS  分区标志
RA  该设备的预读(read-ahead)
RO  该项表明设备是否为只读。RO值为0,表明他们不是只读的
RM  本栏显示设备是否可移动设备。注意,sr0的RM值等于1,这说明他们是可移动设备
HOTPLUG  可移动或热插拔设备(usb, pcmcia, ...)
MODEL  设备标识符
SERIAL  磁盘序列号
SIZE  磁盘容量
STATE  设备的状态
OWNER  用户名
GROUP  组名
MODE  设备节点权限
ALIGNMENT  对齐偏移量
MIN-IO  最小 I/O 大小
OPT-IO  最优 I/O 大小
PHY-SEC  物理扇区大小
LOG-SEC  逻辑扇区大小
ROTA  转动设备
SCHED  I/O 调度器名称
RQ-SIZE  请求队列大小
TYPE  设备类型,显示块设备是否是磁盘或磁盘上的一个分区。nvme0n1是磁盘,nvme0n1p1是分区,rhel-root是lvm,而sr0是只读存储(rom)
DISC-ALN  忽略对齐偏移量
DISC-GRAN  忽略粒度
DISC-MAX  忽略最大字节数
DISC-ZERO  忽略零数据
WSAME  写相同的最大字节数
WWN  惟一存储标识符
RAND  添加随机性
PKNAME  内部上级内核设备名称
HCTL  SCSI 的 Host:Channel:Target:Lun
TRAN  设备传输类型
SUBSYSTEMS  对成链的子系统去重
REV  设备修订版本
VENDOR  设备制造商
ZONED  zone model

更多信息请参阅 lsblk(8)。

lsblk使用实例

打印出所有设备

[root@localhost ~]# lsblk -a
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0            11:0    1 10.7G  0 rom  /mnt
nvme0n1       259:0    0   20G  0 disk 
├─nvme0n1p1   259:1    0    1G  0 part /boot
└─nvme0n1p2   259:2    0   19G  0 part 
├─rhel-root 253:0    0   17G  0 lvm  /
└─rhel-swap 253:1    0    2G  0 lvm  [SWAP]

使用列表格式的输出

[root@localhost ~]# lsblk -l
NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0        11:0    1 10.7G  0 rom  /mnt
rhel-root 253:0    0   17G  0 lvm  /
rhel-swap 253:1    0    2G  0 lvm  [SWAP]
nvme0n1   259:0    0   20G  0 disk 
nvme0n1p1 259:1    0    1G  0 part /boot
nvme0n1p2 259:2    0   19G  0 part 

不打印从属设备

[root@localhost ~]# lsblk -d
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0      11:0    1 10.7G  0 rom  /mnt
nvme0n1 259:0    0   20G  0 disk 

打印文件系统和UUID信息

[root@localhost ~]# lsblk -f
NAME          FSTYPE      LABEL                    UUID                                   MOUNTPOINT
sr0           iso9660     RHEL-8-6-0-BaseOS-x86_64 2022-04-20-16-41-14-00                 /mnt
nvme0n1                                                                                   
├─nvme0n1p1   xfs                                  1d8d4eb6-5674-4e34-988f-2fa036850b45   /boot
└─nvme0n1p2   LVM2_member                          qFOF2o-ZCQm-Sg5C-eAOh-Dt3f-bS2r-TybHeS 
├─rhel-root xfs                                  ccd7fed8-17ad-4a2f-8a54-8edf10d55fbc   /
└─rhel-swap swap                                 8f707b9a-f43c-4793-b3b6-95d1eb4c473f   [SWAP]

打印关于每个设备的丢弃能力(TRIM, UNMAP)的信息

[root@localhost ~]# lsblk -D
NAME          DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sr0                  0        0B       0B         0
nvme0n1              0        0B       0B         0
├─nvme0n1p1          0        0B       0B         0
└─nvme0n1p2          0        0B       0B         0
├─rhel-root        0        0B       0B         0
└─rhel-swap        0        0B       0B         0

获取块设备全路径,没看出和lsblk有啥不一样

[root@localhost ~]# lsblk -p
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
/dev/sr0                   11:0    1 10.7G  0 rom  /mnt
/dev/nvme0n1              259:0    0   20G  0 disk 
├─/dev/nvme0n1p1          259:1    0    1G  0 part /boot
└─/dev/nvme0n1p2          259:2    0   19G  0 part 
├─/dev/mapper/rhel-root 253:0    0   17G  0 lvm  /
└─/dev/mapper/rhel-swap 253:1    0    2G  0 lvm  [SWAP]

打印反向依赖关系

[root@localhost ~]# lsblk -s
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 10.7G  0 rom  /mnt
rhel-root   253:0    0   17G  0 lvm  /
└─nvme0n1p2 259:2    0   19G  0 part 
└─nvme0n1 259:0    0   20G  0 disk 
rhel-swap   253:1    0    2G  0 lvm  [SWAP]
└─nvme0n1p2 259:2    0   19G  0 part 
└─nvme0n1 259:0    0   20G  0 disk 
nvme0n1p1   259:1    0    1G  0 part /boot
└─nvme0n1   259:0    0   20G  0 disk 

输出块设备拓扑信息

这个选项相当于-o NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,RA,WSAME。

[root@localhost ~]# lsblk -t
NAME          ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED       RQ-SIZE   RA WSAME
sr0                   0   2048      0    2048    2048    1 mq-deadline      64  128    0B
nvme0n1               0    512      0     512     512    0 none            255 4096    0B
├─nvme0n1p1           0    512      0     512     512    0 none            255 4096    0B
└─nvme0n1p2           0    512      0     512     512    0 none            255 4096    0B
├─rhel-root         0    512      0     512     512    0                 128 4096    0B
└─rhel-swap         0    512      0     512     512    0                 128 4096    0B
[root@localhost ~]#