如何在Linux中查看磁盘分区结构 Linux lsblk命令详细解读

lsblk命令能清晰展示磁盘分区的树状结构,包含设备名称、大小、类型及挂载点等信息;通过lsblk -f可查看文件系统类型、UUID和LABEL,适用于配置fstab或排查问题;相比fdisk侧重分区表、df关注文件系统空间,lsblk更直观呈现块设备层级关系,尤其在LVM和RAID等复杂结构中优势明显。

如何在linux中查看磁盘分区结构 linux lsblk命令详细解读

在Linux中查看磁盘分区结构,

lsblk
命令无疑是首选工具。它能以清晰的树状结构展示所有块设备(如硬盘、分区、LVM逻辑卷、RAID设备等)及其相互关系,让你一眼就能洞悉系统的存储布局。这比单纯的列表输出要直观得多,对于快速诊断或规划存储空间极为有用。

解决方案

通常,我们查看磁盘结构,会直接敲入

lsblk
。这个命令的输出简洁明了,通常会包含设备名称(NAME)、主次设备号(MAJ:MIN)、是否可移动(RM)、大小(SIZE)、是否只读(RO)、设备类型(TYPE)以及挂载点(MOUNTPOINT)。

lsblk

如果你想知道每个分区的具体文件系统类型、UUID或LABEL,

lsblk -f
这个参数就非常关键了。它会在原有基础上,增加FILESYSTEM、LABEL、UUID和FSTYPE这几列信息,对于配置
/etc/fstab
或者排查文件系统问题特别有帮助。我个人觉得,当你需要精确识别某个分区时,比如有多个相同大小的分区,UUID就成了唯一的标识符。

lsblk -f

有时,你可能只想看特定几列信息,或者需要更详细的路径,

lsblk -o
lsblk -p
就派上用场了。
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID
可以让你自定义输出列,而
lsblk -p
则会显示完整的设备路径,比如
/dev/sda1
,这在脚本自动化处理时特别有用。

lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID
lsblk -p

lsblk
命令究竟能展示哪些核心信息?它和
fdisk
df
有什么区别?

lsblk
的核心魅力在于其“块设备”视角和“树状”呈现。它展示的是存储设备的物理和逻辑结构,包括硬盘本身、其上的分区、这些分区是否是LVM的物理卷、逻辑卷,甚至是RAID阵列的成员。它关注的是设备本身的属性,比如大小、类型(disk, part, lvm, raid等)、是否只读以及挂载点。

举个例子,你用

lsblk
能看到
/dev/sda
下面挂着
/dev/sda1
/dev/sda2
,如果
/dev/sda2
又是一个LVM的物理卷,下面还会有逻辑卷。这种层级关系,
fdisk
df
是无法直接呈现的。

fdisk -l
(或者
parted -l
)主要是用来查看和操作磁盘的分区表。它能告诉你一个硬盘上有哪些分区、分区类型、起始扇区、结束扇区等低层面的信息,但它不会告诉你这些分区是否已经被挂载,也不会以树状图的形式展示逻辑卷。可以说,
fdisk
更偏向于“分区管理”工具。

df -h
(或者
du
系列命令)则完全是站在“文件系统”的角度来看问题。它告诉你的是文件系统的使用情况,比如总容量、已用空间、可用空间和挂载点。
df
关心的是文件系统层面的数据,而不是底层的块设备结构。你用
df
看不到一个未挂载的分区,也看不到一个没有文件系统的裸盘。

巧文书 巧文书

巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。

巧文书 281 查看详情 巧文书

所以,如果你想快速了解整个存储布局,

lsblk
是首选;要修改分区表,找
fdisk
parted
;想知道文件系统空间占用,用
df
。它们各司其职,但
lsblk
在理解整体结构上,无疑是最直观的。

当我需要深入了解文件系统类型或UUID时,
lsblk
还能帮上忙吗?

当然能,而且是主力。这正是

lsblk -f
这个参数的用武之地。在日常运维中,我们经常会遇到需要根据UUID来挂载分区的情况,尤其是在
/etc/fstab
中,使用UUID而非设备名(如
/dev/sda1
)来标识分区是一种更稳健的做法,因为设备名可能会在系统重启或添加新硬件后发生变化,而UUID是设备文件系统的唯一标识符。

