1.虚拟机管理命令
virt-manager 开启虚拟机管理器
virsh list 显示正在运行的虚拟机

virsh list --all 查看所有虚拟机

virsh shutdown bai 正常关闭虚拟机bai
虚拟机会出现正常关机的界面,但是在图形管理工具上不会立即显示出来


virsh destroy server 强行关闭虚拟机server

virsh start bai 打开虚拟机bai

virt-viewer bai 显示虚拟机bai

2.主机之间虚拟机的克隆
(1)在别人的主机中发现一个安装好的虚拟机
ssh -X root@172.25.254.28连接别人的主机,切换到超级用户下,
执行virt-manager命令,打开虚拟机图形控制器,这台主机中的虚拟机如下

如图:bai这台虚拟机的硬盘是真机中的/var/lib/libvirt/images/bai.qcow2

(2)主机中存在已经安装好的虚拟机
切换到/var/lib/libvirt/images/目录,ls查看目录中的文件

(3) 复制虚拟机所需文件
用自己的主机复制别人主机的硬盘到自己主机的目录下
scp root@172.25.254.28:/var/lib/libvirt/image/bai.qcow2 /mnt/

同时复制bai.xml文件到自己想要的目录下
scp root@172.25.254.28:/etc/libvirt/qemu/bai.xml /mnt/

查看目录下文件

(4)对虚拟机进行恢复
virsh creat /mnt/bai.xml 用虚拟机硬件文件一次性打开虚拟机,系统会提示找不到文件

因为路径不一致,硬盘文件在/mnt/下,系统的硬盘资源文件都在/var/lib/libvirt/image/目录下,所以将复制过来的虚拟机硬盘文件移动到这个目录下

再次执行virsh creat /mnt/bai.xml命令,在虚拟机图形控制器中可以看到bai这个虚拟机被克隆

virsh destroy bai强制关闭这台虚拟机,虚拟机图形控制器中没有了这台虚拟机,这是因为virsh creat只是一次性打开

virsh define /mnt/bai.xml 永久恢复
执行命令后虚拟机图形管理器中出现虚拟机

开启该虚拟机virsh start bai,开启之后强制关闭,图形控制器中还有该虚拟机的信息,虚拟机克隆成功

注:
管理硬件资源的文件 /etc/
改变文件内容后重启虚拟化服务
管理工具会自动断开链接,需要再次手动连接
xml可扩展标记语言 ,应用于作数据封装
html超文本标记语言   用于作网页他的语法不严谨,重新规划的语言

######################################3
3.虚拟机的快照

1.生成快照

<1>复制文件生成快照

[root@foundation27 ~]# qemu-img create -f qcow2 -b /var/lib/libvirt/images/bai.qcow2 /var/lib/libvirt/images/moon.qcow2
Formatting '/var/lib/libvirt/images/moon.qcow2', fmt=qcow2 size=21474836480backing_file='/var/lib/libvirt/images/bai.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off

<2>切换到/var/lib/libvirt/images/目录下,查看刚刚生成的文件


[root@foundation27 ~]# cd /var/lib/libvirt/images/
[root@foundation27 images]# ls
bai.qcow2      desktop-1.qcow2  rh124-desktop-vda.qcow2  rh124-server-vda.qcow2
desktop.qcow2          rh124-desktop-vdb.ovl    rh124-server-vdb.ovlrh124-desktop-vdb.qcow2  rh124-server-vdb.qcow2
moon.qcow2             rh124-desktop.xml        rh124-server.xml
rh124-desktop-vda.ovl  rh124-server-vda.ovl     yyy.qcow2
注:f是类型 b是目录

2.把生成的快照导入到虚拟机图形控制器中
<1>打开虚拟机控制图形
[root@foundation27 ~]# virt-manager

<2>添加一个虚拟机
(1)双击下图中的红色框中的图标

(2)进入之后选择import existing disk image

(3)选择硬盘文件

选择刚刚创建的快照硬盘

<3>起名时和快照一致

