linux-列出所有的块设备
前言
lsblk 列出所有块设备信息(除了RAM类型的块设备)。lsblk是通过读取/sys/fs文件系统信息和udev db来收集信息。
如果udev db不可用或者lsblk编译的没有添加udev的支持,就会尝试通过/sys/下的块设备信息中,提取块设备的标签、UUID、文件系统等。
安装
lsblk命令包含在util-linux包中,现在该包改名为util-linux。
yum -y install util-linux
查看帮助
lsblk
用法:
lsblk [选项] [<设备> ...]
列出块设备的信息。
选项:
-a, --all 打印所有设备
-b, --bytes 以字节为单位而非易读的格式来打印 SIZE
-d, --nodeps 不打印从属设备(slave)或占位设备(holder)
-D, --discard 打印时丢弃能力
-z, --zoned print zone model
-e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
-f, --fs 输出文件系统信息
-i, --ascii 只使用 ascii 字符
-I, --include <列表> 只显示有指定主设备号的设备
-J, --json 使用 JSON 输出格式
-l, --list 使用列表格式的输出
-T, --tree use tree format output
-m, --perms 输出权限信息
-n, --noheadings 不打印标题
-o, --output <列表> 输出列
-O, --output-all 输出所有列
-p, --paths 打印完整设备路径
-P, --pairs 使用 key=“value” 输出格式
-r, --raw 使用原生输出格式
-s, --inverse 反向依赖
-S, --scsi 输出有关 SCSI 设备的信息
-t, --topology 输出拓扑信息
-x, --sort <列> 按<列>对输出排序
--sysroot <dir> use specified directory as system root
-h, --help display this help
-V, --version display version
Available output columns:
NAME 设备名
KNAME 内部内核设备名称
PATH path to the device node
MAJ:MIN 主:次 设备号
FSAVAIL 文件系统可用大小
FSSIZE 文件系统大小
FSTYPE 文件系统类型
FSUSED 文件系统已用大小
FSUSE% 文件系统使用百分比
MOUNTPOINT 设备挂载位置
LABEL 文件系统标签
UUID 文件系统 UUID
PTUUID partition table identifier (usually UUID)
PTTYPE partition table type
PARTTYPE 分区类型 UUID
PARTLABEL 分区 LABEL
PARTUUID 分区 UUID
PARTFLAGS 分区标志
RA 该设备的预读(read-ahead)
RO 只读设备
RM 可移动设备
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 设备类型
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命令默认是以树状列出所有块设备,可以查看块设备之间的关系。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot
├─nvme0n1p2 259:2 0 50G 0 part /
├─nvme0n1p3 259:3 0 120G 0 part /home
└─nvme0n1p4 259:4 0 306.4G 0 part /data
NAME :这是块设备名。
MAJ:MIN :显示主要和次要设备号。
RM :显示设备是否可移动设备。
SIZE :列出设备的容量大小信息。
RO :该项表明设备是否为只读。所有设备的RO值为0,表明他们不是只读的。
TYPE :显示块设备的类型。
MOUNTPOINT :指出设备挂载的挂载点。
如果需要查询指定的的字段信息,可以使用-o进行定制显示。
总结
lsblk可以让我们查询到linux系统上面块设备的分布情况。