zoukankan      html  css  js  c++  java
  • How to shrink disk for KVM

    如何expand虚拟机磁盘分区相对于shrink比较简单:

    1.  创建一个要扩展size大小的目标img文件

    2.  选择要扩展的分区

    3.  virt-resize --expand /dev/sda1 source.img target.img

    要保证target比source的文件大。

    shrink稍微复杂一些,因为考虑到内部文件系统的使用量,如果过度缩小会破坏文件系统。

    首先要查看确定文件系统的使用量,和将要缩小的size

    1.  virt-df source.img

    使用guestfish 读取source.img (不要加-i 自动挂载,对文件系统做操作,不要保持这个设备在使用)

    2.  guestfish -a source.img

    输入run,正式加载磁盘文件

    3.  run

    下面和bash下的操作类似,扫描分区

    4.  e2fsck-f /dev/vda1

    调整分区大小,一定要保证调整后的大小要比内部文件系统的使用量大,否则会出错。

    5.  resize2fs-size /dev/vda1 5G

    调整完成,退出

    6.  exit

    创建shrink的目标文件,因为缩小了分区,但是磁盘的大小还是原先的,占用量并没有变化。

    7.  qemu-img create -f raw target.img 5G

    使用guestfish的工具virt-resize 缩减磁盘文件的大小,原理相当于同时挂载两个镜像,然后将一个磁盘文件的全部内容和修改的部分拷贝到另一个磁盘中。(不过此方法不适用与直接缩减分区,如果有进展会将新的进度更新)

    8.  virt-resize --shrink /dev/sda1 source.img target.img

    查看新的磁盘文件的状态。

    9.  qemu-img info target.img

    查看调整后的磁盘内部文件系统的使用量。

    10.  virt-df target.img

  • 相关阅读:
    @RequestParam,@PathParam,@PathVariable,@QueryParam注解的使用区别
    关于android studio 出现Error:Execution failed for task ':app:preDebugAndroidTestBuild'. 的解决办法
    opencv:轮廓匹配
    opencv:图像轮廓计算
    opencv:图像轮廓发现
    opencv:联通组件扫描
    opencv:自适应阈值
    opencv:全局阈值
    opencv:二值图像的概念
    opencv:边缘提取
  • 原文地址:https://www.cnblogs.com/fengrenzw/p/3339915.html
Copyright © 2011-2022 走看看