kvm虚拟机操作相关命令及虚拟机和镜像密码修改

虚拟机生命周期管理

1)查看kvm虚拟机状态
#virsh list --all
2)KVM虚拟机开机
# virsh start oeltest01
3)KVM虚拟机关机或断电
关机
默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。
# chkconfig acpid on
# service acpid restart
virsh关机
# virsh shutdown oeltest01
 
强制关闭电源
# virsh destroy wintest01

4)通过配置文件启动虚拟机
# virsh create /etc/libvirt/qemu/wintest01.xml
 
5)配置开机自启动虚拟机
# virsh autostart oeltest01
autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。
 
6)导出KVM虚拟机配置文件
# virsh dumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml
KVM虚拟机配置文件可以通过这种方式进行备份。
 


7)添加与删除KVM虚拟机
删除kvm虚拟机
# virsh undefine wintest01
说明:该命令只是删除wintest01的配置文件,并不删除虚拟磁盘文件。

8)其它virsh命令
挂起服务器
# virsh suspend oeltest01
 
9)恢复服务器
# virsh resume oeltest01

11)创建虚拟机
[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

12)virt-clone,如果我们要建几个一样的虚拟机,这个命令,非常有用!
# virt-clone --connect=qemu:#/system -o centos1 -n centos3 -f /root/centos3.img #克隆centos1
正在克隆 centos1.img | 10.0 GB 00:07

相关参数

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版本

获取vnc

[root@localhost ~]# virsh vncdisplay 2
127.0.0.1:0

[root@localhost ~]# 

编辑虚拟机配置文件

1)重新定义虚拟机配置文件
通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。
# mv /etc/libvirt/qemu/wintest02.xml /etc/libvirt/qemu/wintest01.xml
# virsh define /etc/libvirt/qemu/wintest01.xml

2)编辑KVM虚拟机配置文件
# virsh edit wintest01
virsh edit将调用vi命令编辑/etc/libvirt/qemu/wintest01.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。
可以但不建议直接通过vi编辑。
# vim /etc/libvirt/qemu/wintest01.xml

通过virsh console进入虚拟机控制台

libguestfs-tools的使用

一、libguestfs-tools安装

yum -y install libguestfs-tools

二、linux下的使用

1、查看硬盘使用情况

virt-df centos.img

2、列出目录文件

virt-ls centos.img /

3、将名为domain的虚拟机里的源复制到目的

virt-copy-out -d domain /etc/passwd(源) /tmp(目的) 

4.查看分区相关信息

virt-filesystems -d domain
virt-list-filesystems /file/xx.img
virt-list-partitions /file/xx.img

5.分区挂载

guestmount -a /file/xx.qcow2(raw/qcow2都支持) -m /dev/VolGroup/lv_root --rw /mnt

6.shell的使用

guestfish -d domain(在开机情况下不能使用)

修改kvm虚拟机的root密码和其他用户密码

  1. virsh xxxx shutdown 关掉虚拟机

  2. virt-edit xxx /etc/shadow 文件,

    先生成一个密钥

    # openssl passwd -1 -salt 'hello' '123456'
    $1$hello$ZwmhCpcG.I1XIfVjdarKc1
    

    virt-edit -d rhel7.0 /etc/shadow,替换掉root的shadow文件

    root:$1$bTPRDWwf$LpjUZmGTHw.hYFccl0/lK.:16804:0:99999:7:::
    更换为
    root:$1$hello$ZwmhCpcG.I1XIfVjdarKc1:16541:0:99999:7:::
    
  3. virsh xxxx start 启动虚拟机 ,使用新的root密码登录,搞定

修改qcow2的密码

需要安装

libguestfs-tools

修改/etc/libvirt/qemu.conf

user = "root"
# The group for QEMU processes run by the system instance. It can be
# specified in a similar way to user.
group = "root"

修改密码

[root@localhost home]# sudo virt-customize -a /root/ubuntu.qcow2  --root-password password:root
[   0.0] Examining the guest ...
[ 100.3] Setting a random seed
[ 101.4] Setting the machine ID in /etc/machine-id
[ 101.6] Setting passwords
[ 126.6] Finishing off
[root@localhost home]# 

原文地址:https://www.cnblogs.com/mrwuzs/p/11600018.html