当你运行

lsblk -f
时,它会额外输出
FSTYPE
UUID
LABEL
这几列。
FSTYPE
告诉你这个分区上创建的是什么文件系统,比如
ext4
xfs
swap
等。
UUID
则是一串长长的十六进制数字,是文件系统的全球唯一标识符。
LABEL
是文件系统的卷标,如果你在创建文件系统时指定了卷标,这里也会显示。

举个实际场景,你可能新加了一块硬盘,创建了分区并格式化,但忘记了UUID,或者需要确认它的文件系统类型以便正确挂载。这时,

lsblk -f
一敲,所有信息一目了然。我曾经有一次因为
/etc/fstab
里某个分区的UUID写错了,导致系统启动失败,就是靠
lsblk -f
快速定位到了问题所在,对比了一下实际的UUID和配置里的,很快就解决了。这比去翻日志或者用
blkid
命令一个个查找要方便得多。

面对复杂的存储结构,比如LVM或RAID,
lsblk
的输出会如何变化?

lsblk
在处理复杂存储结构时,它的树状显示能力就显得尤为强大了。它不仅仅是列出设备,更重要的是它能清晰地展示这些设备之间的层级关系。

对于LVM(逻辑卷管理)结构: 当你的系统使用了LVM时,

lsblk
会非常直观地显示出物理卷(PV)、卷组(VG)和逻辑卷(LV)之间的嵌套关系。你会看到一个硬盘或分区被标记为
lvm
类型,它下面会有一个或多个卷组(VG),再往下就是卷组中创建的各个逻辑卷(LV)。每个LV都会有自己的大小和挂载点。这种层层递进的显示方式,让你一眼就能搞清楚哪些物理磁盘构成了哪个卷组,以及这个卷组里又划分了哪些逻辑卷。这对于理解LVM的存储布局,以及在需要扩展或缩小逻辑卷时,定位相关的物理设备,都非常有帮助。

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda           8:0    0 232.9G  0 disk
├─sda1        8:1    0   512M  0 part  /boot
└─sda2        8:2    0 232.4G  0 part  lvm   <-- 这是一个LVM物理卷
  ├─vg_main-lv_root 253:0    0    50G  0 lvm   /     <-- 属于vg_main卷组的逻辑卷
  └─vg_main-lv_home 253:1    0   180G  0 lvm   /home <-- 另一个逻辑卷
sdb           8:16   0 465.8G  0 disk
└─sdb1        8:17   0 465.8G  0 part  lvm   <-- 另一个LVM物理卷,可能属于同一个或不同的卷组

对于RAID(独立磁盘冗余阵列)结构: 如果你配置了软件RAID(mdadm),

lsblk
同样能清晰地展示RAID成员盘和RAID设备本身的关系。它会显示组成RAID阵列的各个物理分区,然后这些分区会聚合到一个
raid
类型的设备下(通常是
/dev/mdX
)。这样,你就能一眼看出哪些磁盘是RAID的成员,以及它们组成了哪个RAID卷。这对于检查RAID状态、排查故障,或者理解数据冗余的布局,都提供了极大的便利。

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sdd           8:48   0 931.5G  0 disk
└─sdd1        8:49   0 931.5G  0 part  raid  <-- RAID成员盘
  └─md0       9:0    0 931.4G  0 raid  /data <-- RAID设备
sde           8:64   0 931.5G  0 disk
└─sde1        8:65   0 931.5G  0 part  raid  <-- 另一个RAID成员盘
  └─md0       9:0    0 931.4G  0 raid  /data <-- 同一个RAID设备

这种层级化的展示,使得

lsblk
在面对现代Linux系统中普遍存在的复杂存储栈时,依然能保持其易用性和强大的洞察力。它把那些抽象的逻辑概念,通过直观的树状图具象化了,对于我这种需要快速理解系统存储布局的人来说,简直是福音。

以上就是如何在Linux中查看磁盘分区结构 Linux lsblk命令详细解读的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。