通过调整相邻分区实现Linux根分区扩容(ext4文件系统)

通过GParted调整Linux分区大小实现根分区扩容

前言

在Linux系统使用过程中,我们可能会遇到根分区(/)空间不足的情况。本文将详细介绍如何通过GParted工具安全地调整相邻分区大小,将备份分区缩小,并将释放的空间分配给根分区,实现根分区的扩容。

环境介绍

硬件环境

  • 系统SSD:WDC PC SN530 SDBPNPZ-512G-1006
  • 数据SSD:HP SSD FX900 Pro 2TB

分区情况 (调整前)

HP SSD FX900 Pro 2TB上的分区布局如下:

分区 类型 开始扇区 结束扇区 文件系统 卷标 挂载点
/dev/nvme1n1p1 Primary 2048 1842483939 ntfs Software /media/test/Software
/dev/nvme1n1p2 Primary 1842485248 3795182914 ntfs Documents /media/test/Documents
/dev/nvme1n1p3 Primary 3795185664 3978239999 ext4 /
/dev/nvme1n1p4 Primary 3978240000 3984416767 ext4 /backup
/dev/nvme1n1p5 Primary 3984416768 4000796671 linux-swap

操作步骤

整个过程主要分为两个部分:

  1. 缩小备份分区(/dev/nvme1n1p4)
  2. 扩大根分区(/dev/nvme1n1p3)

1. 缩小备份分区并移动

首先,我们需要缩小备份分区并将其向右移动,以便为根分区腾出空间。

复制代码
操作:向右移动 /dev/nvme1n1p4 并由 2.95 GiB 缩小至 2.18 GiB

具体步骤如下:

  1. 校准分区

    • 确认分区信息
    • 起始位置:3978240000
    • 终止位置:3984416767
    • 大小:6176768 (2.95 GiB)
  2. 检查文件系统错误

    • 使用e2fsck命令检查文件系统
    • 命令:e2fsck -f -y -v -C 0 '/dev/nvme1n1p4'
    • 检查结果:文件系统正常,包含14个文件
  3. 缩小文件系统

    • 使用resize2fs命令缩小文件系统
    • 命令:resize2fs -p '/dev/nvme1n1p4' 2285568K
    • 结果:文件系统大小调整为571392个块(每块4k)
  4. 调整分区大小

    • 旧的大小:6176768 (2.95 GiB)
    • 新的大小:4571136 (2.18 GiB)
  5. 再次检查文件系统

    • 确保文件系统完整性
    • 已使用的inode:23个(0.02%,总共147168)
    • 已使用的块:48174个(8.43%,总共571392)
  6. 向右移动文件系统

    • 使用e2image命令
    • 命令:e2image -ra -p -O 822083584 '/dev/nvme1n1p4'
      ##注意此处822083584为向右偏移量字节大小,注意需要计算,不要覆盖到p5分区,
      ##单个扇区大小可通过fdisk -l 命令查看sector size数值
    • 复制了48138个块,速度约188.04 MB/s
  7. 最终调整分区位置

    • 新的起始位置:3979845632
    • 新的终止位置:3984416767
    • 新的大小:4571136 (2.18 GiB)

2. 扩大根分区

在缩小并移动备份分区后,我们可以将释放出的空间分配给根分区。

复制代码
操作:将 /dev/nvme1n1p3 由 87.29 GiB 扩大至 88.05 GiB

具体步骤如下:

  1. 校准根分区

    • 确认分区信息
    • 起始位置:3795185664
    • 终止位置:3978239999
    • 大小:183054336 (87.29 GiB)
  2. 扩大分区

    • 旧的大小:183054336 (87.29 GiB)
    • 新的大小:184659968 (88.05 GiB)
    • 增加了约0.76 GiB的空间
  3. 扩大文件系统

    • 使用resize2fs命令在线调整文件系统大小
    • 命令:resize2fs -p '/dev/nvme1n1p3'
    • 结果:文件系统大小调整为23082496个块(每块4k)
    • 注意:根分区在调整时是在线状态(已挂载)

结果分析

操作完成后,分区布局如下:

分区 类型 开始扇区 结束扇区 文件系统 卷标 挂载点
/dev/nvme1n1p1 Primary 2048 1842483939 ntfs Software /media/test/Software
/dev/nvme1n1p2 Primary 1842485248 3795182914 ntfs Documents /media/test/Documents
/dev/nvme1n1p3 Primary 3795185664 3979845631 ext4 /
/dev/nvme1n1p4 Primary 3979845632 3984416767 ext4 /backup
/dev/nvme1n1p5 Primary 3984416768 4000796671 linux-swap

通过这次操作,我们成功地:

  1. 将备份分区(/dev/nvme1n1p4)从2.95 GiB缩小到2.18 GiB
  2. 将根分区(/dev/nvme1n1p3)从87.29 GiB扩大到88.05 GiB

注意事项

  1. 备份数据:在进行任何分区操作前,务必备份重要数据,以防意外发生。
  2. 检查文件系统:操作前后检查文件系统完整性是确保数据安全的关键步骤。
  3. 在线调整:根分区的调整是在线进行的,这是ext4文件系统的一个优势。
  4. 分区对齐:GParted会自动处理分区对齐问题,确保性能最优。
  5. 空间规划:在调整分区前,要确保有足够的空间来容纳数据。

总结

通过GParted工具,我们可以安全地调整Linux分区大小,实现根分区的扩容。整个过程虽然需要一定的技术基础,但只要按照正确的步骤操作,风险是可控的。希望本文对遇到类似问题的朋友有所帮助。推荐使用Gparted图形工具进行调整,这会更方便。

参考资料

  1. GParted官方文档:https://gparted.org/documentation.php
  2. Ext4文件系统在线调整:https://ext4.wiki.kernel.org/index.php/Ext4_Howto
相关推荐
大树8815 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠16 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质16 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush416 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52016 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz16 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工17 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智17 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩18 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_18 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化