完成后系统会自动切换到登录界面

3.使用虚拟机虚拟机可以使用
在真机中du -sh 查看快照的大小

[root@foundation27 images]# du -sh moon.qcow2
196k    moon.qcow2


在快照虚拟机中创建文件

在虚拟机中建立文件reboot重启后再次在真机中查看快照的大小,文件大小发生改变

[root@foundation27 images]# du -sh moon.qcow2
77M haha.qcow2


4.快照虚拟机损坏,那么删除快照重新制作快照即可
<1>在虚拟机中删除/etc/目录,重启虚拟机出现问题


<2>在虚拟机图形控制器中删除刚刚添加的快照的虚拟机
(1)单击快照虚拟机,选择delete

选择快照的硬盘文件一起删除

<3>在真机中对应的目录下查看,快照文件被删除

[root@foundation27 images]# ls
desktop-1.qcow2          rh124-desktop-vdb.ovl    rh124-server-vdb.ovl
desktop.qcow2            rh124-desktop-vdb.qcow2  rh124-server-vdb.qcow2
miemie!!.qcow2         rh124-desktop.xml        rh124-server.xml
rh124-desktop-vda.ovl    rh124-server-vda.ovl     yyy.qcow2
rh124-desktop-vda.qcow2  rh124-server-vda.qcow2

<4>重复创建快照的过程,添加对应的虚拟机

[root@foundation27 images]# qemu-img create -f qcow2 -b /var/lib/libvirt/
images/bai.qcow2 /var/lib/libvirt/images/miao.qcow2
Formatting '/var/lib/libvirt/images/miao.qcow2', fmt=qcow2 size=32212254720
backing_file='/var/lib/libvirt/images/bai.qcow2' encryption=off cluster_si
ze=65536 lazy_refcounts=off
[root@foundation27 images]# ls
bai.qcow2         desktop-1.qcow2        rh124-desktop-vda.qcow2 rh124-server-vda.qcow2
desktop.qcow2          rh124-desktop-vdb.ovl    rh124-server-vdb.ovl
miao.qcow2             rh124-desktop-vdb.qcow2  rh124-server-vdb.qcow2  rh124-desktop.xml        rh124-server.xml
rh124-desktop-vda.ovl  rh124-server-vda.ovl     yyy.qcow2


5.当快照使用后不可以对母盘作任何操作
对虚拟机进行了快照之后,原来的虚拟机作更改,再次登陆快照 快照会失效
########################################
4.命令删除虚拟机

<1>virsh undefine hahah
虚拟机图形控制器中删除图形,查看文件是没有删除的
注:删除时如果虚拟机正在运行不会立即显示图形消失,当虚拟机停止运行时会立即消失
(1)先执行命令virsh undefine hahah

(2)打开图形管理工具,hahah虚拟机正在运行,没有消失

(3)让虚拟机停止运行之后hahah虚拟机的图形消失

(4)查看硬盘资源目录,hahah的硬盘文件还在

<2>rm -fr /var/lib/libvirt/images/hahah.qcow2
删除后查看目录,文件被删除

###################################################
5.虚拟机脚本文件控制虚拟机的安装

注:
换行符前面必须有空格
换行符后面不可以有空格,否则命令会出错
续接名字
$1    占位符
脚本后跟的第一串字符
$2    第二串
$*   表示所有

(1)建立编辑一个脚本文件

[root@foundation27 images]# vim vm_create.sh
#!/bin/bash       #####表示在shell环境下运行
virt-install \   ####表示安装虚拟机
--cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \
######录入光驱目录
--memory 1000 \     ####设定内存的大小1000mib
--vcpus 1 \         ####指定cpu的数目为1个
--disk /var/lib/libvirt/images/h1.qcows,size=8,bus=virtio \
#####指定虚拟机的硬盘位置/var/lib/libvirt/images/h1.qcows ,大小为8G,
总线为virtio虚拟的输入输出
--network bridge=br0,model=virtio \  #####设置网关中的网桥为br0,
--name h1
######虚拟机的名字为h1

