1. 背景和目标

现有一个Ubuntu系统的虚拟机,虚拟磁盘文件格式为.vdi,固定分配的大小为20G,空间即将用尽,需要扩容到40G

在这里插入图片描述

2. 原理

新建一个比原来固定磁盘容量大的固定大小的硬盘,使用linux下的dd命令将原虚拟硬盘的内容全部复制到新硬盘中,然后移除(删除)原硬盘,即可实现虚拟硬盘的扩容。

3. 准备

  • Ubuntu系统的镜像 (.iso)

4. 开始扩容

4.1 备份

主机空间充足的情况下,最好备份原vdi文件,防止后续操作出错导致数据丢失。

4.2 挂载Ubuntu系统镜像(.iso)

在这里插入图片描述

4.3 添加新的虚拟硬盘

添加一块新的固定大小的虚拟硬盘,我这里需要将原虚拟硬盘扩容为40G,因此这里创建一块40G大小的虚拟硬盘。

在这里插入图片描述

  • 虚拟硬盘文件类型:vdi
  • 大小分配类型:固定大小
  • 文件位置和大小:40.00 GB

点击创建,耐心等待创建完成。

在这里插入图片描述

创建完成后,选择新创建的硬盘。

在这里插入图片描述

在这里插入图片描述

4.4 启动虚拟机

  • 桌面版的Ubuntu:可以选择 Try Ubuntu,进入试用的桌面后,打开shell。
  • 服务器版的Ubuntu:如下,在语言选择页面,从Help那里进入shell。

在这里插入图片描述

输入命令 fdisk -l 查看系统的磁盘信息。

在这里插入图片描述

使用dd命令复制硬盘内容。

dd if=/dev/sda of=/dev/sdb

耐心等待该命令执行完成…

4.5 关闭虚拟机

shutdown -h now

4.6 移除原硬盘 (20G)

在这里插入图片描述

在这里插入图片描述

4.7 启动虚拟机

启动虚拟机后切换到root用户。

4.8 修复分区表

执行命令 fdisk -l 命令时出现如下错误。

GPT PMBR size mismatch will be corrected by write

解决方案:执行如下命令,提示输入 Fix

parted -l

在这里插入图片描述

4.9 使用parted追加容量到/dev/sda3

parted /dev/sda

(parted) unit s         # 设置size单位,方便追加输入
(parted) p free         # 查看分区详情
(parted) resizepart 3   # 调整/dev/sda3的容量
End? [41940991s]? 83886064s   # 扩充至剩余的所有容量

在这里插入图片描述

4.10 更新物理卷

# 更新pv物理卷
pvresize /dev/sda3

# 查看状态
pvdisplay

在这里插入图片描述

4.11 LVM逻辑卷扩容

lvdisplay

# 逻辑卷扩容
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

# 刷新逻辑卷
resize2fs /dev/ubuntu-vg/ubuntu-lv

df -h

在这里插入图片描述

5. 拓展 (逻辑卷、物理卷)

引自:https://www.cnblogs.com/lijiaman/p/12885649.html

逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先需要了解逻辑卷管理中的一些概念。

  • 物理卷(Physical Volume,PV):也就是物理磁盘分区,如果想要使用LVM来管理这个分区,可以使用fdisk将其ID改为LVM可以识别的值,即8e。
  • 卷组(Volume Group,VG):PV的集合
  • 逻辑卷(Logic Volume,LV):VG中画出来的一块逻辑磁盘。

了解概念之后,逻辑卷是如何产生的就很清晰了:物理磁盘或者磁盘分区转换为物理卷,一个或多个物理卷聚集形成一个或多个卷组,而逻辑卷就是从某个卷组里面抽象出来的一块磁盘空间。具体架构如下:

在这里插入图片描述

END

Thanks for Reading!

转载自作者个人网站:https://blog.icrystal.top/archives/9.html

作者:iCrystal
邮箱:leopard.c@outlook.com
博客:https://blog.icrystal.top
GitHub: https://github.com/Leopard-C

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