lsblk 命令详解
lsblk 是 list block devices 的缩写,它是 Linux 中最直观、最清晰的查看块设备(硬盘、分区、光驱)结构的命令。
相比 df -h(只看已挂载的分区),lsblk 能让你看到整个硬盘的“家谱”,包括那些还没格式化或者还没挂载的隐藏分区。
1. 基础输出解读
直接输入 lsblk,你会看到类似这样的树状图:
Plaintext
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
└─sda1 8:1 0 30G 0 part /
-
NAME: 设备名称。
sdX通常是物理硬盘,nvmeX是 NVMe 固态。 -
MAJ:MIN: 主要:次要设备号(开发底层驱动时才用)。
-
RM: 是否为可移动设备(1 是,0 否)。
-
SIZE: 总容量。
-
RO: 是否只读(Read-Only)。
-
TYPE: 类型(disk 是整个硬盘,part 是分区,lvm 是逻辑卷)。
-
MOUNTPOINT: 挂载点。如果这一项是空的,说明这个分区虽然存在,但系统还没“启用”它。
2. 常见使用方式
A. 查看最详细的信息(万能组合)
Bash
lsblk -f
用途: 它是排查问题的神器。会额外显示:
-
FSTYPE: 文件系统类型(ext4, xfs, ntfs)。如果这里是空的,说明分区还没格式化。
-
UUID: 分区的唯一标识符(在修改
/etc/fstab自动挂载时必用)。
B. 显示拓扑结构和设备路径
Bash
lsblk -p
用途: 会显示完整的路径(如 /dev/sda1),方便你直接复制路径进行 mount 操作。
C. 排除“回环”设备(清爽模式)
如果你安装了 Snap 软件,lsblk 会出现一大堆 loop 设备,非常乱。
Bash
lsblk -e 7
用途: 排除主设备号为 7 的 loop 设备,只看真正的硬盘。
D. 定制输出字段
Bash
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
用途: 只看你想看的列。
3. lsblk vs df:我该用哪个?
-
想看“硬盘长啥样”,有没有没分配的空间? 用
lsblk。 -
想看“我的空间还剩多少”,有没有被撑爆? 用
df -h。
4. 结合你之前 30GB 硬盘的情况
你的服务器显示根目录 / 只有 2.8GB 可用,你可以运行 lsblk 确认一下:
-
物理硬盘是否真的只有 30G?(看看
sda的 SIZE)。 -
是否还有“没用上”的空间? 比如硬盘是 50G,但
sda1分区只分了 30G,那么你可以通过扩容分区来获得更多空间,而不用删文件。
5. 常见实战场景
如果你买了一块新硬盘挂载到服务器:
-
执行
lsblk:发现多了一个sdb,但没有MOUNTPOINT。 -
执行
mkfs.ext4 /dev/sdb:格式化。 -
执行
mount /dev/sdb /mnt/data:挂载。 -
再次执行
lsblk:你会发现sdb后面出现了/mnt/data。
你要不要运行一下 lsblk -f 看看?这样我们可以彻底确认你的磁盘分区结构,看看有没有隐藏的“宝藏空间”可以利用。