之前linux上建了virtualbox虚拟机,安装了ubuntu server用来做服务器用,当时只分配了40g的动态虚拟磁盘,随着里面的东西越来越多,直到磁盘占用达到100%,连个文件夹都创建不了了,所以必须要扩容。
备份越来的虚拟机磁盘
打开virtualbox界面,在原来的虚拟机上右击设置->存储->控制器-SATA,点击vdi文件,在右侧可以看到磁盘的虚拟分配空间,实际分配空间,以及动态分配存储还是固定分配存储还有磁盘存储的位置等信息。
复制这里的vdi磁盘位置路径,在系统里打开那个文件夹,把vdi复制一份
比如:
cp ubuntu-server-22.04.1_1.vdi ubuntu-server-22.04.1_1.vdi_backup
利用命令给动态分配的vdi磁盘扩容
扩容命令语法为:
vboxmanage modifyhd /location-of-your-virtual-disk --resize size-in-MB
所以把原来的虚拟机停机,在vdi所在文件夹打开终端执行:
vboxmanage modifyhd ubuntu-server-22.04.1.vdi --resize 51200
我这里是resize到了50g
下载gparted软件镜像
下载软件地址:https://sourceforge.net/projects/gparted/
截止发文是gparted-live-1.5.0-1-amd64.iso这个版本
下载之后(国外的镜像比较慢),把iso勾选到虚拟机右击设置->存储->控制器-IDE里
利用gparted软件给虚拟机扩容
iso放到控制器-IDE后,启动虚拟机,一切都选默认,一路enter,此时虚拟机就会进入gparted软件页面
可以看到原来的/dev/sda3是38g,已经用了19g,和在虚拟机页面上看到的vdi详情一样,未分配的10g就是后来加的那10g
选中/dev/sda3 右击resize/move 调整大小拖动横条到最大,然后点击应用保存。
退出程序,重启虚拟机
ubuntu server虚拟机识别扩容空间
虚拟机重启后进入ubuntu server 执行df -h 发现磁盘还是只能识别19g
执行vgs
命令可以看到VFree列已经有我们扩容的空间了,只是没有添加到根分区
执行 lvextend -L 命令把磁盘扩容
lvextend -L +28G /dev/mapper/ubuntu--vg-ubuntu--lv
这个28G就是VFree上显示的空间大小 要是小于这个大小就填小于这个大小的数字
执行df -h 发现还是原来的19G 这是因为系统没有重新读取大小
可以用xfs_growfs 或 resize2fs 命令重新读取大小
xfs_growfs /dev/mapper/ubuntu--vg-ubuntu--lv
或
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
注意:
resize2fs 命令 针对的是ext2、ext3、ext4文件系统
xfs_growfs 命令 针对的是xfs文件系统
我这里用resize2fs比较合适
再执行df -h 发现磁盘已被成功扩容
zhaohy@zhaohy-server:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 393M 1.7M 391M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 48G 18G 28G 40% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 251M 1.6G 14% /boot
192.168.0.121:/mnt/D1/nfs-root 302G 9.8G 293G 4% /home/zhaohy/nfs-share
tmpfs 393M 4.0K 393M 1% /run/user/1000
参考:https://www.jianshu.com/p/75645933f403
https://blog.csdn.net/wsyzxss/article/details/119534388
https://www.bbsmax.com/A/kmzLMAAXJG/