zoukankan      html  css  js  c++  java
  • Mount qcow2 image

    1.Mount a qcow2 image

    qemu-nbd - QEMU Disk Network Block Device Server: Export QEMU disk image using NBD protocol

    qemu-nbd -c /dev/nbd0 imageName

    执行后,会出现/dev/nbd0p1、/dev/nbd0p2、/dev/nbd0p3,分别对应vm中的不同分区

    vm_156e3:/dsx01/instances/instance-00000064 # l /dev/nbd*
    brw-rw---- 1 root disk 43,   0 Oct 15 15:57 /dev/nbd0
    brw-rw---- 1 root disk 43,   1 Oct 15 15:57 /dev/nbd0p1
    brw-rw---- 1 root disk 43,   2 Oct 15 15:57 /dev/nbd0p2
    brw-rw---- 1 root disk 43,   3 Oct 15 15:57 /dev/nbd0p3


    可以直接mount虚拟机的某个分区: mount /dev/nbd0p1 /mnt,可以自行修改。
    修改结束后,先umount /mnt,然后执行qemu-nbd -d /dev/nbd0

    此时/dev/nbd0p1、/dev/nbd0p2、/dev/nbd0p3会消失。

    注意: 如果image中带有LVM,在qemu-nbd之后必须执行vgscan和vgchange -ay命令,

    让LVM的分区暴露成可以mount的设备,umount之后,先vgchange -an,然后再qemu-nbd -d

    2.Mount a raw image

    kpartx命令的作用:读device中的分区表,将扫描出的分区映射到device上。

    losetup -f 找一个空闲的设备
    losetup /dev/loop2 cirros-0.3.4-x86_64-disk.raw    --关联image

    查看一下/dev/loop0中是否有分区

     vm_156e3:~/xiexianbin_cn # kpartx -av /dev/loop0
     add map loop0p1 (253:7): 0 64260 linear /dev/loop0 16065


    如果其中有分区的话,那么会有新设备: /dev/mapper/loop0p1
    可以mount该分区:
    mount /dev/mapper/loop0p1 /mnt
    mount后就可以进行操作

    如果image中使用了LVM,则需要执行vgscan和vgchange -ay
    结束先umount /mnt,然后kpartx -d /dev/loop0,然后losetup -d /dev/loop0

    本文作者:fcing
    本文出处:https://www.cnblogs.com/fcing
    版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议。转载请注明出处!
  • 相关阅读:
    Java中Vector和ArrayList的区别
    多线程
    集合框架
    5种运行时异常+1道面试题
    事务,视图,索引,备份和恢复
    MYSQL常用函数
    SQL数据库表字段明细导入导出
    SqlServer 命令方式备份与还原
    .NetCore IIS发布后PUT、DELETE请求错误405.0
    大数据中HBase的Java接口封装
  • 原文地址:https://www.cnblogs.com/fcing/p/9363045.html
Copyright © 2011-2022 走看看