声明:本文仅作学习交流使用,引用需标明出处。

如有谬误,敬请指正

在Linux系统运维中,磁盘管理是核心基础技能,涵盖硬盘识别、分区规划、格式化、挂载访问等关键操作。本文以VMware虚拟机为环境,手把手教你完成MBR/GPT两种分区模式的全流程实操,从添加虚拟硬盘到分区永久使用,每个步骤都配有具体命令和操作细节,新手也能轻松上手。


一、前期准备:识别硬盘

Linux会自动识别新增硬盘,核心分为虚拟机添加虚拟硬盘Linux系统验证识别两步,本次先为虚拟机添加一块80G的SCSI硬盘作为MBR分区实操载体,后续再添加10G硬盘用于GPT分区练习。

1.1 磁盘基础核心概念

  1. 物理结构:磁盘主要由主轴、空气过滤部件、磁头臂、音圈马达、磁头、磁头停泊区、永磁铁等部分组成。
  2. 最小存储单位:扇区,单个扇区固定大小为512字节。
  3. Linux磁盘命名规则:Linux遵循“一切皆文件”原则,磁盘设备对应专属的设备文件,不同接口类型的磁盘命名格式不同,具体规范如下:
接口类型 Linux命名格式
SATA/SCSI/SAS /dev/sda、/dev/sdb、…
IDE/PATA(旧) /dev/hda、/dev/hdb、…
NVMe(固态) /dev/nvme0n1、/dev/nvme0n2、…

SATA、SAS、SCSI 盘在 Linux 下统一都是 /dev/sd* 开头,因为它们都走 SCSI 驱动栈

  1. 磁盘使用全流程:可类比毛坯楼层的改造流程,核心分为四步:识别硬盘(毛坯)→分区规划(打隔断)→格式化(装修)→挂载使用(入驻)

1.2 为VMware虚拟机添加80G硬盘

操作前提:必须先关闭虚拟机,否则无法添加硬件

  1. 打开虚拟机,点击「编辑虚拟机设置」→「添加」,进入添加硬件向导;
  2. 硬件类型选择「硬盘」,点击下一步,磁盘类型默认选择SCSI(推荐,Linux对SCSI接口兼容性最优);
  3. 选择「创建新虚拟磁盘」,设置最大磁盘容量为80G,建议勾选「将虚拟磁盘拆分成多个文件」(便于虚拟机移动和备份);
  4. 确认磁盘文件存储路径,默认命名即可,完成后返回虚拟机设置,可看到新增的80G硬盘;
  5. 开启虚拟机,等待Linux系统自动识别硬件(无需手动驱动)。

1.3 Linux验证硬盘识别

使用lsblk命令查看磁盘和分区信息,这是Linux查看磁盘的核心命令,能直观显示磁盘名称、大小、分区类型、挂载点等信息,替代传统的fdisk -l更易读。

lsblk命令与fdisk -l区别:

功能 lsblk fdisk -l
输出风格 简洁、树形、易读 详细、底层、偏技术
显示内容 磁盘、分区、挂载点、大小、接口 分区表、扇区、起始位置、MBR/GPT
是否显示挂载点 ✅ 清晰显示 ❌ 不显示
是否显示接口类型(sata/sas) ✅ 支持 ❌ 不显示
是否显示分区表信息 ❌ 不显示 ✅ 完整显示
适合场景 快速查看磁盘结构 排查分区、看底层硬件信息
是否需要 root 不需要 最好用 root(信息更全)

简单使用口诀

  • 想快速看磁盘有哪些、挂载到哪 → 用 lsblk
  • 想看分区表、扇区、是否MBR/GPT → 用 fdisk -l
# 查看所有磁盘/分区,验证新硬盘是否被识别
[root@localhost ~]# lsblk

实操结果:新增的80G硬盘会被识别为/dev/sdb(无分区、无挂载点),原有系统盘一般为/dev/sda(带分区和挂载点,如/dev/sda1对应/boot,/dev/sda2对应根目录)。

