Linux的lsblk
lsblk
注意:不同版本的参数可能不太一样
作用
lsblk(list block devices)命令用于列出系统中所有块设备(如硬盘、分区、U 盘、光盘等)的信息,包括设备名称、大小、挂载点等,以树状结构显示,是查看存储设备结构的常用工具。
格式
bash
lsblk [参数] [设备]
# 输出
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 50G 0 part /
└─sda2 8:2 0 50G 0 part /data
sdb 8:16 1 16G 0 disk
└─sdb1 8:17 1 16G 0 part /mnt/usb
参数
-a, --all:显示所有设备,包括空设备、未挂载分区等。
-b, --bytes:SIZE 列以字节为单位显示(默认是 K/M/G 可读格式)。
-d, --nodeps:不显示从属设备(即不显示分区或逻辑卷,只显示顶层磁盘)。
-D, --discard:显示设备的 discard(TRIM)能力信息。
-e, --exclude :排除指定主设备号的设备(默认排除 RAM 磁盘)。
-I, --include :仅显示指定主设备号的设备。
-f, --fs:输出文件系统信息(UUID、类型、标签、挂载点)。
-h, --help:显示帮助信息(此条)。
-i, --ascii:使用 ASCII 字符绘制树形结构(而不是 Unicode 连线)。
-m, --perms:输出权限信息(所有者、组、模式)。
-l, --list:使用列表格式输出(非树形,每行一个设备)。
-n, --noheadings:不打印列标题。
-o, --output :自定义输出列(如 NAME,SIZE,TYPE)。
-p, --paths:打印完整设备路径(如 /dev/sda1)。
-P, --pairs:使用 key="value" 格式输出。
-r, --raw:使用原始格式输出(无转义字符,默认树形时禁用连线)。
-s, --inverse:显示反向依赖(例如从分区反查所属磁盘)。
-t, --topology:输出设备的拓扑信息(I/O 对齐、最优传输大小等)。
-S, --scsi:输出关于 SCSI 设备的信息(包括 SATA、SAS、USB 等底层为 SCSI 的设备)。
-h, --help:显示帮助信息并退出(重复项,同上)。
-V, --version:输出版本信息并退出。
输出字段
NAME:设备名称
MAJ:MIN:主设备号和次设备号
RM:是否为可移动设备(1表示是,0表示否)
SIZE:设备大小
RO:是否为只读设备(1表示是,0表示否)
TYPE:设备类型(disk, part, rom等)
- disk:物理磁盘(如 /dev/sda、/dev/nvme0n1),即实际的硬盘、SSD 或虚拟磁盘。
- part:磁盘上的分区(如 /dev/sda1、/dev/sdb2),是磁盘的一部分,通常包含文件系统或 LVM 物理卷等。
- lvm:LVM 逻辑卷(如 /dev/centos/root),是 LVM 管理的块设备,位于卷组之上,可动态调整大小。
- rom:只读存储设备(如光驱 /dev/sr0、虚拟 CD-ROM),通常是光盘或 ISO 镜像挂载的设备。
- loop:回环设备(如 /dev/loop0),由 losetup 创建,用于挂载镜像文件(如 .iso、.img)或 snap 应用。
- crypt:加密设备(如 LUKS 容器),需要通过解密才能访问数据。
MOUNTPOINT:设备的挂载点
常用命令
lsblk
默认树形显示所有块设备(不含空设备、不含文件系统详情)
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sr0 11:0 1 4.4G 0 rom
centos-root:存放操作系统、应用程序、用户数据等(相当于 Windows 的 C 盘)。需要较大空间且需持久化。
centos-swap:充当虚拟内存,当物理内存不足时,内核会将不常用的内存页交换到 swap 空间。swap 不需要文件系统,也不能存放用户文件,且对读写模式有特殊要求(随机读写)。
lsblk -f
显示文件系统信息(UUID、FSTYPE、LABEL、MOUNTPOINT)
bash
[root@localhost ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs ee19857f-178b-45a8-a930-e3aceb5cc4df /boot
└─sda2 LVM2_member d7ZNsh-f3oe-mTMh-nIR3-CxFI-qa8L-phAMhj
├─centos-root xfs 313d96df-aa31-4335-beb1-fb52686a5afd /
└─centos-swap swap 5dbb0d1c-3af2-4a07-a328-ad1558b45b6e [SWAP]
sdb
└─sdb1 ext4 30d9f00f-96c2-4db0-9616-de6c54f32f39
sr0 iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00
lsblk -a
显示所有设备,包括空设备(如未分区的磁盘、未挂载的分区)
bash
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sr0 11:0 1 4.4G 0 rom
lsblk -V
查看版本
bash
lsblk from util-linux 2.23.2