使用 guestmount、qemu-nbd、qemu-kvm、 virt-edit命令操作 qcow2 文件

一个更简单的修改镜像中文件的办法:virt-edit -a /images/amzn2-121.123.img /etc/fstab

将qcow2镜像内的磁盘分区挂载到本地目录

参考: 使用guestmount更改qcow2镜像内容

  • 安装
    yum install libguestfs libguestfs-tools -y

  • 使用
    guestmount -a <qcow2镜像文件> -m <镜像内的磁盘分区> <宿主机上的挂载目录>

  • 查看镜像内的磁盘分区
    virt-filesystems -a centos7.qcow2

将qcow2镜像映射为本地块设备

  • 安装
    下载源码:https://sourceforge.net/projects/nbd/files/nbd/3.12.1/
    解压:tar axvf nbd-3.12.1.tar.xz
    编译安装:

    cd nbd-3.12.1
    ./configure
    sudo make -j8
    sudo make install
    sudo modprobe nbd
    lsmod | grep nbd
    
  • 使用
    sudo qemu-nbd -c /dev/nbd0 /path/of/qcow2

  • 查看

    $ lsblk | grep ndb
    nbd0         43:0    0    25G  0 disk 
    └─nbd0p1     43:1    0    25G  0 part
    
  • 取消映射
    qemu-nbd --disconnect /dev/nbd0

直接从qcow2文件启动虚拟机

  • 确定qemu使用的命令

    $ sudo grep qemu /var/log/libvirt/qemu/* | grep usr | head -1
    /var/log/libvirt/qemu/xxx.log:/usr/libexec/qemu-kvm \
    # 命令是:/usr/libexec/qemu-kvm
    
    dewan Work ~/qcow2% sudo grep qemu /var/log/libvirt/qemu/* | grep usr | head -1
    /var/log/libvirt/qemu/xxx.log:/usr/bin/qemu-system-x86_64 \
    # 命令是:/usr/bin/qemu-system-x86_64
    
  • 使用

    qemu-system-x86_64 -hda amazon-kvm.img -m 2G
    qemu-system-x86_64 -hda amazon-kvm.img -m 2G -vnc :10
    
posted @ 2022-08-19 10:32  武平宁  阅读(755)  评论(0)    收藏  举报