Linux使用fdisk调整分区大小实现磁盘在线扩容的实战指南

更新日期:2026-03-06 4阅读

当磁盘空间告急时,不必惊慌,掌握正确的扩容方法可以让你轻松应对一、背景概述在云平台运维和服务器管理过程中,经常会遇到磁盘空间不足的情况:共享文件服务器的硬盘空间···

当磁盘空间告急时,不必惊慌,掌握正确的扩容方法可以让你轻松应对

一、背景概述

在云平台运维和服务器管理过程中,经常会遇到磁盘空间不足的情况:

  • 共享文件服务器的硬盘空间随着业务增长逐渐耗尽

  • 系统安装初期分区规划不合理,部分分区空间过剩而关键分区不足

  • 应用程序日志、数据文件不断积累,导致存储资源紧张

本文将详细介绍如何使用 Linux 内置的 fdisk工具,在不丢失数据的前提下,对磁盘分区进行动态扩容。下面是我们将要调整的分区初始状态:

1
2
3
4
root@i-abnawjwo:/# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       20509308 1337636  18106816   7% /
/dev/sdc1       10190136   23032   9626432   1% /data

可以看到,我们的目标是扩展 /data目录对应的 /dev/sdc1分区。

二、前期准备:数据备份

重要提示:虽然本文介绍的扩容方法在正常情况下不会导致数据丢失,但在任何磁盘操作前,备份都是必不可少的保障措施。

推荐的备份方案:

  1. 云平台快照功能:大多数云服务商都提供磁盘快照功能,可在控制台对磁盘创建全量备份

  2. 本地备份工具:可使用 rsynctar等工具将关键数据备份到其他存储位置

  3. LVM 快照:如果使用 LVM 管理磁盘,可创建 LVM 快照作为回滚点

三、详细扩容步骤

3.1 卸载目标分区

首先需要卸载要扩容的分区:

1
root@i-abnawjwo:/# umount /data

如果遇到“设备忙”的错误,表示有进程正在访问该分区:

1
2
3
4
5
6
7
# 查看占用分区的进程
fuser -m -v /data
# 或
lsof /data
 
# 结束占用进程(谨慎操作)
fuser -m -v -i -k /data

3.2 使用 fdisk 重新分区

关键要点:重新分区时,必须确保起始扇区与原始分区完全一致,这是保证数据不丢失的核心要素。

进入 fdisk 交互模式:

1
root@i-abnawjwo:/# fdisk /dev/sdc
步骤分解:
  1. 删除旧分区(数据不会立即丢失,只是删除分区表记录)

1
2
Command (m for help): d
Selected partition 1
  1. 创建新分区,特别注意起始扇区必须与原来相同

1
2
3
4
5
6
7
8
9
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-104857599, default 2048): 2048  # 必须与原来一致!
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599):
# 直接回车使用默认最大值,即占用全部可用空间
  1. 验证分区表,确认起始扇区正确

1
2
3
4
5
6
Command (m for help): p
 
Disk /dev/sdc: 53.7 GB, 53687091200 bytes
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048   104857599    52427776   83  Linux
  1. 保存并退出

1
2
3
4
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

3.3 重启系统

为了确保内核重新识别新的分区表,建议重启系统:

1
reboot

3.4 检查和扩展文件系统

系统重启后,执行以下操作:

  1. 强制检查文件系统

1
2
3
4
5
6
7
8
root@i-abnawjwo:~# e2fsck -f /dev/sdb1
e2fsck 1.42.9 (4-Feb-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 12/655360 files (0.0% non-contiguous), 79664/2621440 blocks

注:这里设备名从 /dev/sdc1变为 /dev/sdb1,可能是系统设备识别变化,实际操作时以 fdisk -l输出为准。

  1. 调整文件系统大小

1
2
3
4
root@i-abnawjwo:~# resize2fs -p /dev/sdb1
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/sdb1 to 13106944 (4k) blocks.
The filesystem on /dev/sdb1 is now 13106944 blocks long.

-p参数显示操作进度,对大容量磁盘很有用。

3.5 验证扩容结果

  1. 重新挂载分区

1
root@i-abnawjwo:~# mount /dev/sdb1 /data/
  1. 检查数据完整性

1
2
root@i-abnawjwo:/data# cat hello
acasdcacsa
  1. 查看最终磁盘使用情况

1
2
3
4
root@i-abnawjwo:/data# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       20509308 1337768  18106684   7% /
/dev/sdb1       51474044   33100  48803172   1% /data

成功!/dev/sdb1分区已从原来的约 10.2 GB 扩容到约 51.5 GB,且数据完好无损。


以上就是VPS主机测评网和您分享的“Linux使用fdisk调整分区大小实现磁盘在线扩容的实战指南”,希望对大家有所帮助,如果大家还有什么问题的话,欢迎在下面评论留言,VPS测评网知无不言!

本文标题:Linux使用fdisk调整分区大小实现磁盘在线扩容的实战指南

文章版权声明:

本站所有文章皆是来自互联网,转载请以超链接形式注明出处

发表评论

评论列表
未查询到任何数据!