1. 介绍
在使用 Ubuntu 时,你可能会遇到“磁盘空间不足”或“因为没有空闲存储而无法安装新应用”等情况。此时,一个实用的解决方案是 分区扩容。分区扩容是指增大已有磁盘分区的大小,以更高效地利用存储空间。
Ubuntu 在服务器和桌面两方面都被广泛使用,分区管理在虚拟机、VPS(虚拟专用服务器)以及双系统等各种环境中经常需要进行。然而,许多用户会感到不确定,心里会想“该使用哪种方法?”或“如果操作失误会丢失数据吗?”
本文将尽可能清晰地讲解 Ubuntu 上的分区扩容,从简单的操作步骤到 LVM 与虚拟化环境中的高级示例。由于分区操作涉及重要风险,我们还会介绍准备工作和安全执行任务的关键要点。
本指南旨在帮助各类用户,无论是刚接触 Linux 命令行的新手,还是已经在其他发行版上使用过分区的中级用户。
分区扩容需要谨慎处理,但只要遵循正确的步骤,就能在保护重要数据的同时,充分利用存储容量。
2. 分区扩容的前置知识
在 Ubuntu 上进行分区扩容之前,了解一些基本概念有助于避免错误和问题。本节将解释分区与文件系统的基础知识、是否使用 LVM,以及当前 Ubuntu 分区布局的趋势。
2.1 什么是分区?
分区是一种将硬盘或 SSD 等物理存储设备划分为多个虚拟区域的机制。例如,一块磁盘可以被划分为系统区、用户数据区和交换区,每个区域都被视为独立的区域。Ubuntu 的系统文件、用户数据和交换空间通常会被分到不同的分区中。
2.2 分区表类型(GPT 与 MBR)
记录磁盘分区布局的主要方式有两种:GPT(GUID Partition Table)和 MBR(Master Boot Record)。
- MBR:一种较旧的格式,支持最大 2 TB 的磁盘,并且最多只能有四个主分区。
- GPT:一种较新的格式,支持大于 2 TB 的磁盘以及超过 128 个分区。GPT 已成为现代 Ubuntu 系统的标准。
如果不确定系统使用的是哪种格式,可以使用如下命令检查:
bash
sudo parted -l
2.3 是否使用 LVM(逻辑卷管理器)
在 Ubuntu 中,分区可以直接扩容,也可以通过 LVM(Logical Volume Manager)进行扩容,后者提供了更灵活的卷管理方式。
- 不使用 LVM(标准分区):常见的做法是直接在分区上创建 ext4 等文件系统。
- 使用 LVM:先在磁盘上创建物理卷(PV),再将多个 PV 合并为卷组(VG),随后在卷组中划分逻辑卷(LV)。这种结构支持灵活的大小调整,广泛用于服务器和云环境。
分区扩容的步骤会因是否使用 LVM 而有所不同。
2.4 Ubuntu 中的典型分区布局
在 Ubuntu 安装过程中,可以选择是否使用 LVM。近年来的服务器环境(尤其是 Ubuntu 20.04 及以后版本)通常推荐或默认使用 LVM。
而桌面版安装和双系统环境则常采用更简单的布局,例如单一的 ext4 分区。
2.5 扩容前的重要注意事项
在执行分区扩容之前,磁盘上必须有 未分配空间。根据磁盘布局和分区位置的不同,扩容可能无法实现。务必使用 lsblk、parted 等命令检查当前磁盘配置,例如:
bash
lsblk
parted /dev/sda print
此外,强烈建议提前备份重要数据。如果因错误或意外问题导致数据丢失,拥有备份将使您能够自信地继续操作。
3. 按环境划分的分区扩展方法
在 Ubuntu 上扩展分区的过程因环境和磁盘配置而异。本节解释四种常见情形:非 LVM 环境、LVM 环境、VPS 或云系统中的在线扩展,以及双启动环境。
3.1 在非 LVM(ext4)环境中扩展分区
这是最常见的情况,即在未使用 LVM 的情况下,直接在分区上创建 ext4 等文件系统。
- 增加磁盘容量
- 对于虚拟机或 VPS,请在管理控制台中增加磁盘容量。
- 对于实体 PC,请确保有未分配的空间。
- 扩展分区
- 使用
sudo parted或sudo fdisk来扩展目标分区。 - 使用 parted 时,可以使用如下命令(示例:扩展 /dev/sda1):
sudo parted /dev/sda (parted) resizepart 1 <new end position (e.g., 100%)>
- 扩展文件系统
- 分区扩展后,还必须扩展文件系统。
- 对于 ext4,运行
resize2fs命令:sudo resize2fs /dev/sda1 - 这会将新空间应用到文件系统。
- 验证扩展
- 完成后,使用
df -h确认磁盘容量已增加。
3.2 在 LVM 环境中扩展分区
使用 LVM 时,磁盘空间可以更灵活地扩展。
- 增加磁盘容量
- 首先,扩展物理或虚拟磁盘。
- 对于实体磁盘,确保有未分配的空间。
- 调整物理卷(PV)大小
- 使新添加的空间可供 LVM 使用:
sudo pvresize /dev/sda2
*(设备名称因环境而异。)
- 扩展逻辑卷(LV)
- 指定要扩展的逻辑卷:
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv -l +100%FREE分配所有可用的空闲空间。
- 扩展文件系统
- 若使用 ext4,使用
resize2fs扩展:sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
- 验证
- 使用
df -h或lsblk检查结果。
3.3 在 VPS 和云环境中的在线扩展
在 VPS 或云环境中,通常希望在不重启服务器的情况下扩展分区。此时 growpart 命令非常有用。
- 增加磁盘容量
- 通过供应商的管理控制台添加磁盘容量。
- 使用 growpart 扩展分区
- 若已安装 cloud-utils 包,可使用
growpart:sudo growpart /dev/sda 1 - 这会自动扩展分区(例如 /dev/sda1)。
- 扩展文件系统
- 然后使用
resize2fs扩展文件系统:sudo resize2fs /dev/sda1
- 验证
- 使用
df -h确认扩展。
3.4 双启动(Windows / Ubuntu)环境中的调整
当 Windows 与 Ubuntu 安装在同一磁盘上时,如果未分配空间不在 Ubuntu 分区相邻位置,可能无法进行扩展。
- 移动未分配空间
- 使用 Windows 分区工具(如 MiniTool Partition Wizard)将未分配空间移动到 Ubuntu 分区旁边。
- 在 Ubuntu 中扩展
- 按照上述标准扩展步骤操作。
- 备份是强制性的
- 双启动环境更容易出现问题,因此在继续之前务必备份数据。
4. 故障排除与常见问题
在分区扩展的前、后或过程中可能会出现各种问题和疑问。本节汇总了常见问题及典型错误的解决方案。
4.1 常见问题 (FAQ)
Q1. 我找不到空闲(未分配)空间。该怎么办?
A. 分区扩展需要未分配的空间。使用 lsblk 或 sudo parted /dev/sda print free 检查磁盘状态。如果没有未分配空间,删除不必要的分区或在虚拟环境中增大磁盘容量。
Q2. 如果我没有使用 LVM,是否需要 pvresize 或 lvextend?
A. 不需要。这些命令仅在使用 LVM 时才必需。对于普通的 ext4 分区,按照 “扩展分区 → 扩展文件系统” 的步骤操作。可以使用 lsblk 或 sudo pvs 检查系统是否使用了 LVM。
Q3. 分区旁边没有未分配空间。我还能扩展它吗?
A. 分区扩展必须有相邻的未分配空间。如果未分配空间位于其他位置,需要使用 MiniTool Partition Wizard 等工具调整分区顺序或位置。修改分区前务必备份数据。
Q4. 在 Ubuntu 正在运行时修改分区安全吗?
A. 系统分区(如 /)或已挂载的分区在使用中可能无法扩展。建议使用 Live USB 启动后进行操作。许多云服务器和 VPS 环境支持在线扩展,但如果出现错误,可能需要临时卸载分区或重启。
Q5. swap 分区阻碍了扩展。我该怎么办?
A. 暂时使用 swapoff 禁用 swap,删除 swap 分区,完成扩展后再重新创建 swap(如有需要),并相应更新 /etc/fstab。
Q6. 我在虚拟环境中增大了磁盘大小,但操作系统没有识别,为什么?
A. 在 hypervisor(VMware、VirtualBox 等)中扩容后,操作系统需要重新扫描设备。可使用以下命令:
echo 1 > /sys/class/block/sdX/device/rescan,或重启系统,亦可运行 partprobe。
Q7. GPT 与 MBR 有何区别,应该选哪种?
A. GPT 支持大于 2TB 的磁盘和更多分区,推荐用于现代系统。只有在需要兼容旧系统时才选择 MBR。