核心参数说明

  • NAME:磁盘/分区名(如sda、sdb1);
  • SIZE:容量(单位G/M);
  • TYPE:类型(disk=磁盘,part=分区);
  • MOUNTPOINT:挂载点(无则未挂载)。

二、MBR分区模式实操|传统分区首选

MBR(msdos)是Linux传统的分区模式,基于磁盘物理扇区设计,适合2.2TB以下的磁盘,是日常运维中最常用的分区方式。先掌握其核心特性,再进行实操。


分区表是什么?

通俗总结

  • 分区表就是磁盘的索引/目录
  • 它记录磁盘上有几个分区、每个分区从哪里开始、到哪里结束。
  • 操作系统靠它才能找到分区、读写数据。
  • 分区表一旦损坏,所有分区都会“消失”,但数据还在盘里。

两种分区表对比

项目 MBR 分区表 GPT 分区表
全称 Master Boot Record GUID Partition Table
最大磁盘 最大 2TB 几乎无限(18EB)
分区数量 最多4个主分区 原生支持 128个主分区
安全性 无备份,易损坏 有备份分区表,更安全
现代支持 不支持UEFI安全启动 支持UEFI、GUID、大硬盘

2.1 MBR分区模式核心特性

  1. 分区规则:MBR 分区表只有 64 字节用于记录分区表项,每个表项占 16 字节,因此最大仅支持1-4个主分区,或0-3个主分区+1个扩展分区(扩展分区可划分多个逻辑分区);
  2. 容量限制:最大支持2.2TB的磁盘,超过该容量需使用GPT模式;
  3. 特殊规则:扩展分区不能格式化、不能直接存储数据,仅作为逻辑分区的「载体」(即拓展分区仅作为逻辑分区的容器,其容量需全部分配给下属逻辑分区,因此无法格式化和存储数据);
  4. 分区工具:专用fdisk命令,操作简单、交互性强,适合新手入门。

2.2 fdisk分区工具核心命令

fdisk是MBR分区的专属工具,分为「查看分区表」(分区表是Linux 磁盘管理的 “总地图”或 “目录索引”)和「编辑分区表」两种使用方式,核心命令如下:

# 查看指定磁盘的分区表(只读)
[root@localhost ~]# fdisk -l /dev/磁盘名  # 示例:fdisk -l /dev/sda

# 进入指定磁盘的分区编辑模式(核心,可修改分区表)
[root@localhost ~]# fdisk /dev/磁盘名    # 示例:fdisk /dev/sdb

进入编辑模式后,输入单个字母执行对应操作,常用指令(无需记全,输入m可随时查看帮助):

  • m:列出所有指令帮助,忘记命令时可随时调用;
  • p:查看当前磁盘的现有分区表,实时验证操作结果;
  • n:新建分区,可选择主分区(p)或扩展分区(e);
  • d:删除指定分区,需输入分区号确认;
  • q:放弃所有更改并退出,不保存分区表;
  • w:保存所有更改并退出,此操作后分区表才会生效

2.3 实操1:创建3个2G主分区(/dev/sdb)

/dev/sdb为例,创建3个2G的主分区,全程在fdisk /dev/sdb编辑模式下操作:

  1. 进入编辑模式:fdisk /dev/sdb,提示「设备不包含可识别的分区表」,直接继续;
  2. 创建第1个主分区:
    • 输入n→ 选择p(主分区)→ 分区号默认1→ 起始扇区默认回车 → 结束扇区输入+2G
[root@localhost ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x9397fb3d 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):n   
##输入`n`

分区类型
   p   主分区 (0个主分区,0个扩展分区,4空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p)##此处默认是`p`(主分区)
分区号 (1-4, 默认  1):       
##分区号默认`1`,也可以自己输入
第一个扇区 (2048-167772159, 默认 2048):   
##此处默认回车
##这是问你分区从硬盘哪个位置开始
##直接回车用默认 2048 ,这是系统推荐的4K对齐起始位置,性能最好
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-167772159, 默认 167772159): +2G
##结束扇区输入`+2G`
##上个扇区:就是问你分区到哪里结束;+2G:表示给这个分区分配 2GB 大小。如果直接回车,会把整个硬盘都分给这个分区
创建了一个新分区 1,类型为“Linux”,大小为 2 GiB。
##创建第一个分区成功
  1. 创建第2个主分区:
    • 再次输入n→ 选择p→ 分区号默认2→ 起始扇区默认回车 → 结束扇区输入+2G
