Linux磁盘扩容

环境: Debian 11
虚拟硬盘: 原MBR格式1T容量, 最新重新又多分配了1T空间

目标:
把重新分配的磁盘空间分配到对应的分区和根目录中.

基础知识

  1. MBR最多只支持2T的空间,超过2T则需要使用GPT分区. 其MBR可以无损转为GPT分区格式.
  2. 扩容时, 无法跨分区进行扩容. 空间磁盘空间只能分配在相邻的磁盘分区上.
  3. 虚拟机物理内存足够的时候,日常占用比较少的时候, 默认的swap空间可以删除
  4. 磁盘分区的工具有很多, 选择自己喜欢使用的就可以

磁盘分区工具及命令

层级

类型

命令

说明

0

硬盘/分区

lsblk

查看硬盘与分区信息

1

分区操作

fdisk

用来创建MBR分区(也可以创建GPT分区,但是支持的并不是特别完美)

1

分区操作

gdisk

用来创建GPT分区(如果要创建GPT分区,就来使用这个命令吧)

1

分区操作

cfdisk

图形化操作,较fdisk更直观简单的分区工具

1

分区操作

cgdisk

图形化操作,较gdisk更直观简单的分区工具

1

分区操作

parted

高级分区操作(注意操作,很多命令一键完成,没有提示,所以也就不存在后悔的余地,功能强大)

1

分区操作

growpart

可以非常方便的把磁盘空间进行扩容的工具, 需要下载

2

分区表操作

partprobe

当分区表进行修改调整之后, 需要重新读取分区表

3

文件系统

resize2fs

在调整的磁盘空间之后, 重新对文件系统进行分配.

实际操作

1. 转化GPT分区

此处: /dev/vda是需要操作的硬盘, /dev/vda1是需要扩容的分区

# gdisk 后跟主硬盘设备路径,不是分区路径
gdisk /dev/vda
w
y

2. 删除swap与其他分区

此处: 为了让空闲空间和扩容分区之间直接连接

# 清除swap分区配置信息, 关闭swap服务
## 查看磁盘加载情况
parted -l /dev/vda
tail -n 3 /etc/fstab
## 打开文件系统表, 将swap信息删除
vi /etc/fstab
tail -n 3 /etc/fstab
## 关闭swap
swapoff -a

# 删除其他分区
## 进入分区操作界面
parted /dev/vda
## (操作)打印分区信息
p
## (操作)删除对应分区
rm 2
## (操作)再次打印分区信息
p
## (操作)退出
quit

3. 扩容工具groupart安装及使用

# 安装
apt update;apt install -y cloud-utils cloud-initramfs-growroot
# 扩容
growpart /dev/vda 1
# 查看扩容后的磁盘空间
lsblk

磁盘空间扩容后, 文件系统需要对应扩容

4. 文件系统

# 查看
df -h
# 调整
resize2fs /dev/vda1