AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 773421
Accepted
Duncan Fairley
Duncan Fairley
Asked: 2016-04-28 13:54:03 +0800 CST2016-04-28 13:54:03 +0800 CST 2016-04-28 13:54:03 +0800 CST

QCOW2 虚拟大小降低

  • 772

我正在尝试qcow2降低容器的虚拟大小,以便它可以适应具有 10GB 磁盘的 openstack 风格。

root@node-10:~# qemu-img info zztop.qcow 
image: zztop.qcow
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 2.6G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false

我按照这里的指南,用零填充磁盘的末尾,然后运行qemu-img convert -O qcow2。然而,生成的 qcow2 保留了相同的磁盘大小和虚拟大小。

如何降低 qcow2 的虚拟大小,使其适合小于 80GB 的 openstack 风格?

kvm-virtualization openstack qemu qcow2
  • 5 5 个回答
  • 14828 Views

5 个回答

  • Voted
  1. Best Answer
    dyasny
    2016-04-28T17:18:42+08:002016-04-28T17:18:42+08:00

    如果要缩小虚拟大小,则需要使用virt-resize

    • 2
  2. user370956
    2016-08-18T03:21:29+08:002016-08-18T03:21:29+08:00
    1. 您需要将 qcow2 图像转换为原始图像
      qemu-img convert -O raw guest.img guest.raw
    2. 然后调整原始文件的大小
      qemu-img resize guest.raw 3G
    3. 然后将其转换回 qcow2
      qemu-img convert -O qcow2 -o compat=0.10 guest.raw guest.img
    4. 然后运行来宾并调整文件系统的大小
    • 2
  3. user503607
    2019-01-05T03:19:48+08:002019-01-05T03:19:48+08:00

    @user370956 的改进答案

    我能够成功地将图像的实际尺寸从 5.9G 缩小到 3.5G 和 v. 尺寸。

    1. 备份您的图像 cp guest.img quest.backup
    2. 您需要将 qcow2 图像转换为原始图像
      qemu-img convert -O raw guest.img guest.raw
    3. 启动一些 live iso mount as-cdrom和你的guest.rawmount as-drive qemu-system-x86_64 -machine type=pc,accel=kvm -boot order=d -drive file=guest.raw,format=raw -cdrom ~/Downloads/debian-live-9.6.0-amd64-lxde.iso -m 2G
    4. 使用 gparted(gui 工具)从客户机内部缩小分区。保留一些可用空间,以便系统仍然可以启动(100 MB 就足够了)。保留未分配的剩余空间。检查文件系统。 fsck -a
    5. 然后调整原始文件的大小
      qemu-img resize guest.raw 3G
    6. 然后将其转换回 qcow2
      qemu-img convert -O qcow2 guest.raw guest.img
    7. 此时您可以调整 qcow2 虚拟映像的大小以增加一些空间,这不会影响映像文件的大小。这可能需要确保 VM 的稳定性。 qemu-img resize guest.img +1G
    8. 如果您执行了步骤 6,请重复步骤 2,3 为来宾根分区分配更多空间。
    • 1
  4. Datis
    2018-12-02T03:25:01+08:002018-12-02T03:25:01+08:00

    仅从主机端进行操作可能会使您的客户文件系统损坏。

    因此,要完成这个答案,在主机进行任何更改之前,您需要使用分区工具(例如gparted从 VM 内部)更改 VM 的存储分区大小。从而使虚拟磁盘的总大小变得小于虚拟存储所需的大小。之后,您可以执行前 3 个步骤。

    • 0
  5. Greg King
    2019-01-16T22:26:04+08:002019-01-16T22:26:04+08:00

    1 - 如果 fstab 中有交换文件,则禁用交换文件

    2 - 将 gparted 挂载到您的 VM cd-rom

    3 - 启动 VM,引导 gparted 并将分区大小调整为更小的大小

    4 - 删除交换分区并重新创建,或确保所有分区在磁盘开头彼此相邻对齐。在缩小分区后,我遇到了交换位于磁盘末尾的问题,所以这是修复。

    5 - 关闭虚拟机

    6 - 找到 qcow2 文件并在同一目录中,运行 'qemu-img create -f qcow2 -o preallocation=metadata new-disk.qcow2 80G'(其中 80G 是新磁盘大小)

    7 - 使用 virt-resize - 'virt-resize old-disk.qcow2 new-disk.qcow2'

    8 - copt new-disk 以更正 VM 的文件名,启动 VM 并重新启用交换,即:'swapon /dev/sda5'

    9 - 编辑 fstab 以添加交换,即:'/dev/sda5 swap swap defaults 0 0'

    完毕。

    • 0

相关问题

  • Xen 与 KVM 的性能对比

  • 什么是bridge_fd?

  • 如何在 kvm-linux 中登录除 ssh、vnc 之外的控制台

  • Linux 内核虚拟机

  • Vista 上的 VNC

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve