Linux查询块设备命令之 lsblk
简介
在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 ~]#
永远年轻,永远热泪盈眶