Linux系统之lsblk命令的基本使用

举报
江湖有缘 发表于 2024/10/16 21:56:33 2024/10/16
【摘要】 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

四、注意事项

  1. 权限:确保你有足够的权限(可能需要 root 权限)来查看所有块设备信息。
  2. 输出格式:使用 -J-P 选项以 JSON 或键值对格式输出,以便于脚本处理。
  3. 排除和包含设备:使用 -e-I 选项来排除或仅显示特定主设备号的设备。
  4. 文件系统信息:使用 -f 选项查看每个设备的文件系统类型和标签。
  5. 完整路径:使用 -p 选项显示完整的设备路径,而不是简化的名称。
  6. 自定义输出列:使用 -o 选项来自定义输出的列,只显示你需要的信息。
  7. 排序:使用 -x 选项按指定列对输出进行排序,例如按大小排序。
  8. 不显示从属设备:使用 -d 选项不显示从属设备(如分区),只显示顶级设备。
  9. JSON 输出解析:如果使用 -J 选项输出 JSON 格式的数据,确保有合适的工具(如 jq)来解析和处理这些数据。
  10. 性能影响:虽然 lsblk 通常是轻量级的,但在大型系统中可能会稍微影响性能,特别是在有很多块设备的情况下。
  11. 结合其他命令使用:可以将 lsblk 的输出通过管道传递给其他命令(如 grepawk)进行进一步处理。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。