(2)退出保存后运行
[root@foundation27 images]# sh vm_create.sh

(3)虚拟机被建立,调转到安装界面

(4)以上只能一次安装一个虚拟机,更改名字需要进入脚本更改
优化后可以通过更改命令后的字符来设定虚拟机的名字,直接进行修改和安装

#!/bin/bash
virt-install \
--cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \
--memory 1000 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$1.qcows,size=8,bus=virtio \
--network bridge=br0,model=virtio \
--name $1 >/dev/null &

(5)保存后退出运行
若运行时文件名后没有字符,脚本中的名字没有生效,会出现报错没有参数

[root@foundation27 images]# vim vm_create.sh
[root@foundation27 images]# sh vm_create.sh
#####直接运行该文件系统会出现报错,没有一个参数(续接名字)
[root@foundation27 images]# usage: virt-install --name NAME --memory
MB STORAGE INSTALL [options]
virt-install: error: argument -n/--name: expected one argument


给执行脚本文件的命令后加一个名字,这个名字将是新的虚拟机的名字


若再次建立hello会报错,名字hello已经被占用

[root@foundation27 images]# sh vm_create.sh hello
[root@foundation27 images]# ERROR    Guest name 'hello' is already in use.


再次更改文件名后的字符串,执行命令,直接建立并安装虚拟机

###########################################
6.自动添加快照

(1)创建编辑脚本文件

[root@foundation27 images]# vim hehe.sh
写入以下内容
#!/bin/bash
qemu-img create -f qcow2 -b \  ###快照
/var/lib/libvirt/images/$1.qcow2 \   #####母盘的目录
/var/lib/libvirt/images/$2.qcow2 \  &> /dev/null  ###快照的目录
######&> /dev/null   将所有的输出丢到垃圾箱virt-install \    ####表示安装
--name $2 \  ####快照名字
--memory 1000 \     ####快照的内存大小为1000MB
--vcpus 1 \         #######cpu个数  1个
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \      ####硬盘目录,
--network bridge=br0,model=virtio \
--import  &> /dev/null &

(2)保存退出后运行脚本文件
给命令后加两个字符串,第一个表示母盘的名字,第二个表示创建的快照的名字


[root@foundation27 images]# vim hehe.sh
[root@foundation27 images]# sh hehe.sh bai kkk


(3)再次执行,创建快照虚拟机hhh
[root@foundation27 images]# sh hehe.sh bai hhh

7.虚拟机的自动化安装

把系统安装过程中所有问题的答案写进文件中,实现安装过程的自动化

实现自动化安装之前需要搭建DHCP服务器(用来分配ip),详情见博客《模拟DHCP服务器的搭建》
https://mp.csdn.net/mdeditor/86601156#

(1)安装制作自动安装脚本的工具
[root@software_install software]# yum install system-config-kickstart -y

(2)安装后system-config-kickstart打开图形工具
制作自动安装脚本的工具

出现以下错误,因为链接该虚拟机是没有使用图形

[root@software_install ~]# system-config-kickstart
Could not open display because no X server is running.
Try running 'system-config-kickstart --help' for a list of options.


退出后再次登陆,执行命令后可以打开

[root@foundation27 .ssh]# ssh -X root@172.25.254.127
root@172.25.254.127's password:
Last login: Sun Jan 20 09:14:19 2019 from 172.25.254.27
/usr/bin/xauth:  file /root/.Xauthority does not exist
[root@software_install ~]# system-config-kickstart
/usr/share/system-config-kickstart/kickstartGui.py:104: GtkWarning: GtkSpinButton: setting
an adjustment with non-zero page size is deprecatedxml = gtk.glade.XML ("/usr/share/system-config-kickstart/system-config-kickstart.glade", domain="system-config-kickstart")
Loaded plugins: langpacks, product-id

(3)打开图形后依次选择开始制作工具
第一行选择时区,语言,输入超级用户密码选择安装后自动重启系统,安装过程中纯文本因为有图形影响电脑性能