命令(输入 m 获取帮助):n
分区类型
   p   主分区 (1个主分区,0个扩展分区,3空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (2-4, 默认  2): 
第一个扇区 (4196352-167772159, 默认 4196352): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (4196352-167772159, 默认 167772159): +2G

创建了一个新分区 2,类型为“Linux”,大小为 2 GiB。
  1. 创建第3个主分区:
    • 第三次输入n→ 选择p→ 分区号默认3→ 起始扇区默认回车 → 结束扇区输入+2G
命令(输入 m 获取帮助):n
分区类型
   p   主分区 (2个主分区,0个扩展分区,2空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):
分区号 (3,4, 默认  3): 
第一个扇区 (8390656-167772159, 默认 8390656): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (8390656-167772159, 默认 167772159): +2G

创建了一个新分区 3,类型为“Linux”,大小为 2 GiB。
  1. 验证分区表:输入p,可看到3个2G的主分区(/dev/sdb1、/dev/sdb2、/dev/sdb3);
命令(输入 m 获取帮助):p
Disk /dev/sdb:80 GiB,85899345920 字节,167772160 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9397fb3d

设备       启动    起点     末尾    扇区 大小 Id 类型
/dev/sdb1          2048  4196351 4194304   2G 83 Linux
/dev/sdb2       4196352  8390655 4194304   2G 83 Linux
/dev/sdb3       8390656 12584959 4194304   2G 83 Linux
  1. 保存退出:输入w,提示「分区表已调整」,完成分区创建;
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
  1. 关键步骤:刷新分区表,让Linux内核立即识别新分区(否则可能(不是一定)无法找到准确的设备):
[root@localhost ~]# partprobe /dev/sdb
  1. 最终验证:lsblk /dev/sdb,可看到3个分区已成功创建。
[root@localhost ~]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  80G  0 disk 
├─sdb1   8:17   0   2G  0 part 
├─sdb2   8:18   0   2G  0 part 
└─sdb3   8:19   0   2G  0 part 

2.4 实操2:创建扩展分区+逻辑分区

MBR模式下,主分区最多只能创建3个(本次已用满),剩余的74G容量需先创建扩展分区,再在扩展分区内创建逻辑分区(数量无限制)。

步骤1:创建扩展分区(分配剩余全部容量)

继续在fdisk /dev/sdb编辑模式下操作:

  1. 输入n→ 系统自动选择e(扩展分区,因主分区已占满)→ 分区号默认4;起始扇区默认回车 → 结束扇区默认回车(分配剩余全部74G容量);
[root@localhost ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n
分区类型
   p   主分区 (3个主分区,0个扩展分区,1空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 e):

将使用默认回应 e。
已选择分区 4
第一个扇区 (12584960-167772159, 默认 12584960): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (12584960-167772159, 默认 167772159): 

创建了一个新分区 4,类型为“Extended”,大小为 74 GiB。
  1. 输入p验证:可看到/dev/sdb4为扩展分区,类型为「Extended」;
命令(输入 m 获取帮助):p
Disk /dev/sdb:80 GiB,85899345920 字节,167772160 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9397fb3d

设备       启动     起点      末尾      扇区 大小 Id 类型
/dev/sdb1           2048   4196351   4194304   2G 83 Linux
/dev/sdb2        4196352   8390655   4194304   2G 83 Linux
/dev/sdb3        8390656  12584959   4194304   2G 83 Linux
/dev/sdb4       12584960 167772159 155187200  74G  5 扩展
  1. 输入w保存退出,执行partprobe /dev/sdb刷新分区表。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@localhost ~]# partprobe /dev/sdb
步骤2:创建2个2G逻辑分区

逻辑分区需在扩展分区内创建,编号从5开始(1-4为主/扩展分区预留),操作如下:

  1. 进入编辑模式:fdisk /dev/sdb
  2. 创建第1个逻辑分区(/dev/sdb5):
    • 输入n→ 系统自动提示「添加逻辑分区5」→ 起始扇区默认回车 → 结束扇区输入+2G
[root@localhost ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n
所有主分区都在使用中。
添加逻辑分区 5
第一个扇区 (12587008-167772159, 默认 12587008): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (12587008-167772159, 默认 167772159): +2G

创建了一个新分区 5,类型为“Linux”,大小为 2 GiB。
  1. 创建第2个逻辑分区(/dev/sdb6):
    • 再次输入n→ 系统自动提示「添加逻辑分区6」→ 起始扇区默认回车 → 结束扇区输入+2G
命令(输入 m 获取帮助):n
所有主分区都在使用中。
添加逻辑分区 6
第一个扇区 (16783360-167772159, 默认 16783360): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (16783360-167772159, 默认 167772159): +2G

创建了一个新分区 6,类型为“Linux”,大小为 2 GiB。
  1. 输入p验证:可看到扩展分区下的2个逻辑分区;
命令(输入 m 获取帮助):p
Disk /dev/sdb:80 GiB,85899345920 字节,167772160 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9397fb3d

设备       启动     起点      末尾      扇区 大小 Id 类型
/dev/sdb1           2048   4196351   4194304   2G 83 Linux
/dev/sdb2        4196352   8390655   4194304   2G 83 Linux
/dev/sdb3        8390656  12584959   4194304   2G 83 Linux
/dev/sdb4       12584960 167772159 155187200  74G  5 扩展
/dev/sdb5       12587008  16781311   4194304   2G 83 Linux
/dev/sdb6       16783360  20977663   4194304   2G 83 Linux
  1. 输入w保存退出,执行partprobe /dev/sdb刷新分区表;
  2. 最终验证:lsblk /dev/sdb,可看到sdb5、sdb6两个2G逻辑分区。
[root@localhost ~]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  80G  0 disk 
├─sdb1   8:17   0   2G  0 part 
├─sdb2   8:18   0   2G  0 part 
├─sdb3   8:19   0   2G  0 part 
├─sdb4   8:20   0   1K  0 part 
├─sdb5   8:21   0   2G  0 part 
└─sdb6   8:22   0   2G  0 part 

重要补充:分区起始编号之前到底是什么

分区起始扇区之前,是磁盘的头部元数据区域(包括 MBR、GPT 表头、分区表、引导代码、保留扇区等,了解即可)绝对不能被分区占用

  • 该区域不属于任何分区,不可格式化,不可挂载
  • 一旦被覆盖或损坏,磁盘上所有分区将全部丢失

因此,只要不破坏这个头部元数据区域,单个分区的损坏通常不会连累其他分区的数据。


三、分区格式化|让分区可存储数据

Linux中新建的分区为「裸分区」,仅划分了磁盘区域但无文件系统,必须格式化后才能存储数据。格式化的核心是为分区指定文件系统类型,常用mkfs工具集,支持ext4、xfs、vfat等多种文件系统。

什么是磁盘格式化?
在 Linux 磁盘管理中,**格式化(Format)**是一个非常关键但也容易被误解的操作。很多新手以为“格式化 = 清空数据”,其实远远不止。
格式化 = 在分区上创建文件系统(Filesystem)。

特点:

  • 格式化 = 重建文件系统,原有数据会丢失
    不是“删除文件”,而是重建管理结构,数据几乎无法恢复。
  • 格式化不破坏分区表
    你格式化 /dev/sda1,只会影响 sda1,不会影响 sda2、sda3。

常见误区:

误区 1:格式化 = 清空数据

不完全正确。
格式化是重建文件系统结构,旧数据还在磁盘上,只是被标记为“可覆盖”,直到被新数据覆盖。

误区 2:格式化会破坏其他分区

不会。
格式化只作用于目标分区,不会影响其他分区
只有破坏 MBR/GPT 才会影响全部分区。

误区 3:磁盘必须格式化才能用

是的,必须。
裸分区无法存储文件,必须有文件系统。


3.1 常用格式化命令:mkfs(文件系统)工具集

核心格式:mkfs.文件系统类型 分区设备路径,无需进入编辑模式,直接在终端执行即可,常用文件系统及对应命令:

  • ext4(掌握):通用型文件系统,稳定性强、兼容性好,适合大部分场景:mkfs.ext4 /dev/分区名
  • xfs(掌握):高性能文件系统,支持大文件、高IO吞吐量,适合数据存储/数据库场景:mkfs.xfs /dev/分区名
  • vfat(了解):跨平台文件系统,适合Linux和Windows互传文件:mkfs.vfat /dev/分区名

3.2 查看文件系统类型|blkid命令

格式化后,可用blkid命令验证格式化结果,查看分区的文件系统类型、UUID等信息(UUID可用于永久挂载,比设备路径更稳定),核心格式:

[root@localhost ~]# blkid /dev/分区名  # 示例:blkid /dev/sdb1

3.3 实操格式化|主分区+逻辑分区

本次将实操中创建的分区按「ext4/xfs」搭配格式化,命令如下:

# 主分区格式化
[root@localhost ~]# mkfs.ext4 /dev/sdb1  # sdb1 → ext4
[root@localhost ~]# mkfs.xfs /dev/sdb2   # sdb2 → xfs

# 逻辑分区格式化
[root@localhost ~]# mkfs.ext4 /dev/sdb5  # sdb5 → ext4
[root@localhost ~]# mkfs.xfs /dev/sdb6   # sdb6 → xfs

# 验证格式化结果(批量查看)
[root@localhost ~]# blkid /dev/sdb1 /dev/sdb2 /dev/sdb5 /dev/sdb6

四、挂载访问|让分区被系统识别使用

格式化后的分区仍无法直接访问,需挂载至Linux的空目录(挂载点),访问挂载点即等于访问分区。这是Linux磁盘使用的核心规则,分为「临时挂载」和「永久挂载」两种方式,按需选择。

4.1 挂载核心规则

  1. 挂载点必须是空目录,若目录有数据,挂载后数据会被临时隐藏,卸载后恢复;
  2. 一个分区可挂载至多个挂载点,一个挂载点只能挂载一个分区
  3. 临时挂载:重启系统后失效,适合临时使用(如临时拷贝数据);
  4. 永久挂载:修改系统配置文件,开机自动挂载,适合长期使用(如业务数据存储)。

4.2 临时挂载|mount/umount命令

核心使用mount挂载,umount卸载,操作简单,无需修改配置文件,步骤如下:

步骤1:创建挂载点(空目录)
# 一次性创建多个挂载点,对应sdb1、sdb2
[root@localhost ~]# mkdir /mypart1 /mypart2
步骤2:执行挂载

核心格式:mount 分区路径 挂载点

# 将sdb1挂载至/mypart1,sdb2挂载至/mypart2
[root@localhost ~]# mount /dev/sdb1 /mypart1
[root@localhost ~]# mount /dev/sdb2 /mypart2
步骤3:验证挂载&使用分区

向挂载点写入文件,即可实现向分区存储数据,验证命令:

# 向sdb1写入文件
[root@localhost ~]# touch /mypart1/a.txt
[root@localhost ~]# echo 123 > /mypart1/test01.txt

# 查看分区数据
[root@localhost ~]# ls /mypart1

# 查看所有挂载信息,过滤sdb验证
[root@localhost ~]# df -h | grep sdb
步骤4:卸载挂载

无需使用分区时,用umount卸载,核心格式:umount 挂载点/分区路径(二选一)

# 方式1:通过挂载点卸载(推荐,更直观)
[root@localhost ~]# umount /mypart1
[root@localhost ~]# umount /mypart2

# 方式2:通过分区路径卸载
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# umount /dev/sdb2

# 验证卸载结果
[root@localhost ~]# df -h | grep sdb  # 无输出即卸载成功

4.3 永久挂载|修改/etc/fstab配置文件

临时挂载重启失效,若需分区长期使用,需修改/etc/fstab文件——Linux开机时会自动读取该文件,实现分区自动挂载。操作前建议备份配置文件,防止配置错误导致系统无法启动。

步骤1:备份/etc/fstab
[root@localhost ~]# cp /etc/fstab /opt/  # 备份至/opt目录,出错可恢复
步骤2:编辑/etc/fstab文件

使用vim编辑,核心格式:分区路径 挂载点 文件系统类型 挂载参数 dump值 fsck值

[root@localhost ~]# vim /etc/fstab

在文件末尾添加以下内容(对应sdb1、sdb2、sdb5、sdb6),每行一个分区的挂载配置:

# 主分区挂载
/dev/sdb1    /mypart1    ext4   defaults    0    0
/dev/sdb2    /mypart2    xfs    defaults    0    0

# 逻辑分区挂载(先创建挂载点:mkdir /test01 /test02)
/dev/sdb5    /test01     ext4   defaults    0    0
/dev/sdb6    /test02     xfs    defaults    0    0

配置参数说明

  • defaults:默认挂载参数,包含rw(可读写)、suid(允许SUID)、dev(识别设备文件)等,满足99%场景;
  • dump值:0=不备份,1=每天备份,一般设为0(非系统盘无需备份);
  • fsck值:0=开机不检查,1=优先检查(系统盘用),2=次优先检查,非系统盘建议设0。
步骤3:刷新配置,让挂载立即生效

修改配置后,无需重启系统,执行mount -a命令即可刷新配置,让永久挂载立即生效(同时验证配置是否有误):

[root@localhost ~]# mount -a
步骤4:验证永久挂载
# 查看所有挂载信息
[root@localhost ~]# df -Th

# 向分区写入数据,验证可访问性
[root@localhost ~]# echo 123 > /test01/f1.txt
[root@localhost ~]# echo 456 > /test02/f2.txt
[root@localhost ~]# ls /test01 /test02

关键验证:重启虚拟机后,再次执行df -Th,分区仍处于挂载状态,即永久挂载配置成功。(T参数可以额外显示出文件类型)

[root@localhost ~]# df -Th
文件系统            类型      容量  已用  可用 已用% 挂载点
devtmpfs            devtmpfs  864M     0  864M    0% /dev
tmpfs               tmpfs     893M     0  893M    0% /dev/shm
tmpfs               tmpfs     893M  9.5M  884M    2% /run
tmpfs               tmpfs     893M     0  893M    0% /sys/fs/cgroup
/dev/mapper/rl-root xfs        52G  5.2G   47G   10% /
/dev/sr0            iso9660    11G   11G     0  100% /mydvd
/dev/mapper/rl-home xfs        26G  224M   26G    1% /home
/dev/sda1           xfs      1014M  255M  760M   26% /boot
tmpfs               tmpfs     179M   20K  179M    1% /run/user/0
/dev/sdb1           ext4      2.0G  6.0M  1.8G    1% /mypart1
/dev/sdb2           xfs       2.0G   47M  2.0G    3% /mypart2
/dev/sdb6           xfs       2.0G   47M  2.0G    3% /test02
/dev/sdb5           ext4      2.0G  6.0M  1.8G    1% /test01

五、GPT分区模式实操|大容量磁盘必备

GPT(GUID Partition Table)是新一代分区模式,突破了MBR的所有限制,适合2.2TB以上的大容量磁盘,也是现在企业级运维的主流选择。本次为虚拟机添加10G硬盘/dev/sdc,实操GPT分区全流程。

5.1 GPT分区模式核心特性

  1. 容量限制:最大支持18EB磁盘(1EB=1024PB=1024×1024TB),完全满足海量存储需求;
  2. 分区规则:最多支持128个主分区无需扩展分区和逻辑分区,直接创建主分区即可;
  3. 兼容性:突破MBR的64字节分区表限制,采用全局唯一标识(GUID),稳定性和容错性更强;
  4. 分区工具:专用parted命令,支持交互式/非交互式操作,可直接指定分区表类型。

5.2 前期准备:添加10G虚拟硬盘

与添加80G硬盘步骤一致,关闭虚拟机后,通过VMware添加10G SCSI硬盘,开启后用lsblk /dev/sdc验证识别(无分区、无挂载点)。


5.3 parted分区工具实操|创建2个2G主分区

parted命令直接在交互式模式下操作,核心步骤为「指定分区表类型→创建分区→验证→退出」,全程针对/dev/sdc操作:

进入后执行以下命令,按提示操作:

  1. 指定分区表类型为GPT(核心,区分MBR)
[root@localhost ~]# parted /dev/sdc
# 进入parted交互式模式,指定操作磁盘为/dev/sdc

GNU Parted 3.2
使用 /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.                                                  
(parted) mktable           #建表                                                                                                    
新的磁盘标签类型? gpt      #指定分区表为gpt格式                                              
警告: The existing disk label on /dev/sdc will be destroyed and all data on this disk
will be lost. Do you want to continue?
是/Yes/否/No? Yes      #输入`yes`确认

提示「警告:将会销毁/dev/sdc上的所有数据」,输入yes确认;

  1. 创建第1个2G主分区(/dev/sdc1):
(parted) mkpart                 #分区                                          
分区名称?  []?                 # 直接回车,无需命名                                          
文件系统类型?  [ext2]?          # 直接回车,仅记录,不影响后续格式化                                       
起始点? 0                       # 分区并不从0开始,这么写会触发对齐警告,但比较省事(也可写1G,避免磁盘起始扇区问题)                                        
结束点? 2G                      # 分区大小2G                                         
警告: The resulting partition is not properly aligned for best performance: 34s %              #对齐警告。
2048s != 0s                      #这个意思是系统推荐你从 2048 扇区开始分区
忽略/Ignore/放弃/Cancel? Ignore   #无视对齐,继续执行   

提示对齐误差,输入Ignore忽略即可(虚拟机环境无影响);

  1. 创建第2个2G主分区(/dev/sdc2):
(parted) mkpart
分区名称?  []?                 # 直接回车                                          
文件系统类型?  [ext2]?          # 直接回车                                         
起始点? 2G                       # 从上一个分区结束位置开始                                         
结束点? 4G                       # 分区大小为4-2=2 G
  1. 验证分区表:
(parted) print         # 打印分区表,查看2个2G主分区                                                   
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  标志
 1      17.4kB  2000MB  2000MB
 2      2001MB  4000MB  2000MB  ext2

  1. 保存退出:
(parted) quit          # 直接退出即保存,无需额外命令(与fdisk的w不同)                                                   
信息: You may need to update /etc/fstab.
  1. 刷新分区表:
[root@localhost ~]# partprobe /dev/sdc
  1. 最终验证:lsblk /dev/sdc,可看到sdc1、sdc2两个2G主分区。

5.4 GPT分区格式化+永久挂载

GPT分区的格式化永久挂载步骤与MBR分区完全一致,无任何区别(这是Linux磁盘管理的统一规则)。本次将sdc1格式化为ext4,sdc2格式化为xfs,永久挂载至/mypart5/mypart6,命令如下:

# 1. 格式化分区
[root@localhost ~]# mkfs.ext4 /dev/sdc1
[root@localhost ~]# mkfs.xfs /dev/sdc2

# 2. 创建挂载点
[root@localhost ~]# mkdir /mypart5 /mypart6

# 3. 编辑/etc/fstab,添加永久挂载配置
[root@localhost ~]# vim /etc/fstab
# 在文件末尾添加
/dev/sdc1  /mypart5  ext4  defaults  0  0
/dev/sdc2  /mypart6  xfs   defaults  0  0

# 4. 刷新配置,立即生效
[root@localhost ~]# mount -a

# 5. 验证挂载&使用
[root@localhost ~]# df -Th | grep sdc
/dev/sdc1           ext4      1.9G  5.7M  1.7G    1% /mypart5
/dev/sdc2           xfs       1.9G   46M  1.9G    3% /mypart6

[root@localhost ~]# echo 123 >> /mypart5/123.txt
[root@localhost ~]# echo 456 >> /mypart6/456.txt

[root@localhost ~]# ls /mypart5 /mypart6

六、MBR与GPT分区模式核心对比

为了方便大家快速选择适合的分区模式,整理了MBR和GPT的核心区别,按需选择即可:

对比维度 MBR分区模式 GPT分区模式
最大支持容量 2.2TB 18EB
最多分区数 4个主分区/3主+1扩展 128个主分区
分区结构 主分区+扩展分区+逻辑分区 仅主分区,无需扩展/逻辑
分区工具 fdisk parted
适用场景 2.2TB以下磁盘、传统运维 2.2TB以上磁盘、企业级大容量存储
稳定性 分区表64字节,易损坏 全局唯一标识,自带备份分区表,稳定性强

GPT 与 MBR 分区流程对比

对比项 MBR(fdisk) GPT(parted)
第一步 直接分区(n 先建表(mklabel gpt
建表警告 有(提示数据将全部丢失)
后续分区 每次分完需保存(w 直接 mkpart,无警告
操作逻辑 在已有表结构上添加记录 先创建表结构,再添加记录
相比与MBR而言,gpt分区的流程是先建表(mklabel),再分区(mkpart)

操作示例对比

步骤 MBR(fdisk) GPT(parted)
1 fdisk /dev/sdb parted /dev/sdb
2 n 创建分区 mklabel gpt ⚠️ 警告
3 n 再创建 mkpart primary 0% 1G
4 w 保存退出 mkpart primary 1G 2G
5 - quit

七、Linux磁盘管理核心命令汇总

本文所有实操的核心命令都整理在这里,建议收藏,日常运维可直接查阅:

功能场景 核心命令
查看磁盘/分区信息 lsblk [设备/分区路径]
MBR分区编辑 fdisk 磁盘路径(内指令:n/p/e/d/w/q)
GPT分区编辑 parted 磁盘路径(内指令:mktable/mkpart/print/quit)
刷新分区表 partprobe 磁盘路径
分区格式化 mkfs.ext4/mkfs.xfs 分区路径
查看文件系统类型 blkid 分区路径
临时挂载 mount 分区路径 挂载点
卸载挂载 umount 挂载点/分区路径
永久挂载配置 vim /etc/fstab → mount -a
查看挂载信息 df -Th [| grep 过滤关键字] (T关键字可以查看到文件类型)

八、实操总结

本次教程以VMware虚拟机为环境,完成了Linux磁盘管理的全流程实操,核心掌握以下几点即可:

  1. 掌握虚拟机添加虚拟硬盘的步骤,以及lsblk验证磁盘识别的方法(Linux磁盘最小存储单位为扇区,512字节);
  2. 掌握MBR分区模式的fdisk操作,能创建主分区、扩展分区和逻辑分区,理解其2.2TB容量限制;
  3. 掌握GPT分区模式的parted操作,了解其大容量、多分区、高稳定性的优势;
  4. 掌握分区格式化的mkfs工具集,以及blkid验证格式化结果的方法;
  5. 掌握临时挂载永久挂载的区别与操作,理解/etc/fstab的配置规则(核心是「设备-挂载点-文件系统-参数」);
  6. 能根据磁盘容量选择合适的分区模式,完成「识别-分区-格式化-挂载」的全流程操作。

磁盘管理是Linux运维的基础,后续还会延伸出LVM逻辑卷(动态调整分区大小)、磁盘配额(限制用户磁盘使用量)、RAID阵列(磁盘冗余/性能提升)等进阶内容,掌握本次的基础实操,才能更好地学习后续知识点。

总结

  1. Linux磁盘使用的核心流程是「识别硬盘→分区规划→格式化→挂载使用」,MBR和GPT仅分区环节工具/规则不同,格式化、挂载步骤完全统一;
  2. MBR适合2.2TB以下磁盘,用fdisk操作,需区分主分区/扩展分区/逻辑分区;GPT无容量/分区数限制,用parted操作,仅需创建主分区;
  3. 永久挂载需修改/etc/fstab并执行mount -a,操作前务必备份配置文件,避免系统启动异常。
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