kvm挂载磁盘的方法和工具很多,具体如下:

[root@KVM ~]          # qemu-img convert -f raw -O qcow2 yz3_add.qcow2 yz3_add.img




具体的可以参考上节内容。

 (2)通过编译安装qemu-nbd工具挂载qcow2格式的磁盘。 qemu-nbd工具默认没有安装,需要编译进行安装。

 (3)通过创建kvm环境创建kvm虚拟机配置文件挂载虚拟机磁盘启动虚拟机。该内容课参考六的内容(KVM虚拟化笔记(六)------kvm虚拟机的克隆

 (4)通过libguestfs-tools工具进行测试。


本文主要测试的是libguest-tools工具进行测试,步骤如下:

1,首先确认libguestfs-tools工具是否安装,没有的话可进行yum安装。

[root@KVM  ~]          #install libguestfs-tools         
          [root@KVM ~]          # rpm -qa|grep libguestfs-tools         
          libguestfs-tools-1.20.11-14.el6.x86_64         
          libguestfs-tools-c-1.20.11-14.el6.x86_64         
          [root@KVM ~]          # vir         
          virsh                  virt-image             virt-resize         
          virt-alignment-scan    virt-inspector         virt-sparsify         
          virt-          cat                         virt-inspector2        virt-sysprep         
          virt-clone             virt-          install                     virt-          tar         
          virt-convert           virt-list-filesystems  virt-          tar          -          in         
          virt-copy-          in                     virt-list-partitions   virt-          tar          -out         
          virt-copy-out          virt-          ls                          virt-          top         
          virt-          df                          virt-          make          -fs           virt-v2v         
          virt-edit              virt-manager           virt-viewer         
          virt-filesystems       virt-p2v-server        virt-win-reg         
          virt-          format                      virt-pki-validate      virt-xml-validate         
          virt-host-validate     virt-rescue



命令格式:-d采用域名的方式,-a是直接获取磁盘文件方式

virt-          df            [--options] -d domname         
          virt-          df           [--options] -a disk.img [-a disk.img ...]




2,virt-cat命令,可直接查看虚拟机的文件,类似于cat,(开关机都可以)

[root@KVM ~]          # virt-cat -d hadoop1 /etc/passwd         
          root:x:0:0:root:          /root          :          /bin/bash         
          bin:x:1:1:bin:          /bin          :          /sbin/nologin         
          daemon:x:2:2:daemon:          /sbin          :          /sbin/nologin         
          adm:x:3:4:adm:          /var/adm          :          /sbin/nologin         
          lp:x:4:7:lp:          /var/spool/lpd          :          /sbin/nologin         
          sync          :x:5:0:          sync          :          /sbin          :          /bin/sync         
          shutdown          :x:6:0:          shutdown          :          /sbin          :          /sbin/shutdown         
          halt:x:7:0:halt:          /sbin          :          /sbin/halt         
          mail:x:8:12:mail:          /var/spool/mail          :          /sbin/nologin         
          uucp:x:10:14:uucp:          /var/spool/uucp          :          /sbin/nologin         
          operator:x:11:0:operator:          /root          :          /sbin/nologin         
          games:x:12:100:games:          /usr/games          :          /sbin/nologin         
          gopher:x:13:30:gopher:          /var/gopher          :          /sbin/nologin         
          ftp          :x:14:50:FTP User:          /var/ftp          :          /sbin/nologin         
          nobody:x:99:99:Nobody:/:          /sbin/nologin         
          vcsa:x:69:69:virtual console memory owner:          /dev          :          /sbin/nologin         
          saslauth:x:499:76:          "Saslauthd user"          :          /var/empty/saslauth          :          /sbin/nologin         
          postfix:x:89:89::          /var/spool/postfix          :          /sbin/nologin         
          sshd:x:74:74:Privilege-separated SSH:          /var/empty/sshd          :          /sbin/nologin         
          [root@KVM ~]          #



3,virt-edit命令,可直接编辑虚拟机里面的文件,类似于vi编辑器(注意:该虚拟机必须处于关机状态)


kvm qcow2 扩容 kvm导入qcow2_大数据

[root@KVM ~]          # virt-edit -d hadoop3 /etc/sysconfig/selinux          
          # This file controls the state of SELinux on the system.         
          # SELINUX= can take one of these three values:         
          #     enforcing - SELinux security policy is enforced.         
          #     permissive - SELinux prints warnings instead of enforcing.         
          #     disabled - No SELinux policy is loaded.         
          SELINUX=disabled         
          # SELINUXTYPE= can take one of these two values:         
          #     targeted - Targeted processes are protected,         
          #     mls - Multi Level Security protection.         
          SELINUXTYPE=targeted




4,virt-df命令,可直接查看虚拟机里边的磁盘使用情况,类似于df -h命令,(开关机都可以)。

[root@KVM ~]          # virt-df -h hadoop1         
          Filesystem                                Size       Used  Available  Use%         
          hadoop1:          /dev/sda1                                   484M        32M       427M    7%         
          hadoop1:          /dev/VolGroup/lv_root                        18G       733M        17G    4%         
          [root@KVM ~]          # virt-df -h hadoop4         
          Filesystem                                Size       Used  Available  Use%         
          hadoop4:          /dev/sda1                                   484M        32M       427M    7%         
          hadoop4:          /dev/VolGroup/lv_root                        12G       731M        11G    6%         
          [root@KVM ~]          # virsh list --all         
                    Id    Name                           State         
          ----------------------------------------------------         
                    1     win7                           running         
                    17    hadoop1                        running         
                    18    hadoop4                        running         
                    20    hadoop2                        running         
                    -     hadoop3                        shut off



kvm qcow2 扩容 kvm导入qcow2_hadoop_02


5,virt-filesystems命令,也是查看磁盘的使用情况,和virt-df命令类似(开关机都可以)

kvm qcow2 扩容 kvm导入qcow2_开关机_03

6,virt-copy-out命令,直接复制虚拟机里面的磁盘文件到本地磁盘上,类似于cp命令,分为两种情况如下:

 (1)拷贝虚拟机hadoop1中的磁盘文件到本地目录/tmp/install下(拷贝文件)

[root@KVM ~]          # virt-copy-out -d hadoop1 /etc/passwd /tmp/install



 (2)拷贝虚拟机hadoop1中的目录/etc/init.d/到本地/tmp/install/下(拷贝目录)


[root@KVM ~]          # virt-copy-out -d hadoop1 /etc/init.d/ /tmp/install



结果如下图:

kvm qcow2 扩容 kvm导入qcow2_开关机_04

7,查看虚拟机所有的磁盘文件。

[root@KVM ~]          # virsh domblklist hadoop1         
          Target     Source         
          ------------------------------------------------         
          vda                  /images/test/hadoop1          .qcow2         
          vdb                  /images/test/hadoop1_add01          .qcow2         
          hdc        -



kvm qcow2 扩容 kvm导入qcow2_kvm qcow2 扩容_05

8,直接读取磁盘文件中的内容

[root@KVM ~]          # virt-copy-out -a /images/test/hadoop2.img -a /images/test/hadoop1_add01.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0 /root/



kvm qcow2 扩容 kvm导入qcow2_开关机_06

9,virt-copy-in命令,直接虚拟化平台上本地磁盘到虚拟机磁盘上,类似于cp (虚拟机必须处于关机状态,开机验证)

[root@KVM           install          ]          # virt-copy-in -d hadoop1 /tmp/install/nginx.tar.gz /tmp/         
          [root@KVM           install          ]          # virsh start hadoop1         
          Domain hadoop1 started



kvm qcow2 扩容 kvm导入qcow2_开关机_07


如果出现报错:“错误:root@ubuntu:/usr/bin# virt-copy-in -d yz /tmp/install/jdk-8u51-linux-x64.rpm /root

/usr/bin/virt-copy-in: line 19: exec: guestfish: not found”原因是没有安装guestfish造成的,可以先安装执行此命令yum install guestfish -y 自动安装就可以查看了。