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 系统命令,它可以用于列出系统中所有块设备信息,支持多种选项,使用方便,建议熟悉一下使用方法。