(4)第二行选择,安装新的引导,不选择会出错
选择网络共享 ,并选择对应的目录

(5)第三行选择清掉原来的引导

(6)第四行选择删除原来的记录,删除所有的标签,删除原来所有的硬盘
左下角添加新的目录

第一个先添加一个/boot目录,选择大小为200mb

再添加一个swap目录,选择大小为500mb (再第二行选择)

再选择一个/目录,将剩下所有的都给/

(7)第五行选择网络时选择dhcp ,批量安装时静态网络会抢ip
网卡设置为eth0


(8)第六行是加密方式SHA512不用改变

(9)第七行设置防火墙,两行都选择disable 开机不启动

(10)第八行设置开机引导,第一次开机时不出现引导

(11)第九行是设置包,因为图形有bug,在文件里添加

(12)第十行是设置安装前需要干什么,可以写入脚本
(13)第十一行是设置安装后需要干什么,写入脚本

设置完图形之后将文件保存到/mnt/下
单击file,选择save


关闭图形工具后切换到/mnt/下查看目录中的文件,刚刚保存的文件在

vim ks.cfg编辑刚刚保存的文件
文件中的内容就是刚刚在图形工具里设置的东西,在文件末尾写入

%packages
@base   ########@base 表示组件
lftp    ##########没有@表示单个的安装软件包
%end


(14)退出保存后
[root@software_install mnt]# ksvalidator ks.cfg
检测语法有没有错误
有任何输出表示写错
没有报错代表语法正确,不代表内容设定合理
只能检测语法错误

(15)安装httpd软件
[root@software_install mnt]# yum install httpd -y

安装后开启服务,设置服务开机自启动
关闭火墙,设置火墙开机不启动

[root@software_install mnt]# systemctl start httpd
[root@software_install mnt]# systemctl enable httpd
[root@software_install mnt]# systemctl stop firewalld
[root@software_install mnt]# systemctl disable firewalld

(16)将刚刚编辑的文件复制到/var/www/html/目录下
[root@software_install mnt]# cp /mnt/ks.cfg /var/www/html/
将kickstart发布(用cp 不要用mv)

(17)将kickstart发布成功后真机浏览器里访问http://172.25.254.127/ks.cfg

(18)在真机中切换到超级用户,切换到/mnt/目录后,建立并编辑一个脚本文件
[root@foundation27 mnt]# vim vm_create.sh

在文件中写入
#!/bin/bash
virt-install \
--name $1 \
--memory 1000 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \
--network bridge=br0,model=virtio \
--location http://172.25.254.250/rhel7.3/x86_64/dvd \
localtion后的路径表示安装的镜像的目录,图形工具里填的哪这里应保持一致
--extra-args "ks=http://172.25.254.127/ks.cfg" &>/dev/null &
####额外的 在哪里执行哪里

退出保存后给文件被执行权限
[root@foundation27 mnt]# chmod 777 vm_create.sh
[root@foundation27 mnt]# ls -l vm_create.sh
运行刚刚编辑的脚本文件
[root@foundation27 mnt]# sh vm_create.sh test1

虚拟机开始安装,安装过程中会出现一个列表若列表中除了建立用户的项是!外其他都是x表示成功,反之若哪一项前面是!就表示哪一项是有问题的,返回到前面的步骤更改即可

安装后如下:

