日度归档:2025年7月6日

Linux系统环境中,动态扩容文件系统分区

前缀、文档修改记录

20250706 初始化编辑此文章,完稿

章节1、需求描述

日常在用云主机的过程,常见的是将一个云硬盘的容量使用满了,可以从云厂家侧购买扩容的云硬盘容量,比如原先操作系统的数据盘是500G,可以扩容为1000G。本篇介绍,在云厂家扩容好硬盘后,我们如何在操作系统内部应用购买的磁盘容量到数据盘分区/dev/vdb1。

章节2、模拟环境描述

操作系统: Debian 12

操作命令: parted 等

磁盘: /dev/sdb 5GB , 扩容为 /dev/sdb 10GB, 容量全部在/dev/sdb1分区,文件系统ext4

章节3、操作步骤

3.1、安装常用工具

root@Server:~# apt install parted lvm2

3.2、查看需要调整容量的磁盘的当前状态

root@Server:~# df -h       // 查看该硬盘目前的磁盘使用率
...
/dev/sdb1                    4.9G   24K  4.6G   1% /data
...
root@Server:~# parted /dev/sdb print      // 查看该硬盘目前的分区情况,记录当前分区起始位置,结束位置信息。
Partition Table: gpt
...
Number  Start   End     Size    File system  Name  Flags
 1      1049kB  5368MB  5367MB  ext4         DATA
...

3.3、启动 parted 工具进行/dev/sdb1的动态扩容

在确保云主机厂家页面上,扩容好磁盘容量后,进行主机或者对应硬盘的快照,或者有数据备份后,再执行本操作,数据无价。

为了演示,我给原先/dev/sdb 5GB扩容到了 /dev/sdb 10GB大小。

root@Server:~# parted /dev/sdb
GNU Parted 3.5
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) rm 1    // 删除分区表项不会清除文件系统或数据,只是移除指针。
(parted) mkpart primary ext4 1049kB 100%    // 创建新的分区,起始位置与旧分区相同,结束位置设为磁盘末尾,GPT分区系统,基本都可以是主primary分区
(parted) quit  

3.4、刷新分区表

root@Server:~# partprobe /dev/sdb
root@Server:~# 

3.5、扩展文件系统

root@Server:~# resize2fs /dev/sdb1
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/sdb1 is mounted on /data; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/sdb1 is now 2620928 (4k) blocks long.

root@Server:~# 

可以看到 /dev/sdb1 9.8GB … /data ,已经成功扩容磁盘的剩余容量到当前的分区上了,且/data下的原有文件是不受影响的。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