1. 为什么总要反复确认磁盘分区:一个运维老兵的日常
干Linux运维这些年,磁盘分区查看这件事,我几乎每天都要做几次。你可能觉得这不就是敲个命令的事吗?但实际情况是,不同场景下适合的工具完全不同——排查启动故障时用fdisk,看挂载关系时用lsblk,查硬件底层信息时用hwinfo,给小白远程指导时反而图形工具最省事。这套组合拳打熟练了,处理问题的效率能快出一大截。
这篇文章我就把这四种方法掰开揉碎了讲清楚,包括每个工具的输出怎么读、关键字段什么意思、哪些场景下选哪个最顺手,以及我踩过的那些坑。内容面向的是刚入行的运维、经常跟Linux服务器打交道的开发,以及准备Linux面试的朋友——尤其是最后这类人,面试官很喜欢拿磁盘命令做文章,因为它是Linux基础知识里最实用、最贴近生产环境的一块。
先说一个最常见的工作场景:你接到一台新服务器,需要确认数据盘是否已经分区、格式化成哪种文件系统、挂载到了哪个目录。如果直接上来就fdisk -l,也能看到信息,但输出太长太杂,还得自己去对应设备名。这时候lsblk一条命令,树状结构一目了然,比fdisk直观得多。反过来,如果你怀疑磁盘有坏道、分区表有错误,或者要处理的是老旧的MBR分区表,那fdisk的交互式操作和详细分区信息又不可或缺。所以这几种方法不是互相替代的关系,而是互补的关系——每种工具背后都有它特别擅长的领域,这也是我这篇文章想帮你理清的核心思路。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 命令之间的定位差异:先搞懂自己到底要看什么
2.1 四种方法的核心定位对比
先说点实在的,磁盘分区查看不是越强大的命令越好,而是越贴合当前需求越好。我常用这四种方法,它们的侧重点完全不同:
fdisk:老牌分区工具,既能查看也能修改分区表,输出的是最底层的分区信息。lsblk:以树状结构列出块设备,重点展示设备间的层级关系和挂载点,是目前日常使用频率最高的。hwinfo:硬件信息收集工具,查看磁盘时连型号、序列号、固件版本都能挖出来,定位底层硬件问题必备。- 图形工具(如GNOME Disks、GParted):可视化界面,适合刚接触Linux的用户,以及需要图形化调整分区大小的场景。
我记得有次帮朋友排查一台Ubuntu桌面版开机进不了系统的问题,报错信息指向磁盘相关。我当时远程让他装了个GParted,打开一看分区情况马上就明白了——根分区空间满了,但旁边还有一个未分配的大分区没挂载。这种场景下,图形工具的直观性是任何命令行都比不了的。但在纯命令行的服务器环境里,可能连图形界面都没有,这时候就全靠前三种命令了。
2.2 一个命令搞定挂载视图:为什么lsblk成了我的首选
我自己的习惯是,接到一台新环境,第一件事永远是先敲lsblk。原因很简单:它把所有块设备的关系按树状列出来,谁是谁的父设备、哪个分区挂载到哪、设备容量多大,几秒钟就能在脑子里建立起整个磁盘布局图。
这么说吧:lsblk输出的树状结构就是磁盘世界的“家谱”。sda下面长着sda1、sda2,表明sda这块物理盘上有两个分区;nvme0n1下面几个分区是NVMe固态硬盘的划分。你加过LVM之后,还能看到vg-名称带出的逻辑卷挂在物理卷下层。这种层级关系用文字描述半天说不清楚,一条lsblk就全解决了。
所以如果你现在问我“用哪个命令看分区最顺手”,我的回答是:没有特殊情况就用lsblk。它简单、直观、信息密度高,而且Linux发行版默认都会装。后面我会专门用一节来详细拆它的输出。
3. 详细拆解:fdisk -l的每个字段到底在说什么
3.1 fdisk -l的完整输出解读
fdisk -l可能是很多人学习磁盘分区的第一个命令,它的输出也确实是最“原汁原味”的分区表信息。我在实际工作中用它最多的是两种场景:一是确认分区表类型是MBR还是GPT,二是查看分区起始扇区和大小等最底层的数据。
在一台虚拟机上执行fdisk -l /dev/sda,你会看到类似这样的输出:
bash复制Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1a2b3c4d
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 2097145 2095100 1023M 83 Linux
/dev/sda2 2097152 83886079 81788928 39G 5 Extended
/dev/sda5 2099200 83886079 81786880 39G 83 Linux
逐行来看:第一行显示磁盘总容量、字节数和扇区总数。Disk model是设备型号,在虚拟机上常见的就是VBOX HARDDISK这类。Units: sectors of 1 * 512 = 512 bytes表示一个扇区512字节,这是大多数磁盘的物理扇区大小。Disklabel type: dos表示这张盘用的是MBR分区表(dos就是MBR的另一种叫法),如果是GPT分区表,这里会显示gpt。
下面的分区列表才是最关键的。Device是分区设备名,Boot列有星号表示这个分区是启动分区,Start和End是该分区在磁盘上的起始和结束扇区号,Sectors是占用的扇区总数,`Si