Linux中如何对虚拟机管理和恢复相关推荐

  1. linux中进程的用户管理

    linux中进程的用户管理 每个进程都拥有真实的用户.组(uid.gid),有效的用户.组(euid.egid),保存的设置用户.组(suid.sgid),还有linux中专门用于文件存储存取的用户. ...

  2. linux用户密码管理,Linux_详解Linux中的用户密码管理命令passwd和change,passwd 修改用户密码参数 nbsp - phpStudy...

    详解Linux中的用户密码管理命令passwd和change passwd 修改用户密码 参数 -k 保持未过期身份验证令牌 -l 关闭账号密码.效果相当于usermod -L,只有root才有权使用 ...

  3. Linux中LVM(逻辑卷管理)的使用

    Linux 中我们使用fdisk命令划分好的分区就不能随意的改变,如果不够用的话不可能说把硬盘上的所有数据拷贝后再重新分区,这样可能会导致数据损坏.而在linux中LVM(逻辑卷管理)就可以实现动态的 ...

  4. 笔记本虚拟机 安装红旗linux x86,在红旗linux中安装vmware虚拟机

    在红旗linux中安装vmware虚拟机 为了逐渐适应在linux下使用电脑的习惯,可以说试着在linux下进行相应的操作,想要离开windows,但就像有人形容微软是让人又爱又恨,已经习惯了在win ...

  5. linux中安装Windows虚拟机(使用VMware player)

    文章目录 一.下载和安装VMware 二.启动和配置VMware player 2.1 在Linux主机上安装VMware player 2.2 启动VMplayer 2.3 从官方下载Windows ...

  6. linux系统交换空间,Linux中如何使用和管理交换空间

    给计算机配置交换空间可以充分利用系统,在物理内存被充满时使用,那么Linux下要如何使用Linux交换空间呢?Linux交换空间又要如何管理呢?下面小编就给大家介绍下Linux下使用交换空间的方法,一 ...

  7. linux中线程的挂起与恢复(进程暂停)

    今 天 在网上查了一下 linux中对进程的挂起与恢复的实现,相关资料少的可怜,大部分都是粘贴复制.也没有完整详细的代码.故自己整理了一下 程序流程为:主线程创建子线程(当前子线程状态为stop停止状 ...

  8. Linux中用户和权限管理

    Linux是一个多用户多任务操作系统,多用户是指可以多人同时使用系统资源:,多用户是指多个用户可以在同一时间内   登录同一个系统执行各自不同的任务,而互不影响.因此为了保证系统安全性和各用户的隐私, ...

  9. linux 内核页表 tlb,Linux中的mips64 tlb管理

    关于tlb的描述可参考mips run2以及mips64官方手册. tlb条目:tlb entry 寄存器:entryHi, entryLo0, entryLo1, mask, index, wire ...

最新文章

  1. tomcat启动出现闪退_(转)Tomcat 启动后 “闪退”
  2. Atitit.css 规范 bem  项目中 CSS 的组织和管理
  3. bootstrap-关闭按钮
  4. 【CyberSecurityLearning 34】Linux脚本编写(Shell脚本)
  5. EDAS微服务应用同城容灾最佳实践
  6. 有序数组中查找第一个比target大的数
  7. devops_将DevOps带到教室
  8. php 压入元素,php 数组增加元素的方法 array_push 和 array_merge
  9. 技术面试者的技术深度和广度
  10. vue之神奇的动态按钮
  11. member selection 运算符是什么
  12. 从master-worker模型看团队管理
  13. java random 种子数_java中Random类带种子与不带的区别,详细解析
  14. 医疗人工智能与未来医院信息化建设
  15. 什么是ActiveX控件?
  16. 故障监测 检测 和 诊断
  17. Linux学习之——/etc/sysconfig目录
  18. mac 备份文件 太大 时间机器_如何在Mac OS X中设置时间机器备份 | MOS86
  19. RabbitMq死信队列介绍
  20. 常用激活函数总结(深度学习)

热门文章

  1. 美国限制H1-B签证将导致科技岗位外流
  2. poi-tl生成word文档,java生成word文档
  3. Unity如何完全消除摩擦力
  4. Best Time to Buy and Sell Stock III
  5. 李开复写给中国大学生的第五封信
  6. 地图APP的产品分析-驴迹导游
  7. android实现微信网页浏览、QQ下拉效果SlidingLayout
  8. windows10系统搜索不到无线WIFI网络打印机
  9. Web端访问微信小程序云数据库
  10. 哈尔滨市平房区云计算助力 为创城插上智慧的翅膀