4.2 常见错误及解决方案
- “no free space available” → 需要相邻的未分配空间。调整分区位置后重试。
- “device is busy” 或 “resource busy” → 分区已挂载或正在使用。卸载后或使用 Live USB。
- “The partition is currently in use” → 目标分区处于活动状态。停止相关服务或重启后再试。
- “resize2fs: Bad magic number in super-block” → 请确认文件系统类型。对于 XFS,请使用
xfs_growfs而非resize2fs。
5. 执行后检查与总结
完成分区扩展后,务必验证结果,以确保没有因操作失误或意外问题导致的异常。
5.1 如何验证扩展结果
(1) 检查磁盘使用情况
使用 df -h 显示已挂载分区的使用量和可用空间。确认扩展后的分区显示出预期的容量增长。
df -h
(2) 检查分区布局
lsblk 命令以树形结构展示存储设备和分区,可用于核对大小和布局。
lsblk
(3) 使用 parted 进行详细检查
sudo parted /dev/sda print free 等命令提供分区表和未分配空间的详细信息。
(4) 对 LVM 的额外检查
如果使用 LVM,使用 sudo lvs 和 sudo vgs 确认卷组和逻辑卷的大小。
5.2 操作后的注意事项
- 管理备份数据 → 若扩展成功且系统稳定,可清理临时备份;若仍有顾虑,可保留备份一段时间。
- 文件系统检查 → 为了更安全,可运行
fsck进行文件系统检查。sudo fsck /dev/sda1
(仅在卸载分区后运行。)
- 重新启动要求 在大多数情况下,不需要重新启动。然而,在某些虚拟或物理环境中,重新启动可确保操作系统完整识别新的磁盘大小。
5.3 摘要
通过遵循适当的准备步骤和正确的操作流程,Ubuntu 上的分区扩展可以顺利完成。务必提前备份数据,并仔细验证结果,以自信地应对意外问题。
分区和存储管理是系统管理和日常使用的关键任务。我们希望本文能帮助您在 Ubuntu 环境中有效管理磁盘空间。



