kvm挂载磁盘的方法和工具很多,具体如下:
(1)raw格式的磁盘可以直接挂载,也可以将qcow2格式的磁盘转换成raw格式的并挂载。eg:转换的命令为:
1
|
[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安装。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[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是直接获取磁盘文件方式
1
2
|
virt-
df
[--options] -d domname
virt-
df
[--options] -a disk.img [-a disk.img ...]
|
2,virt-cat命令,可直接查看虚拟机的文件,类似于cat,(开关机都可以)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
[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编辑器(注意:该虚拟机必须处于关机状态)
1
2
3
4
5
6
7
8
9
10
11
|
[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命令,(开关机都可以)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[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
|
5,virt-filesystems命令,也是查看磁盘的使用情况,和virt-df命令类似(开关机都可以)
6,virt-copy-out命令,直接复制虚拟机里面的磁盘文件到本地磁盘上,类似于cp命令,分为两种情况如下:
(1)拷贝虚拟机hadoop1中的磁盘文件到本地目录/tmp/install下(拷贝文件)
1
|
[root@KVM ~]
# virt-copy-out -d hadoop1 /etc/passwd /tmp/install
|
(2)拷贝虚拟机hadoop1中的目录/etc/init.d/到本地/tmp/install/下(拷贝目录)
1
|
[root@KVM ~]
# virt-copy-out -d hadoop1 /etc/init.d/ /tmp/install
|
结果如下图:
1
2
3
4
5
6
|
[root@KVM ~]
# virsh domblklist hadoop1
Target Source
------------------------------------------------
vda
/images/test/hadoop1
.qcow2
vdb
/images/test/hadoop1_add01
.qcow2
hdc -
|
1
|
[root@KVM ~]
# virt-copy-out -a /images/test/hadoop2.img -a /images/test/hadoop1_add01.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0 /root/
|
9,virt-copy-in命令,直接虚拟化平台上本地磁盘到虚拟机磁盘上,类似于cp (虚拟机必须处于关机状态,开机验证)
1
2
3
|
[root@KVM
install
]
# virt-copy-in -d hadoop1 /tmp/install/nginx.tar.gz /tmp/
[root@KVM
install
]
# virsh start hadoop1
Domain hadoop1 started
|
如果出现报错:“错误: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 自动安装就可以查看了。
本文转自 lqbyz 51CTO博客,原文链接:http://blog.51cto.com/liqingbiao/1741306