# Linux进阶Day2:磁盘管理|从分区到挂载一步到位
声明:本文仅作学习交流使用,引用需标明出处。
如有谬误,敬请指正
在Linux系统运维中,磁盘管理是核心基础技能,涵盖硬盘识别、分区规划、格式化、挂载访问等关键操作。本文以VMware虚拟机为环境,手把手教你完成MBR/GPT两种分区模式的全流程实操,从添加虚拟硬盘到分区永久使用,每个步骤都配有具体命令和操作细节,新手也能轻松上手。
一、前期准备:识别硬盘
Linux会自动识别新增硬盘,核心分为虚拟机添加虚拟硬盘和Linux系统验证识别两步,本次先为虚拟机添加一块80G的SCSI硬盘作为MBR分区实操载体,后续再添加10G硬盘用于GPT分区练习。
1.1 磁盘基础核心概念
- 物理结构:磁盘主要由主轴、空气过滤部件、磁头臂、音圈马达、磁头、磁头停泊区、永磁铁等部分组成。
- 最小存储单位:扇区,单个扇区固定大小为512字节。
- 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.2 为VMware虚拟机添加80G硬盘
操作前提:必须先关闭虚拟机,否则无法添加硬件
- 打开虚拟机,点击「编辑虚拟机设置」→「添加」,进入添加硬件向导;
- 硬件类型选择「硬盘」,点击下一步,磁盘类型默认选择SCSI(推荐,Linux对SCSI接口兼容性最优);
- 选择「创建新虚拟磁盘」,设置最大磁盘容量为80G,建议勾选「将虚拟磁盘拆分成多个文件」(便于虚拟机移动和备份);
- 确认磁盘文件存储路径,默认命名即可,完成后返回虚拟机设置,可看到新增的80G硬盘;
- 开启虚拟机,等待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分区模式核心特性
- 分区规则:MBR 分区表只有 64 字节用于记录分区表项,每个表项占 16 字节,因此最大仅支持1-4个主分区,或0-3个主分区+1个扩展分区(扩展分区可划分多个逻辑分区);
- 容量限制:最大支持2.2TB的磁盘,超过该容量需使用GPT模式;
- 特殊规则:扩展分区不能格式化、不能直接存储数据,仅作为逻辑分区的「载体」(即拓展分区仅作为逻辑分区的容器,其容量需全部分配给下属逻辑分区,因此无法格式化和存储数据);
- 分区工具:专用
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编辑模式下操作:
- 进入编辑模式:
fdisk /dev/sdb,提示「设备不包含可识别的分区表」,直接继续; - 创建第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。
##创建第一个分区成功
- 创建第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。
- 创建第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。
- 验证分区表:输入
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
- 保存退出:输入
w,提示「分区表已调整」,完成分区创建;
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
- 关键步骤:刷新分区表,让Linux内核立即识别新分区(否则可能(不是一定)无法找到准确的设备):
[root@localhost ~]# partprobe /dev/sdb
- 最终验证:
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编辑模式下操作:
- 输入
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。
- 输入
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 扩展
- 输入
w保存退出,执行partprobe /dev/sdb刷新分区表。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@localhost ~]# partprobe /dev/sdb
步骤2:创建2个2G逻辑分区
逻辑分区需在扩展分区内创建,编号从5开始(1-4为主/扩展分区预留),操作如下:
- 进入编辑模式:
fdisk /dev/sdb; - 创建第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。
- 创建第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。
- 输入
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
- 输入
w保存退出,执行partprobe /dev/sdb刷新分区表; - 最终验证:
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 挂载核心规则
- 挂载点必须是空目录,若目录有数据,挂载后数据会被临时隐藏,卸载后恢复;
- 一个分区可挂载至多个挂载点,一个挂载点只能挂载一个分区;
- 临时挂载:重启系统后失效,适合临时使用(如临时拷贝数据);
- 永久挂载:修改系统配置文件,开机自动挂载,适合长期使用(如业务数据存储)。
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分区模式核心特性
- 容量限制:最大支持18EB磁盘(1EB=1024PB=1024×1024TB),完全满足海量存储需求;
- 分区规则:最多支持128个主分区,无需扩展分区和逻辑分区,直接创建主分区即可;
- 兼容性:突破MBR的64字节分区表限制,采用全局唯一标识(GUID),稳定性和容错性更强;
- 分区工具:专用
parted命令,支持交互式/非交互式操作,可直接指定分区表类型。
5.2 前期准备:添加10G虚拟硬盘
与添加80G硬盘步骤一致,关闭虚拟机后,通过VMware添加10G SCSI硬盘,开启后用lsblk /dev/sdc验证识别(无分区、无挂载点)。
5.3 parted分区工具实操|创建2个2G主分区
parted命令直接在交互式模式下操作,核心步骤为「指定分区表类型→创建分区→验证→退出」,全程针对/dev/sdc操作:
进入后执行以下命令,按提示操作:
- 指定分区表类型为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个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忽略即可(虚拟机环境无影响);
- 创建第2个2G主分区(/dev/sdc2):
(parted) mkpart
分区名称? []? # 直接回车
文件系统类型? [ext2]? # 直接回车
起始点? 2G # 从上一个分区结束位置开始
结束点? 4G # 分区大小为4-2=2 G
- 验证分区表:
(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
- 保存退出:
(parted) quit # 直接退出即保存,无需额外命令(与fdisk的w不同)
信息: You may need to update /etc/fstab.
- 刷新分区表:
[root@localhost ~]# partprobe /dev/sdc
- 最终验证:
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磁盘管理的全流程实操,核心掌握以下几点即可:
- 掌握虚拟机添加虚拟硬盘的步骤,以及
lsblk验证磁盘识别的方法(Linux磁盘最小存储单位为扇区,512字节); - 掌握MBR分区模式的
fdisk操作,能创建主分区、扩展分区和逻辑分区,理解其2.2TB容量限制; - 掌握GPT分区模式的
parted操作,了解其大容量、多分区、高稳定性的优势; - 掌握分区格式化的
mkfs工具集,以及blkid验证格式化结果的方法; - 掌握临时挂载和永久挂载的区别与操作,理解
/etc/fstab的配置规则(核心是「设备-挂载点-文件系统-参数」); - 能根据磁盘容量选择合适的分区模式,完成「识别-分区-格式化-挂载」的全流程操作。
磁盘管理是Linux运维的基础,后续还会延伸出LVM逻辑卷(动态调整分区大小)、磁盘配额(限制用户磁盘使用量)、RAID阵列(磁盘冗余/性能提升)等进阶内容,掌握本次的基础实操,才能更好地学习后续知识点。
总结
- Linux磁盘使用的核心流程是「识别硬盘→分区规划→格式化→挂载使用」,MBR和GPT仅分区环节工具/规则不同,格式化、挂载步骤完全统一;
- MBR适合2.2TB以下磁盘,用
fdisk操作,需区分主分区/扩展分区/逻辑分区;GPT无容量/分区数限制,用parted操作,仅需创建主分区; - 永久挂载需修改
/etc/fstab并执行mount -a,操作前务必备份配置文件,避免系统启动异常。
更多推荐



所有评论(0)