虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。**
学习中使用的是redhat系统的虚拟机它由两部分文件构成:
(1).硬盘文件(qcow2文件):记录着操作系统。所有系统信息全在硬盘。qcow2文件
(2).硬件信息文件(xml文件):丢失损坏可以再次生成。xml文件。
1.下载镜像,放到合适位置(下面将镜像我放到根目录的iso目录下的)
##A.图形界面安装
执行:virt-manager进入虚拟机管理器中新建安装虚拟机。
在虚拟机安装好系统环境后,会重启,进入系统设置界面,进行语言、时区、超级用户密码设置等操作。
##B.脚本安装
1.创建文件:
xxxx(最好规范命令:create_vm.sh)
2.写入内容:
#!/bin/bash ##打开shell,使下面的命令在bash中执行
virt-install \
--cdrom /iso/rhel-server-7.3-x86_64-dvd.iso \ ##从目录中载入镜像文件
--ram 1024 \
--cpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=9 \ ##硬盘文件位置,类型,大小
--name $1 \
--network bridge=br0,model=virtio
3.新建虚拟机:create_vm.sh 虚拟机名字
(1)执行新建虚拟机命令:sh create_vm.sh xyz
(2)选择第一行安装Linux7.3,
(3)选择安装过程中的语言
(4)配置设置
(5)选择时区(东八区上海)
(6)选择系统的语言(除了默认的英语,这里还选择了汉语)
(7)选择最简图形界面安装
(8)选择自由分区设置容量
最终有根目录,根目录下的boot目录、swap目录
选择接受改变
(9)点击左边的选项进去,设置超级用户密码
(10)等待安装完成。
(11)安装完成,重启虚拟机。
(12)同意安装使用协议
设置完成后,点击右下角,完成安装向导。
这样就完成了一台虚拟机的安装,后面是系统使用设置,语言,时区,然后添加一个普通用户。
(13)在虚拟机管理器中我们可以看到新建的虚拟机,在这里,选中虚拟机,鼠标右键点击也可以对它进行开关机等操作。
virt-manager 开启虚拟机管理管理器(图形界面)
virt list 查看正在运行的虚拟机
virt list --all 查看所有的虚拟机
virsh start 虚拟机名 开启虚拟机
virsh shutdown 虚拟机名 正常关闭虚拟机
virsh destroy 虚拟机名 强制关闭虚拟机
virt-viewer 虚拟机名 图形化显示虚拟机
虚拟机恢复:
virsh create 虚拟机名.xml 暂时恢复,当退出时,虚拟机又会消失
virsh define 虚拟机名.xml 永久恢复
准备一个已经安装好的虚拟机
移动文件模拟待恢复的虚拟机(模拟备份好的虚拟机)
mv /etc/libvirt/qemu/虚拟机.xml /mnt
mv /var/lib/libvirt/images/虚拟机.qcow2 /mnt
在虚拟机管理器中删除这个虚拟机。(模拟故障)
恢复过程:
cd /mnt 切换到刚刚防止文件的目录,用硬件信息启动虚拟机
virsh create 虚拟机.xml 暂时恢复虚拟机,
virsh define 虚拟机.xml 永久恢复虚拟机
这个过程会出现错误:
(1)暂时恢复虚拟机时出错:
error: Failed to create domain from test.xml
error: Cannot access storage file '/var/lib/libvirt/images/test.qcow2' (as uid:107, gid:107): No such file or directory
(2)永久恢复虚拟机虽然不会报错,但是无法启动的。
解决办法-------> 这两个错误都是因为在硬件信息文件xml中,硬盘qcow2的位置在/var/lib/libvirt/images/,而此时,硬盘文件xyz.qcow2在/mnt目录下,所以会报错。将xyz.qcow2移动到/var/lib/libvirt/images/就可以了。
为了避免误删文件,最好把硬件信息文件也放回到/etc/libvirt/qemu/
移动文件后成功恢复:
在虚拟机管理器中可以看到恢复的虚拟机xyz:
虚拟机的磁盘可以生成快照,每个虚拟机都有快照,快照相当于一面镜子,我们看镜子时可以看到完整的虚拟机。在进行虚拟机操作时,实际上是对这面镜子(快照)操作,也就是说,虚拟机在操作时是对快照进行操作,而不是直接在这个磁盘文件里操作,当然,生成快照的磁盘一定要存在。
对于虚拟机的构成,我们就可以直接从磁盘生成快照从而快速建立新的虚拟机。前提是存在虚拟机的磁盘文件与硬件信息文件
可以在虚拟机管理器中一步一步设置新建虚拟机,我们可以写脚本使其自动新建虚拟机。图形界面的新建虚拟机不做示范。
1.硬盘文件建立快照脚本:
建立文件:vim vm_kuaizhao.sh
写入内容:
#!/bin/bash
qemu-img create -f qcow2 -b \ ##指定文件格式是qcow2
/var/lib/libvirt/images/$1.qcow2 \ ##指定原始磁盘名字
/var/lib/libvirt/images/$2.qcow2 ##指定创建的快照的名字
virt-install \
--name $2 \ ##直接将创建的快照名字作虚拟机名字
--ram 1024 \ ##分配内存大小
--cpus 1 \ ##cpu颗数
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \ ##指定快照
--network bridge=br0,model=virtio \ ##网络设置
--import & ##将新建的快照导入新建的虚拟机
保存退出。
2.运行脚本新建虚拟机:sh vm_kuaizhjao.sh xyz xyz1
基于新建虚拟机,可以实现重置虚拟机。在对虚拟机进行误操作后,我们可以直接换一面镜子(重建快照)就可以了。也就是说,我们可以将虚拟机原有快照删除,从磁盘文件那重新生成同名的快照,将快照导入,就实现了重置虚拟机。
新建文件:vm_reset.sh
写入内容
#!/bin/bash
virsh destroy $1
rm -fr /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 &
保存退出
执行文件重置虚拟机:sh vm_reset.sh 虚拟机名 磁盘名
转载于:https://blog.51cto.com/13885935/2152380
文章浏览阅读1.4k次。http://www.lydsy.com/JudgeOnline/problem.php?id=3110 题意: 有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c 如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。 ##tip: 线段树套线段树,外面是权值,每个节点上的线段树是位置, 比如_三角形数阵 线段树
文章浏览阅读2.2k次。原因分析Qt的数据库驱动没有安装,或者缺少MySql数据库的动态库或静态库(libmysql.dll或libmysql.lib);解决方法1Qt的数据库驱动没有安装的话,在对应的qt的安装目录下的plugins/sqldrivers/下,应该是没有对应的数据库的驱动库,如qsqlmysql.dll、qsqlmysqld.dll的驱动库。解决方法:(1)、重新安装qt,勾选上qsqldatabase;(2)、复制同版本的相应的库;解决方法2没有安装mysql数据库,qt编译机器上缺少libmy_driver not loaded
文章浏览阅读509次。前言: 在开发项目中一般都会有搜索功能。如果是面向C端的搜索功能,往往都特别考验性能。比如普通的商城系统中的商品搜索或者一些资源的站内搜索。 可能以前的做法就是对商品表做一个按名称或商品描述做模糊查询。更好一点的是对搜索关键字进行分词,并且专门建一个搜索词库表。不过前期需要对搜索词进行拆解然后幂集组合并于商品ID关联,搜索字与词库表的字以完全匹配的方式查询并找到商品ID。 虽然建词库表也是不错的解决方法,但是还要拆解存库建索引,相对比较麻烦。所以也是在网上查询了解到了elast..._elasticsearch全站搜索优化技术方案
文章浏览阅读1.3k次,点赞2次,收藏4次。基于无监督退化表示学习的 Blind SR | 环境搭建 | 测试简记 、附源码、完美运行_退化表示学习
文章浏览阅读1.6w次,点赞21次,收藏79次。在jupyter中import jupyter的.ipynb文件用jupyter时,保存的文件后缀是.ipynb。直接import是不能使用的。直接导入会报错为:没有该模块。解决的方法有两种:1.将.ipynb文件转化为.py文件。但是在后期的使用时会造成一定的不便。因为习惯使用.ipynb进行编程,每次修改之后都必须重新进行文件的转化,特别是引用文件比较多时,对文件的管理以及后续的编程带来很大的不便。2.在jupyter中直接引用.ipynb文件,import的.ipynb文件修改之后,可以直接_jupyter import
文章浏览阅读5.9k次。java语言当中的字符串String有没有重写toString方法,有没有重写equals方法总结:1、String类已经重写了equals方法,比较两个字符串不能使用==,必须使用equals。equals是通用的。2、String类已经重写了toString方法。大结论:java中什么类型的数据可以使用“双等于号”判断java中什么类型的数据需要使用equals判断。_object的比较,就是“==”和equals的使用场景?
文章浏览阅读6.3w次,点赞281次,收藏781次。一、脚本百科解释:脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当我们点击网页上的E-mail地址时能自动调用Outlook Express或Fox..._脚本语言
文章浏览阅读868次。MD5不可逆加密:只能加密,不能解密转为32位16进制密文 import hashlib def my_md5(pwd): m = hashlib.md5()![在这里插入图片描述](https://img-blog.csdnimg.cn/20190808200253874.png?x-oss-process=image/watermark,type_ZmFuZ3p..._django 生成的makepassword 能被解秘么
文章浏览阅读1.1w次。Flutter应用中修复AndroidX崩溃:https://blog.csdn.net/ytfunnysite/article/details/88313305webview_flutter:0.2.0解决webview_flutter报错:E/MethodChannel#flutter/platform_views(27071): Failed to handle method ca..._failed to handle method call
文章浏览阅读1.3k次。一、单机模式就是安装一个redis,启动起来,业务调用即可有什么问题?单机故障 容量瓶颈 QPS瓶颈只适合一些性能不高、可靠性不用太强的业务系统。二、主从复制模式可以解决单机模式的单机故障问题外,还有好处:读写分离 容灾备份假设我们要搭建1主2从,分别是6379、6380、6381端口6379主节点redis.conf配置文件不需要动,只把6380、6381两个从节点redis.conf配置文件增加一行(配置主节点的ip端口)slaveof 127.0.0_redis 6379 6380
文章浏览阅读2.3w次,点赞36次,收藏102次。一、我们发现ACM的latex模板中会有ACM Reference Format信息,如下:投稿时,可以使用如下的方法将其去掉,在 \documentclass[sigconf]{acmart}下面直接添加这几行即可去掉\settopmatter{printacmref=false} % Removes citation information below abstract\re..._settopmatter
文章浏览阅读2.5k次。1.最外层div加上 -webkit-overflow-scrolling属性,解决ios滑动不流畅.div {-webkit-overflow-scrolling: touch;}2.外层div里面的所有元素添加 -webkit-transform: translateZ(0px)属性,解决滑动时出现的空白(即图片不显示).div > * {-webkit-transform:..._ios h5 卡