美文网首页
使用Guestfish给虚拟磁盘扩容

使用Guestfish给虚拟磁盘扩容

作者: Alecyrus | 来源:发表于2016-04-20 12:11 被阅读445次
问题背景:

使用openstack dashboard 创建虚拟机时,有时创建虚拟机会出现如下错误

Error: Flavor's disk is too small for requested image

这种情况是由于flavor的配置不够导致的,将flavor的配置弄好后,再次创建,出现以下错误: No Space Left To Write, 这是因为我只有一个compute1节点,而且磁盘只有10G,但我创建的分配给实例的是20G。

  • 我们知道openstack的实例时创建在compute节点/var/lib/nova/instances/里的,再挂载一块磁盘到这个目录显然不是一个很好的解决方式,最好是直接给compute节点的硬盘扩容,本文采用Guestfish给虚拟磁盘扩容。

1.安装Guestfish

$ sudo apt-get install libguestfs-tools

2.查看虚拟硬盘分区表

$ sudo virt-filesystems --long --parts --blkdevs -h -a VM.img

Name       Type       MBR  Size   Parent
/dev/sda1  partition  83   9.7G   /dev/sda
/dev/sda2  partition  05   1.0K   /dev/sda
/dev/sda5  partition  82   1022M  /dev/sda
/dev/sda   device     -    11G    -   

那么,/dev/sda1 就是我们要扩容的分区

3.创建一个更大的磁盘文件

磁盘文件格式与之前的虚拟磁盘格式保持一致

$ qemu-img create -f qcow2 new_disk.qcow2 50G

Formatting 'new_disk.qcow2', fmt=qcow2 size=53687091200 encryption=off 
cluster_size=65536 lazy_refcounts=off

4.使用guestfish中的virt-*命令进行扩容

$ virt-resize --expand /dev/sda1 VM.img new_disk.qcow2

Examining VM.img ...
**********
Summary of changes:
/dev/sda1: This partition will be resized from 9.7G to 49.0G.  The 
filesystem ext4 on /dev/sda1 will be expanded using the 'resize2fs' 
method.
/dev/sda2: This partition will be left alone.
**********  
Setting up initial partition table on com.qcow2 ...
Copying /dev/sda1 ...
...
$<2> 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
Copying /dev/sda2 ...
...
$<2> 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
Expanding /dev/sda1 using the 'resize2fs' method ...
Resize operation completed with no errors.  Before deleting the old disk,
carefully check that the resized disk boots and works correctly.

5.查看分区表

$ sudo virt-filesystems --long --parts --blkdevs -h -a new_disk.qcow2

Name       Type       MBR  Size   Parent
/dev/sda1  partition  83   49G    /dev/sda
/dev/sda2  partition  05   1.0K   /dev/sda
/dev/sda5  partition  82   1022M  /dev/sda
/dev/sda   device     -    50G    -

$ virt-filesystems --long --parts --blkdevs -h -a VM.img

Name       Type       MBR  Size   Parent
/dev/sda1  partition  83   9.7G   /dev/sda
/dev/sda2  partition  05   1.0K   /dev/sda
/dev/sda5  partition  82   1022M  /dev/sda
/dev/sda   device     -    11G    -

此时,源磁盘VM.img里面的文件系统已经完整的被拷贝到new_disk.qcow2

5.删除源磁盘,并将new_disk.qcow2 改名为 VM.img

$ sudo rm VM.img
$ sudo mv new_disk.qcow2 VM.img

DONE!

相关文章

  • 使用Guestfish给虚拟磁盘扩容

    问题背景: 使用openstack dashboard 创建虚拟机时,有时创建虚拟机会出现如下错误 Error: ...

  • 《Linux实践技能》学习笔记 day11

    Linux 虚拟机 virtualbox 磁盘扩容 首先在虚拟机中模拟磁盘挂载,先关机,扩容磁盘大小image.p...

  • vmware esxi lvm扩容磁盘

    当前使用vmware esxi7,部署centos7.9虚拟机 首先使用vmware 扩容磁盘,例如扩容硬盘1,直...

  • Ubuntu 扩大虚拟机系统磁盘空间

    VMWare 11 版本给虚拟机默认分配20G磁盘,扩展至30G。下面是扩展方法: 虚拟机磁盘扩容 虚拟机保持关闭...

  • 虚拟磁盘扩容

    修改虚拟磁盘大小 未分区的情况 未分区且使用卷的情况

  • Learning KVM - part6 挂载并扩容磁盘

    这一章节我们将来探讨下如何热添加虚拟磁盘,热扩容虚拟磁盘。热添加、热扩容意味着您可以这些操作可以在虚拟机保持运行的...

  • vmware下 linux如何扩展根目录

    安装了owncloud后,发现当初分配的磁盘空间过小,于是给根目录扩容。 一、Vm虚拟机下Linux扩展原有磁盘空...

  • Centos 7 虚拟机磁盘扩容

    vmware下创建的Centos 7 虚拟机磁盘扩容。 确保要扩容的虚拟机处于关机状态。然后右键选择虚拟机,点击设...

  • Linux 挂载与扩容

    基于虚拟机Vmware 给想扩容或挂载分区的机器分配磁盘空间 进行分区 fdisk -l :查看可分配磁盘空间 f...

  • vmware 虚拟机磁盘扩容

    扩容 关闭虚拟机 设置 -> 硬盘 -> 扩展,输入扩展后的磁盘大小 使用 fdisk 工具p 显示分区信息d 删...

网友评论

      本文标题:使用Guestfish给虚拟磁盘扩容

      本文链接:https://www.haomeiwen.com/subject/nkdzlttx.html