块设备与分区

LinuxBeginner
立即练习

简介

可以把它想象成查看一栋办公楼的建筑蓝图:

  • 建筑:磁盘驱动器(物理存储)。
  • 房间:分区(逻辑区域)。
  • 房间名称:挂载点(例如 /home 这样的访问路径)。

在本实验中,你将使用 lsblk 查看这份蓝图。

这种分层视图很重要,因为 Linux 存储是分阶段构建的。物理或虚拟设备可能包含分区,分区可能包含文件系统,而这些文件系统随后可以挂载到主目录树中。

列出所有块设备(lsblk)

使用 lsblk(List Block Devices,列出块设备)查看存储蓝图。

lsblk

输出:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
...
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
└─vda3 252:3    0  39.8G  0 part /

理解这棵树:

  • NAME:vda 是磁盘,vda1 是分区。loopX 是虚拟设备,暂时可以忽略。
  • SIZE:容量,例如 40G。
  • TYPE:disk 表示磁盘,part 表示分区,loop 表示回环设备。
  • MOUNTPOINTS:访问数据的位置,例如 / 表示根目录。

这就是 lsblk 对初学者特别有帮助的原因。它不仅显示名称,还显示对象之间的关系,帮助你了解哪些存储对象建立在其他对象之上。

保存这份蓝图:

lsblk > devices.txt

筛选物理磁盘(lsblk -d)

信息太多了?只显示磁盘并隐藏分区。

使用 -d(device,设备)选项:

lsblk -d

输出:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop ...
vda    252:0    0    40G  0 disk

分区(vda1、vda2)不再显示。

该命令只列出顶层设备。

在完整的树状视图和顶层设备视图之间切换非常有用,因为排查存储问题时,你通常需要在「有哪些磁盘?」和「这块磁盘是如何划分的?」之间切换。

保存这个列表:

lsblk -d > disks.txt

检查文件系统(lsblk -f)

这些分区使用什么格式?

使用 -f(filesystem,文件系统)选项查看文件系统类型和 UUID。

lsblk -f

输出:

NAME   FSTYPE   FSVER LABEL UUID                                 ...
vda
├─vda2 vfat     FAT32       8E24-7BB2                            ...
└─vda3 ext4     1.0         7504cd7e-f775...                     ...
  • FSTYPE:文件系统类型,例如 ext4(Linux)和 vfat(EFI)。
  • UUID:唯一标识符(类似指纹),自动挂载时非常重要。

UUID 很重要,因为设备名称有时会根据启动顺序或连接的硬件发生变化。UUID 可以为配置提供更稳定的标识符。

保存详细信息:

lsblk -f > filesystems.txt

检查精确大小(lsblk -b)

脚本需要精确的字节数吗?

使用 -b(bytes,字节)选项,移除「G」或「M」等单位。

原始字节输出特别适合脚本和自动化场景,因为这些场景更重视精确数值,而不是便于阅读的格式。

lsblk -b

输出:

NAME   ... SIZE ...
vda    ... 42949672960 ...

保存原始数据:

lsblk -b > sizes.txt

总结

在本实验中,你学习了如何使用 lsblk 命令读取 Linux 存储的「蓝图」。

  • lsblk:显示磁盘(建筑)和分区(房间)的树状结构,其中包括虚拟回环设备。
  • **lsblk -d**:筛选视图,只显示顶层设备并忽略分区。
  • **lsblk -f**:显示「内部装饰」(文件系统类型)和唯一标识符(UUID)。
  • **lsblk -b**:以字节为单位提供精确的大小数据。

理解这些存储设备,是管理它们的第一步——无论是添加新硬盘、调整分区大小,还是检查服务器磁盘空间为何已满。