lsblk命令

lsblk 命令 #

lsblk 命令(list block devices)用于列出系统上所有可用的块设备信息,以树状结构显示它们之间的关系。它可以显示分区、磁盘大小、挂载点等信息,是查看系统存储设备的便捷工具。

语法 #

lsblk [选项] [设备...]

主要选项 #

选项 说明
-a, --all 显示所有设备,包括空设备
-b, --bytes 以字节为单位显示大小
-d, --nodeps 不显示从属设备(如分区)
-f, --fs 显示文件系统信息
-m, --perms 显示权限信息
-o, --output 列表 指定要显示的列
-p, --paths 显示完整设备路径
-S, --scsi 仅输出 SCSI 设备
-t, --topology 显示拓扑信息
-n, --noheadings 不显示标题
-x, --sort 列 按指定列排序

可用输出列 #

列名 说明
NAME 设备名称
MAJ:MIN 主:次设备号
RM 是否可移动设备
SIZE 设备大小
RO 是否只读
TYPE 设备类型
MOUNTPOINT 挂载点
FSTYPE 文件系统类型
LABEL 文件系统标签
UUID 文件系统 UUID
MODEL 设备型号
SERIAL 磁盘序列号
STATE 设备状态
OWNER 用户名
GROUP 组名
MODE 设备节点权限
ALIGNMENT 对齐偏移
MIN-IO 最小 I/O 大小
OPT-IO 最佳 I/O 大小
PHY-SEC 物理扇区大小
LOG-SEC 逻辑扇区大小
ROTA 是否旋转设备
SCHED I/O 调度器名称
TRAN 设备传输类型

常见用法 #

1. 列出所有块设备 #

lsblk

输出示例:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 223.6G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0     1G  0 part /boot
└─sda3   8:3    0 222.1G  0 part 
  ├─vg-root 253:0    0    50G  0 lvm  /
  ├─vg-swap 253:1    0     8G  0 lvm  [SWAP]
  └─vg-home 253:2    0 164.1G  0 lvm  /home
sdb      8:16   0 931.5G  0 disk 
└─sdb1   8:17   0 931.5G  0 part /data

2. 显示文件系统信息 #

lsblk -f

输出示例:

NAME   FSTYPE   LABEL UUID                                 MOUNTPOINT
sda                                                         
├─sda1 vfat           1234-5678                            /boot/efi
├─sda2 ext4           abcdef12-3456-7890-abcd-ef1234567890 /boot
└─sda3 LVM2_member    fedcba98-7654-3210-fedc-ba9876543210 
  ├─vg-root ext4           abcdef12-3456-7890-abcd-ef1234567890 /
  ├─vg-swap swap           fedcba98-7654-3210-fedc-ba9876543210 [SWAP]
  └─vg-home ext4           12345678-90ab-cdef-1234-567890abcdef /home
sdb                                                         
└─sdb1 ext4     DATA  abcdef12-3456-7890-abcd-ef1234567890 /data

3. 以字节为单位显示大小 #

lsblk -b

4. 不显示从属设备 #

lsblk -d

输出示例:

NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda    8:0    0 223.6G  0 disk 
sdb    8:16   0 931.5G  0 disk 

5. 显示指定列 #

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

输出示例:

NAME        SIZE FSTYPE      TYPE MOUNTPOINT
sda       223.6G             disk 
├─sda1      512M vfat        part /boot/efi
├─sda2        1G ext4        part /boot
└─sda3    222.1G LVM2_member part 
  ├─vg-root   50G ext4        lvm  /
  ├─vg-swap    8G swap        lvm  [SWAP]
  └─vg-home 164.1G ext4        lvm  /home
sdb       931.5G             disk 
└─sdb1    931.5G ext4        part /data

6. 显示完整设备路径 #

lsblk -p

输出示例:

NAME                           MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/sda                         8:0    0 223.6G  0 disk 
├─/dev/sda1                      8:1    0   512M  0 part /boot/efi
├─/dev/sda2                      8:2    0     1G  0 part /boot
└─/dev/sda3                      8:3    0 222.1G  0 part 
  ├─/dev/mapper/vg-root        253:0    0    50G  0 lvm  /
  ├─/dev/mapper/vg-swap        253:1    0     8G  0 lvm  [SWAP]
  └─/dev/mapper/vg-home        253:2    0 164.1G  0 lvm  /home
/dev/sdb                         8:16   0 931.5G  0 disk 
└─/dev/sdb1                      8:17   0 931.5G  0 part /data

7. 显示设备拓扑信息 #

lsblk -t

8. 显示 SCSI 设备 #

lsblk -S

与其他命令结合使用 #

1. 查找特定设备的信息 #

lsblk | grep sda

2. 查找所有挂载点 #

lsblk -o MOUNTPOINT | grep -v "^$" | grep -v MOUNTPOINT

3. 查找所有未挂载的分区 #

lsblk -o NAME,MOUNTPOINT | grep -v "^$" | grep -v MOUNTPOINT | grep -v "└" | grep -v "├" | awk '$2==""'

注意事项 #

  • lsblk 命令从 /sys 虚拟文件系统获取信息,因此不需要特殊权限即可运行
  • 输出中的大小默认以人类可读的格式显示(如 GB、MB)
  • 要获取更详细的磁盘信息,可以结合使用 blkidfdisk -lsmartctl 命令
  • 在某些系统上,可能需要安装 util-linux 包才能使用 lsblk 命令
  • 树状结构显示了设备之间的层次关系,特别适合查看 LVM、RAID 或加密设备的配置