[Linux]磁盘未分配空间挂载新分区 - 教程
2025-10-03 21:33 tlnshuju 阅读(25) 评论(0) 收藏 举报在 Linux 服务器使用过程中,我们常会遇到这样的情况:初始分配的根分区空间有限,而磁盘实际总容量远大于已使用空间。此时,充分利用磁盘的未分配空间扩展存储就成了常见需求。直接扩展根分区存在一定风险(需调整正在使用的分区),更安全的方案是在未分配空间上创建新分区,挂载到指定目录(如/app
),既不影响现有系统,又能灵活扩展存储。本文将详细介绍这一过程的完整步骤及原理。
操作前的准备:了解磁盘现状
在开始操作前,我们需要先确认磁盘的分区情况和未分配空间大小,确保有可用空间可供分配。
步骤 1:查看磁盘及分区现状
执行以下命令查看系统中的磁盘和分区信息:
lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 300G 0 disk
└─vda1 253:1 0 20G 0 part /
关键信息解读:
vda
是我们要操作的磁盘,总容量为 300G;vda1
是已有的分区(通常是根分区),容量 20G,挂载在/
;磁盘剩余未分配空间为 300G - 20G = 280G(即
vda
下未显示其他分区的部分)。
第一步:在未分配空间上创建新分区
磁盘的未分配空间无法直接使用,需先创建一个新分区(如vda2
),我们使用parted
工具完成这一操作(支持在线操作,不影响现有分区)。
步骤 1:进入 parted 工具
parted /dev/vda
说明:parted
是 Linux 下功能强大的分区工具,支持各种磁盘类型,这里指定操作/dev/vda
磁盘。
步骤 2:确认未分配空间位置
在parted
交互模式中,执行以下命令查看磁盘的详细分区和未分配空间:
(parted) print free
输出示例:
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 300GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Start End Size Type File system Flags
32.3kB 1049kB 1016kB Free Space
1 1049kB 21.5GB 21.5GB primary ext4 boot
21.5GB 300GB 278.5GB Free Space # 未分配空间
关键信息:记录未分配空间的起始位置(如示例中的21.5GB
),这是新分区的开始位置,需避开已有的vda1
分区。
步骤 3:创建新分区
在parted
交互模式中执行以下命令:
(parted) mkpart primary 21.5GB 100%
参数解释:
mkpart
:创建新分区的命令;primary
:指定分区类型为主分区(可直接格式化使用,适合独立存储需求);21.5GB
:新分区的起始位置(即未分配空间的开始位置,需与上一步记录的值一致);100%
:新分区的结束位置(表示占用从起始位置到磁盘末尾的所有空间)。
交互提示处理:
若提示 “Partition type? primary/extended?”,输入
primary
;若提示 “File system type?”,直接按回车(暂不指定,后续手动格式化);
若提示 “warning: The resulting partition is not properly aligned for best performance”,输入
Ignore
(不影响功能,仅可能略影响性能)。
步骤 4:确认新分区创建成功
(parted) print
输出示例:
Number Start End Size Type File system Flags
1 1049kB 21.5GB 21.5GB primary ext4 boot
2 21.5GB 300GB 278.5GB primary # 新创建的vda2
确认新分区(通常为vda2
)已出现,且大小为预期的未分配空间。
步骤 5:退出 parted 工具
(parted) quit
步骤 6:刷新分区表(让系统识别新分区)
partprobe /dev/vda
说明:新分区创建后,内核可能不会立即识别,partprobe
命令用于通知内核重新读取分区表,避免重启系统。
第二步:格式化新分区(创建文件系统)
分区创建后需格式化(创建文件系统)才能存储文件,我们选择 Linux 常用的ext4
文件系统(兼容性好、稳定性高)。
步骤 1:格式化 vda2 为 ext4 文件系统
mkfs.ext4 /dev/vda2
说明:mkfs.ext4
命令会在/dev/vda2
分区上创建 ext4 文件系统,过程中会初始化索引节点、数据块等关键结构。
交互提示处理:
- 若提示 “Proceed anyway? (y,N)”,输入
y
确认格式化(仅针对新分区,无数据风险)。
步骤 2:记录分区 UUID(用于后续挂载)
格式化完成后,执行以下命令获取新分区的 UUID:
blkid /dev/vda2
输出示例:
/dev/vda2: UUID="a1b2c3d4-e5f6-7890-abcd-1234567890ab" BLOCK\_SIZE="4096" TYPE="ext4" PARTUUID="e4f5g6h7-02"
说明:UUID 是分区的唯一标识,相比设备名(如/dev/vda2
)更可靠,避免因磁盘顺序变动导致挂载失败,需记录此 UUID(如示例中的a1b2c3d4-e5f6-7890-abcd-1234567890ab
)。
第三步:挂载新分区到指定目录
新分区需挂载到一个目录才能被系统访问,我们选择/app
作为挂载点(可根据实际需求修改)。
步骤 1:创建挂载点目录
mkdir -p /app
说明:
mkdir -p
确保目录创建成功,即使/app
已存在也不会报错;挂载点目录为空目录(若有文件,挂载后会被隐藏,建议先备份目录内文件)。
步骤 2:临时挂载新分区
mount /dev/vda2 /app
说明:此命令将/dev/vda2
临时挂载到/app
,当前会话中可直接使用,但重启后会失效,需进一步配置开机自动挂载。
步骤 3:验证临时挂载成功
df -h /app
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 276G 61M 261G 1% /app
确认/dev/vda2
已挂载到/app
,且容量符合预期。
第四步:配置开机自动挂载(永久生效)
为避免重启后挂载失效,需将挂载信息写入/etc/fstab
文件(系统启动时自动读取的挂载配置)。
步骤 1:编辑 /etc/fstab 文件
vi /etc/fstab
说明:/etc/fstab
是系统挂载配置文件,每行记录一个分区的挂载信息,格式为固定的 6 个字段。
步骤 2:添加挂载配置
在文件末尾添加以下内容(使用上一步记录的 UUID):
UUID=a1b2c3d4-e5f6-7890-abcd-1234567890ab /app ext4 defaults 0 2
字段解释(按顺序):
UUID=a1b2c3d4-e5f6-7890-abcd-1234567890ab
:分区的唯一标识(从blkid
输出获取,实际操作需替换为自己分区的真实 UUID);/app
:挂载点目录;ext4
:文件系统类型(与格式化时一致);defaults
:挂载参数(包含读写权限、自动挂载等默认设置);0
:是否使用dump
工具备份(0 表示不备份);2
:开机时fsck
检查顺序(0 表示不检查,1 为根分区专用,其他分区用 2)。
步骤 3:保存并退出编辑
vi
编辑器:按Esc
后输入:wq
回车(保存并退出)。
步骤 4:验证 fstab 配置(关键!)
mount -a
说明:mount -a
命令会加载/etc/fstab
中所有未挂载的分区,若执行后无任何输出,说明配置正确;若提示错误,需检查 UUID、目录路径或格式是否正确(错误配置可能导致系统无法启动)。
最终验证:确认所有配置生效
执行以下命令确认新分区已正确挂载且开机自动挂载配置有效:
\# 查看当前挂载状态
df -h /app
\# 查看fstab配置
cat /etc/fstab | grep /app
输出示例(fstab 查看):
UUID=a1b2c3d4-e5f6-7890-abcd-1234567890ab /app ext4 defaults 0 2
若输出正常,说明操作完成。后续/app
目录下的文件会直接存储在vda2
分区,不占用根分区空间。
方案优势与注意事项
优势
安全性高:无需修改正在使用的根分区,避免操作失误导致系统崩溃;
在线操作:全程无需重启系统(除验证自动挂载外),适合生产环境;
灵活性强:新分区独立于根分区,后续可单独扩展或调整。
注意事项
分区起始位置:创建新分区时,起始位置必须避开已有分区,否则会覆盖数据;
UUID 准确性:
/etc/fstab
中 UUID 需与blkid
输出完全一致(实际操作时需复制真实 UUID,避免手动输入错误);fstab 验证:
mount -a
命令必须执行,否则无法发现配置错误,可能导致系统启动失败;数据备份:若
/app
目录原有文件,需先备份再挂载(挂载后原文件会被隐藏)。
通过以上步骤,我们成功将磁盘的未分配空间转化为可用存储,并通过/app
目录方便地使用,既扩展了系统存储,又保障了原有系统的稳定性。