Linux lsblk命令详解
1. 概述
lsblk
命令用于显示系统中所有可用的块设备信息。相比于blkid
命令,lsblk
提供了更多的信息和输出格式控制。它从udev
读取信息,因此非root
用户也可以使用。lsblk
命令显示设备名、主次设备号、设备是否可以删除、设备文件大小、设备是否为只读、设备类型和挂载路径等信息。
2. 语法
lsblk [选项]
常用选项包括:
-a, --all
:显示所有设备,包括空设备。-b, --bytes
:以字节为单位显示大小。-d, --nodeps
:仅列出块设备,不显示它们的依赖关系(例如分区)。-e, --exclude <列表>
:排除指定的设备。-f, --fs
:显示文件系统信息。-h, --help
:显示帮助信息并退出。-i, --ascii
:以ASCII字符显示树形结构。-J, --json
:以JSON格式输出。-l, --list
:以列表格式输出设备信息。-n, --noheadings
:不显示标题。-o, --output <列>
:指定显示的列,用逗号分隔。-P, --pairs
:以键值对格式输出。-r, --raw
:以原始格式显示。-t, --topology
:显示设备拓扑信息。-V, --version
:显示版本信息并退出。
3. 示例
3.1 显示所有设备的信息
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 1G 0 part
│ └─lvm-root 253:0 0 15G 0 lvm /
└─sda3 8:3 0 18.5G 0 part
└─lvm-root 253:0 0 15G 0 lvm /
sr0 11:0 1 1024M 0 rom
NAME
:设备名称。MAJ:MIN
:主次设备号。RM
:设备是否为可移动设备(1表示是,0表示否)。SIZE
:设备大小。RO
:设备是否为只读设备(1表示是,0表示否)。TYPE
:设备类型,如disk
(磁盘)、part
(分区)、lvm
(逻辑卷)等。MOUNTPOINT
:设备的挂载点。
3.2 以列表格式显示设备信息
# lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
sda1 8:1 0 500M 0 part /boot
sda2 8:2 0 1G 0 part
lvm-root 253:0 0 15G 0 lvm /
sda3 8:3 0 18.5G 0 part
sr0 11:0 1 1024M 0 rom
以列表形式显示块设备信息。
3.3 显示文件系统信息
# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 e2f8b2f8-2c0b-4e7a-8fb7-7e85a8e8c8e8 /boot
├─sda2 LVM2_member 9u43g2-0g93-4d49-8df4-f7e6a7e7e6a7
│ └─lvm-root
│ ext4 3f6e3f6e-2d4f-4d69-8df4-f7e6a7e7e6a7 /
└─sda3 LVM2_member 8f47h2-0h74-4g84-8fg5-h6e5a8e7e6a7
└─lvm-root
ext4 3f6e3f6e-2d4f-4d69-8df4-f7e6a7e7e6a7 /
sr0
FSTYPE
:文件系统类型。LABEL
:文件系统标签。UUID
:文件系统的UUID。MOUNTPOINT
:文件系统的挂载点。
3.4 仅列出块设备,不显示分区
# lsblk -d
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
仅显示块设备,不显示其分区信息。
3.5 以JSON格式输出
# lsblk -J
{
"blockdevices": [
{"name":"sda", "maj:min":"8:0", "rm":false, "size":"20G", "ro":false, "type":"disk", "mountpoint":null,
"children":[
{"name":"sda1", "maj:min":"8:1", "rm":false, "size":"500M", "ro":false, "type":"part", "mountpoint":"/boot"},
{"name":"sda2", "maj:min":"8:2", "rm":false, "size":"1G", "ro":false, "type":"part", "mountpoint":null,
"children":[
{"name":"lvm-root", "maj:min":"253:0", "rm":false, "size":"15G", "ro":false, "type":"lvm", "mountpoint":"/"}
]
},
{"name":"sda3", "maj:min":"8:3", "rm":false, "size":"18.5G", "ro":false, "type":"part", "mountpoint":null,
"children":[
{"name":"lvm-root", "maj:min":"253:0", "rm":false, "size":"15G", "ro":false, "type":"lvm", "mountpoint":"/"}
]
}
]
},
{"name":"sr0", "maj:min":"11:0", "rm":true, "size":"1024M", "ro":false, "type":"rom", "mountpoint":null}
]
}
以JSON格式输出块设备信息,适合进一步的自动化处理。
4. 详细示例
示例1:显示所有设备的信息,并包含文件系统类型
# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 e2f8b2f8-2c0b-4e7a-8fb7-7e85a8e8c8e8 /boot
├─sda2 LVM2_member 9u43g2-0g93-4d49-8df4-f7e6a7e7e6a7
│ └─lvm-root
│ ext4 3f6e3f6e-2d4f-4d69-8df4-f7e6a7e7e6a7 /
└─sda3 LVM2_member 8f47h2-0h74-4g84-8fg5-h6e5a8e7e6a7
└─lvm-root
ext4 3f6e3f6e-2d4f-4d69-8df4-f7e6a7e7e6a7 /
sr0
显示设备及其文件系统类型、标签、UUID和挂载点。
示例2:以键值对格式输出设备信息
# lsblk -P
NAME="sda"
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。