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

在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,UUIDlsblk -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创意灵感社区
60 查看详情
所以,如果你想快速了解整个存储布局,
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 MOUNTPOINTsda 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 MOUNTPOINTsdd 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命令详细解读的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/440609.html
微信扫一扫
支付宝扫一扫