KVM虚拟机的常用操作命令整理

2024-10-07 14:00:42网络知识悟空

1,创建虚拟机

复制代码

代码如下:

[root@localhost ~]# virt-install --name=centos1 \#生成一个虚拟机
--ram 1024 --vcpus=1 \
--disk path=/root/centos1.img,size=10 \
--accelerate --cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \
--graphics vnc,port=5921 --network bridge=br0

2,virsh的其他操作

复制代码

代码如下:

[root@localhost /]# virsh start centos1#启动虚拟机

[root@localhost /]# virt-viewer centos1#如果有图形界面的话,可以进入虚拟机的界面

[root@localhost ~]# virsh shutdown centos1#关闭虚拟机

[root@localhost /]# virsh reboot centos1#重启虚拟机

[root@localhost /]# virsh suspend centos1#暂停虚拟机

[root@localhost /]# virsh resume centos1#恢复虚拟机

[root@localhost /]# virsh autostart centos1#自动加载虚拟机

virsh参数如下:
autostart         #自动加载指定的一个虚拟机 
connect           #重新连接到hypervisor 
console           #连接到客户会话 
create            #从一个SML文件创建一个虚拟机 
start             #开始一个非活跃的虚拟机 
destroy           #删除一个虚拟机 
define            #从一个XML文件定义一个虚拟机 
domid             #把一个虚拟机名或UUID转换为ID 
domuuid           #把一个郁闷或ID转换为UUID 
dominfo           #查看虚拟机信息 
domstate          #查看虚拟机状态 
domblkstat        #获取虚拟机设备快状态 
domifstat         #获取虚拟机网络接口状态 
dumpxml           #XML中的虚拟机信息 
edit              #编辑某个虚拟机的XML文件 
list              #列出虚拟机 
migrate           #将虚拟机迁移到另一台主机 
quit              #退出非交互式终端 
reboot            #重新启动一个虚拟机 
resume            #重新恢复一个虚拟机 
save              #把一个虚拟机的状态保存到一个文件 
dump              #把一个虚拟机的内核dump到一个文件中以方便分析 
shutdown          #关闭一个虚拟机 
setmem            #改变内存的分配 
setmaxmem         #改变最大内存限制值 
suspend           #挂起一个虚拟机 
vcpuinfo          #虚拟机的cpu信息 
version           #显示virsh版本

3,virt-clone,如果我们要建几个一样的虚拟机,这个命令,非常有用

复制代码

代码如下:

# virt-clone --connect=qemu:///system -o centos1 -n centos3 -f /root/centos3.img#克隆centos1
正在克隆 centos1.img| 10.0 GB00:07

Clone 'centos3' created successfully.
libguestfs-tools是虚拟机一个管理包,很有用的工具
[root@localhost ~]# yum -y install libguestfs-tools#安装工具包

4,未登录的情况下,查看镜像目录

复制代码

代码如下:

[root@localhost ~]# virt-ls centos.img /home#查看centos.img镜像文件中/home目录
tank

5,未登录的情况下,将镜像文件中的文件copy出来

复制代码

代码如下:

[root@localhost ~]# virsh list --all#查看所有的虚拟机名称
Id名称状态
----------------------------------------------------
1centos1running
2centos6.5running
-arch关闭
-arch1关闭
-arch2关闭
-arch3关闭
-arch5关闭
-centos3关闭
-ubuntu关闭
-ubuntu1关闭
[root@localhost ~]# virt-copy-out -d centos1 /etc/passwd /tmp#将centos1中的文件copy到tmp下面

6,查看虚拟机的分区情况

复制代码

代码如下:

[root@localhost ~]# virt-filesystems -d centos1
/dev/sda1
/dev/VolGroup/lv_root

[root@localhost ~]# virt-list-partitions /root/centos.img
/dev/sda1
/dev/sda2

[root@localhost ~]# virt-df centos.img
Filesystem1K-blocksUsed Available Use%
centos.img:/dev/sda1495844345104357347%
centos.img:/dev/VolGroup/lv_root87808082842056549270033%

7,mount虚拟机

复制代码

代码如下:

[root@localhost ~]# guestmount -a /root/centos.img -m /dev/VolGroup/lv_root --rw /mnt/usb
[root@localhost ~]# cd /mnt/usb/
[root@localhost usb]# ls
bindev home lib64media mnt optroot selinux sys usr
boot etc liblost+found miscnet proc sbin srvtmp var

8,修改kvm中虚拟机的内存大小

复制代码

代码如下:

[root@nfs ~]# virsh edit vm01 ##注意vi直接编辑不生效

vm01
df8604c1-dcf3-fa98-420f-6eea7b39c395
1048576 ###本来开始设置为1G,现在这个单位是k
1048576

修改为1.5G

复制代码

代码如下:

[root@nfs ~]# expr 1536 \* 1024
1572864</p>
<p>[root@nfs ~]# virsh list
Id NameState
----------------------------------
1 win2003 running
3 vm01running</p>
<p>[root@nfs ~]# virsh shutdown vm01 ###修改配置文件后需要重新启动下虚拟机,先关闭它
Domain vm01 is being shutdown</p>
<p>[root@nfs ~]# virsh list###确认已经被关闭
Id NameState
----------------------------------
1 win2003 running</p>
<p>[root@nfs ~]# virsh start vm01###启动它
Domain vm01 started</p>
<p>[root@nfs ~]# virsh list
Id NameState
----------------------------------
1 win2003 running
3 vm01running

到机器上查看内存大小:

复制代码

代码如下:

[root@vm01 liuxiaojie]# free -m
totalusedfreesharedbufferscached
Mem:1505618886029361
-/+ buffers/cache:2271277
Swap:200002000

9,删除一个虚拟机(vm01)

复制代码

代码如下:

[root@nfs qemu]# virsh undefine vm01
[root@nfs qemu]# rm -f /home/data/vm01.img

10,删除一个域

复制代码

代码如下:

[root@nfs web01]# virsh list --all

Id Name                 State
----------------------------------
  1 web01                running  ##处于工作状态
  - myweb01              shut off
  - myweb03              shut off
  - mywin2003            shut off
  - myxp                 shut off
  - xp                   shut off
 

复制代码

代码如下:

[root@nfs web01]# virsh undefine web01##处于工作状态也能删除!

Domain web01 has been undefined

复制代码

代码如下:

[root@nfs web01]# virsh list

Id Name                 State
----------------------------------
  1 web01                running

复制代码

代码如下:

[root@nfs web01]# virsh destroy web01

Domain web01 destroyed

复制代码

代码如下:

[root@nfs web01]# virsh list --all##web01已经没有了!

Id Name                 State
----------------------------------
  - myweb01              shut off
  - myweb03              shut off
  - mywin2003            shut off
  - myxp                    shut off
  - xp                        shut off

复制代码

代码如下:

[root@nfs web01]# virsh define web01

error: Failed to open file 'web01': No such file or directory

发表评论: