Linux系统之lsblk命令的基本使用
一、lsblk命令介绍
lsblk
是 Linux 系统中的一个命令行工具,用于列出所有块设备的信息。它可以帮助用户查看磁盘分区、挂载点等信息
二、lsblk命令的使用帮助
2.1 lsblk命令help帮助信息
在命令行终端中,我们使用
--help
查询lsblk命令的基本帮助信息。
root@jeven01:~# lsblk --help
Usage:
lsblk [options] [<device> ...]
List information about block devices.
Options:
-D, --discard print discard capabilities
-E, --dedup <column> de-duplicate output by <column>
-I, --include <list> show only devices with specified major numbers
-J, --json use JSON output format
-O, --output-all output all columns
-P, --pairs use key="value" output format
-S, --scsi output info about SCSI devices
-T, --tree[=<column>] use tree format output
-a, --all print all devices
-b, --bytes print SIZE in bytes rather than in human readable format
-d, --nodeps don't print slaves or holders
-e, --exclude <list> exclude devices by major number (default: RAM disks)
-f, --fs output info about filesystems
-i, --ascii use ascii characters only
-l, --list use list format output
-M, --merge group parents of sub-trees (usable for RAIDs, Multi-path)
-m, --perms output info about permissions
-n, --noheadings don't print headings
-o, --output <list> output columns
-p, --paths print complete device path
-r, --raw use raw output format
-s, --inverse inverse dependencies
-t, --topology output info about topology
-w, --width <num> specifies output width as number of characters
-x, --sort <column> sort output by <column>
-z, --zoned print zone model
--sysroot <dir> use specified directory as system root
-h, --help display this help
-V, --version display version
2.2 lsblk命令选项解释
选项 | 描述 |
---|---|
-D, --discard | 打印设备的丢弃能力 |
-E, --dedup <column> | 按指定列去重输出 |
-I, --include <list> | 只显示指定主设备号的设备 |
-J, --json | 使用 JSON 格式输出 |
-O, --output-all | 输出所有列 |
-P, --pairs | 使用 key=“value” 的格式输出 |
-S, --scsi | 输出关于 SCSI 设备的信息 |
-T, --tree[=<column>] | 使用树形格式输出(可选指定作为树节点的列) |
-a, --all | 打印所有设备 |
-b, --bytes | 以字节为单位打印 SIZE 列,而不是人类可读格式 |
-d, --nodeps | 不打印从属设备或持有者 |
-e, --exclude <list> | 按主设备号排除设备(默认:RAM 磁盘) |
-f, --fs | 输出文件系统信息 |
-i, --ascii | 只使用 ASCII 字符 |
-l, --list | 使用列表格式输出 |
-M, --merge | 合并子树的父级(适用于 RAID、多路径) |
-m, --perms | 输出权限信息 |
-n, --noheadings | 不打印标题行 |
-o, --output <list> | 自定义输出列 |
-p, --paths | 打印完整设备路径 |
-r, --raw | 使用原始输出格式 |
-s, --inverse | 反向依赖关系 |
-t, --topology | 输出拓扑结构信息 |
-w, --width <num> | 指定输出宽度为字符数 |
-x, --sort <column> | 按指定列排序输出 |
-z, --zoned | 打印区域模型 |
--sysroot <dir> | 使用指定目录作为系统根 |
-h, --help | 显示帮助信息 |
三、lsblk命令的基本使用
3.1 lsblk直接使用
直接在命令行,使用
lsblk
命令,会以树状列出所有块设备。
root@jeven01:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop1 7:1 0 63.9M 1 loop /snap/core20/2318
loop2 7:2 0 79.9M 1 loop /snap/lxd/22923
loop3 7:3 0 38.8M 1 loop /snap/snapd/21759
loop4 7:4 0 87M 1 loop /snap/lxd/29351
loop5 7:5 0 64M 1 loop /snap/core20/2379
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 498G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 300G 0 lvm /
sr0 11:0 1 1024M 0 rom
列名 | 含义 |
---|---|
NAME | 设备名称。例如,sda 表示第一个 SCSI/SATA 磁盘,sda1 表示该磁盘的第一个分区。 |
MAJ:MIN | 主设备号和次设备号。主设备号标识设备类型(如 8 对应硬盘),次设备号标识特定的设备实例。 |
RM | 是否可移动设备(0 表示不可移动,1 表示可移动)。 |
SIZE | 设备大小,以人类可读格式显示(如 KB, MB, GB)。 |
RO | 是否只读(0 表示可写,1 表示只读)。 |
TYPE | 设备类型,如 disk(磁盘)、part(分区)、loop(循环设备)等。 |
MOUNTPOINTS | 设备挂载点路径,如果没有挂载则为空。 |
3.2 显示所有设备及其文件系统信息
使用
-f
选项,显示所有设备及其文件系统信息。
root@jeven01:~# lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop1 squashfs 4.0 0 100% /snap/core20/2318
loop2 squashfs 4.0 0 100% /snap/lxd/22923
loop3 squashfs 4.0 0 100% /snap/snapd/21759
loop4 squashfs 4.0 0 100% /snap/lxd/29351
loop5 0 100% /snap/core20/2379
sda
├─sda1
├─sda2 ext4 1.0 932b918d-f5e8-4b96-b084-50264bfe6964 1.5G 13% /boot
└─sda3 LVM2_member LVM2 001 Gyg9GR-T2QF-EU9p-IoM6-3om3-PYy1-emr3ZY
└─ubuntu--vg-ubuntu--lv ext4 1.0 d26c5dd2-2829-4d41-ad12-5341ce556de6 242.8G 12% /
sr0
3.3 使用列表格式输出所有设备信息
使用-l选项,以列表格式输出所有设备信息。
root@jeven01:~# lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop1 7:1 0 63.9M 1 loop /snap/core20/2318
loop2 7:2 0 79.9M 1 loop /snap/lxd/22923
loop3 7:3 0 38.8M 1 loop /snap/snapd/21759
loop4 7:4 0 87M 1 loop /snap/lxd/29351
loop5 7:5 0 64M 1 loop /snap/core20/2379
sda 8:0 0 500G 0 disk
sda1 8:1 0 1M 0 part
sda2 8:2 0 2G 0 part /boot
sda3 8:3 0 498G 0 part
sr0 11:0 1 1024M 0 rom
ubuntu--vg-ubuntu--lv 253:0 0 300G 0 lvm /
3.4 查看某个设备的详细权限信息
使用
-m
选项,查看/dev/sda设备的详细权限信息。
root@jeven01:~# lsblk -m /dev/sda
NAME SIZE OWNER GROUP MODE
sda 500G root disk brw-rw----
├─sda1 1M root disk brw-rw----
├─sda2 2G root disk brw-rw----
└─sda3 498G root disk brw-rw----
└─ubuntu--vg-ubuntu--lv 300G root disk brw-rw----
3.5 仅显示特定设备及其分区
使用以下命令,仅显示特定设备及其分区。
root@jeven01:~# lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 498G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 300G 0 lvm /
3.6 输出拓扑结构信息
输出拓扑结构信息
root@jeven01:~# lsblk -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
loop1 0 512 0 512 512 1 none 128 128 0B
loop2 0 512 0 512 512 1 none 128 128 0B
loop3 0 512 0 512 512 1 none 128 128 0B
loop4 0 512 0 512 512 1 none 128 128 0B
loop5 0 512 0 512 512 1 none 128 128 0B
sda 0 512 0 512 512 1 none 256 128 2G
├─sda1 0 512 0 512 512 1 none 256 128 2G
├─sda2 0 512 0 512 512 1 none 256 128 2G
└─sda3 0 512 0 512 512 1 none 256 128 2G
└─ubuntu--vg-ubuntu--lv 0 512 0 512 512 1 128 128 2G
sr0 0 512 0 512 512 1 mq-deadline 64 128 0B
3.7 打印完整设备信息
使用
-p
选项,打印完整设备信息。
root@jeven01:~# lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
/dev/loop1 7:1 0 63.9M 1 loop /snap/core20/2318
/dev/loop2 7:2 0 79.9M 1 loop /snap/lxd/22923
/dev/loop3 7:3 0 38.8M 1 loop /snap/snapd/21759
/dev/loop4 7:4 0 87M 1 loop /snap/lxd/29351
/dev/loop5 7:5 0 64M 1 loop /snap/core20/2379
/dev/sda 8:0 0 500G 0 disk
├─/dev/sda1 8:1 0 1M 0 part
├─/dev/sda2 8:2 0 2G 0 part /boot
└─/dev/sda3 8:3 0 498G 0 part
└─/dev/mapper/ubuntu--vg-ubuntu--lv 253:0 0 300G 0 lvm /
/dev/sr0 11:0 1 1024M 0 rom
3.8 输出关于 SCSI 设备的信息
- 输出关于 SCSI 设备的信息
root@jeven01:~# lsblk -S
NAME HCTL TYPE VENDOR MODEL REV SERIAL TRAN
sda 0:0:0:0 disk QEMU QEMU HARDDISK 2.5+ drive-scsi0
sr0 2:0:0:0 rom QEMU QEMU DVD-ROM 2.5+ QEMU_DVD-ROM_QM00003 sata
四、注意事项
- 权限:确保你有足够的权限(可能需要 root 权限)来查看所有块设备信息。
- 输出格式:使用
-J
或-P
选项以 JSON 或键值对格式输出,以便于脚本处理。 - 排除和包含设备:使用
-e
和-I
选项来排除或仅显示特定主设备号的设备。 - 文件系统信息:使用
-f
选项查看每个设备的文件系统类型和标签。 - 完整路径:使用
-p
选项显示完整的设备路径,而不是简化的名称。 - 自定义输出列:使用
-o
选项来自定义输出的列,只显示你需要的信息。 - 排序:使用
-x
选项按指定列对输出进行排序,例如按大小排序。 - 不显示从属设备:使用
-d
选项不显示从属设备(如分区),只显示顶级设备。 - JSON 输出解析:如果使用
-J
选项输出 JSON 格式的数据,确保有合适的工具(如jq
)来解析和处理这些数据。 - 性能影响:虽然
lsblk
通常是轻量级的,但在大型系统中可能会稍微影响性能,特别是在有很多块设备的情况下。 - 结合其他命令使用:可以将
lsblk
的输出通过管道传递给其他命令(如grep
或awk
)进行进一步处理。