当前位置: 首页 > news >正文

通过调整相邻分区实现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/nvme1n1p1Primary20481842483939ntfsSoftware/media/test/Software
/dev/nvme1n1p2Primary18424852483795182914ntfsDocuments/media/test/Documents
/dev/nvme1n1p3Primary37951856643978239999ext4/
/dev/nvme1n1p4Primary39782400003984416767ext4/backup
/dev/nvme1n1p5Primary39844167684000796671linux-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/nvme1n1p1Primary20481842483939ntfsSoftware/media/test/Software
/dev/nvme1n1p2Primary18424852483795182914ntfsDocuments/media/test/Documents
/dev/nvme1n1p3Primary37951856643979845631ext4/
/dev/nvme1n1p4Primary39798456323984416767ext4/backup
/dev/nvme1n1p5Primary39844167684000796671linux-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

相关文章:

  • vue里localStorage可以直接用吗
  • Spring Boot 集成 Kafka 消息发送方案
  • idea配置gitee
  • QT 实现信号源实时采集功能支持频谱图,瀑布图显示
  • 【Linux进程】——进程的程序地址空间
  • B树与B+树在MySQL中的应用:索引
  • 华为OD机试-租车骑绿道-双指针(Java 2023 B卷 100分)
  • 【二分查找 并集查找】P6004 [USACO20JAN] Wormhole Sort S|普及+
  • vector和list的区别是什么
  • Golang 老题,生产者和消费者模型,先后关闭通道的问题
  • k8s主要控制器简述(二)DaemonSet|Job|CronJob
  • 蓝桥杯备考----》暴力枚举---金盏花
  • springboot实现文件上传到服务器上,并通过url访问
  • Spring Boot + Spring Integration整合MQTT打造双向通信客户端
  • flowable适配达梦7 (2.1)
  • 【C++】:使用ACL给你的文件夹加锁
  • 直线画法-Bresenham‘s algorithm原理和最优实现
  • SSRF 攻击与防御:从原理到落地实践
  • 什么是Ecovadis认证(埃科瓦迪斯认证)?​Ecovadis认证(埃科瓦迪斯认证)的等级划分!
  • 【Zephyr】【二】学习笔记【RTOS系统架构】
  • 济南网站的优化/信息流优化师简历模板
  • 郑州市做网站的/北京最新疫情
  • 网站搜索排优化怎么做/用广州seo推广获精准访问量
  • 怎样让自己网站的文章被百度收录/太原网站优化
  • 手机网站制作套餐/深圳百度推广属于哪家公司
  • 天河做网站哪家好/潍坊网站建设