linux中虚拟机的安装(镜像,快照,reset,自动安装)虚拟机的管理命令,进程的信号

虚拟机的脚本安装

[root@foundation44 ~]# virt-install \   脚本内容
> --cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso  \
> --ram 1024 \  #内存
> --cpus 1  \   
> --disk /var/lib/libvirt/images/zz.qcow2,bus=virtio,size=9 \  #zz:为虚拟机的名称
> --name zz \
> --network bridge=br0,model=virtio &    #虚拟网卡

##创建脚本文件
[root@foundation44 ~]#vim file.sh
##脚本内容
#!/bin/bash
virt-install \   
--cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso  \
--ram 1024 \  
--cpus 1  \   
--disk /var/lib/libvirt/images/zz.qcow2,bus=virtio,size=9 \  
--name zz \
--network bridge=br0,model=virtio & 
##执行脚本文件
[root@foundation44 ~]#sh file.sh

模拟恢复虚拟机

cd /var/lib/libvirt/images/
mv vmname.qcow2 /mnt/  #硬盘 vmname:虚拟机名称
mv /etc/libvirt/qemu/vmname.xml /mnt  #硬件信息文件(位于/etc/libvirt/qemu)

#注意:这里在定义和生成.xml时,当前文件夹(mnt)必须存在有硬盘文件.qcow2与前端管理文件.xml
      硬盘文件.qcow2也必须在原来的文件中(/var/lib/libvirt/images/),因为创建前端文件时,
      前端文件回到相应位置寻找后端硬盘文件.qcwo2

模拟恢复过程
cd /mnt
virsh  create vmname.xml  #用硬件信息文件启动虚拟机(临时的)
virsh  define vmname.xml  #用硬件信息文件启动虚拟机(永久的)
#在操作过程中会报错
[kiosk@foundation44 Desktop]$ virsh create chason.xml
error: Failed to create domain from chason.xml
error: Cannot access storage file '/var/lib/libvirt/images/chason.qcow2' (as uid:4294967295, gid:4294967295): No such file or directory
#解决方案
mv /mnt/vmname.qcow2 /var/lib/libvirt/images/  #将硬盘文件放到原来的文件夹中

虚拟机快照

虚拟机快照:在虚拟机安装过程中,硬盘文件.qcpw2是最主要的,要是没了硬盘文件,虚拟机就挂了,
         所以有时候为了保证虚拟机安装时不会误删,可以进行虚拟机快照
qemu-img create -f qcow2 -b vmname.qcow2 newvmname.qcow2     #vmname.qcow2:母盘 newname:照片

快照安装虚拟机脚本

#!/bin/bash
qemu-img create -f qcow2 -b \
/var/lib/libvirt/images/$1.qcow2 /var/lib/libvirt/images/$2.qcow2

virt-install \
--name $2 \
--ram 1024 \
--cpus 1  \
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \
--network bridge=br0,model=virtio \
--import &

自动安装虚拟机

1.先在真机搭建dhcpd服务,并开启dhcpd服务
2.在虚拟机(或真机)用yum源下载:yum install system-config-kickstart.noarch -y
[root@desktop144 ~]# system-config-kickstart
3.进行图形选择,将 ks.cfg放在/var/www/html中,并进行编辑在这里插入图片描述
[root@desktop144 html]# ksvalidator ks.cfg         #检查语法错误
  [root@desktop144 html]# systemctl stop firewalld   #关防火墙
  [root@desktop144 html]# systemctl start httpd      #开启httpd服务
  [root@desktop144 html]# systemctl status httpd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在真机上写脚本
[kiosk@foundation44 Desktop]$ vim zidong.sh   #写脚本
脚本内容:
#!/bin/bash
virt-install \
--name $1 \
--ram 1024 \
--cpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=9 \
--network bridge=br0,model=virtio \
--location http://172.25.254.44/rhel7.0 \                    #真机IP跟html/目录路径
--extra-args ks=http://172.25.254.144/ks.cfg &               #ks.cfg所处电脑的IP
执行脚本
[root@foundation44 Desktop]# sh zidong.sh dd     #执行脚本

在这里插入图片描述

虚拟机的reset脚本

#!/bin/bash
virsh destory $1
rm -rf /var/lib/libvirt/images/$1.qcow2
qemu-img create -f qcow2 -b /var/lib/libvirt/images/$2.qcow2 /var/lib/libvirt/images/$1.qcow2
virsh start $1
virt-viewer $1 &

虚拟机管理命令

virt-manager   #开启虚拟机管理器
[root@foundation44 ~]# virsh list      #显示正在运行的虚拟机
 Id    Name                           State
----------------------------------------------------
 1     desktop                        running
 2     server                         running
 4     ww                             running
[root@foundation44 ~]# virsh start ww  #打开虚拟机
error: Domain is already active
[root@foundation44 ~]# virsh shutdown ww  #正常关闭虚拟机
Domain ww is being shutdown

[root@foundation44 ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 1     desktop                        running
 2     server                         running
 4     ww                             running
[root@foundation44 ~]# virsh destroy vmname  #强行关闭虚拟机
[root@foundation44 ~]# virt-viewer vmname    #显示虚拟机
[root@foundation44 ~]# virsh undefine vmname #删除虚拟机

进程的信号

1.常用信号级别
  1         #进程重新加载配置
  2         #删除进程在内存中的数据
  9         #强行结束单个进程(不可被阻塞)
  15        #正常关闭进程(可能会被阻塞)
  18        #运行暂停的进程
  19        #暂停某个进程(不能被阻塞)
  20        #把进程打入后台

kill      -信号  进程pid
killall   -信号  进程的名字
pkill    -u username  -信号   #删除用户的进程

猜你喜欢

转载自blog.csdn.net/weixin_44320876/article/details/86500183