Linux(RadHat)基础学习—虚拟机管理-程序员宅基地

1.虚拟机:

虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。**

学习中使用的是redhat系统的虚拟机它由两部分文件构成:
(1).硬盘文件(qcow2文件):记录着操作系统。所有系统信息全在硬盘。qcow2文件
(2).硬件信息文件(xml文件):丢失损坏可以再次生成。xml文件。

2.redhat虚拟机的安装

1.下载镜像,放到合适位置(下面将镜像我放到根目录的iso目录下的)
##A.图形界面安装
执行:virt-manager进入虚拟机管理器中新建安装虚拟机。
在虚拟机安装好系统环境后,会重启,进入系统设置界面,进行语言、时区、超级用户密码设置等操作。

##B.脚本安装
1.创建文件:
xxxx(最好规范命令:create_vm.sh)

Linux(RadHat)基础学习—虚拟机管理
2.写入内容:
Linux(RadHat)基础学习—虚拟机管理

#!/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
Linux(RadHat)基础学习—虚拟机管理

(2)选择第一行安装Linux7.3,
Linux(RadHat)基础学习—虚拟机管理

(3)选择安装过程中的语言
Linux(RadHat)基础学习—虚拟机管理
(4)配置设置
Linux(RadHat)基础学习—虚拟机管理
(5)选择时区(东八区上海)
Linux(RadHat)基础学习—虚拟机管理
(6)选择系统的语言(除了默认的英语,这里还选择了汉语)
Linux(RadHat)基础学习—虚拟机管理
(7)选择最简图形界面安装
Linux(RadHat)基础学习—虚拟机管理
(8)选择自由分区设置容量
Linux(RadHat)基础学习—虚拟机管理

Linux(RadHat)基础学习—虚拟机管理

Linux(RadHat)基础学习—虚拟机管理

Linux(RadHat)基础学习—虚拟机管理
最终有根目录,根目录下的boot目录、swap目录
Linux(RadHat)基础学习—虚拟机管理
选择接受改变
Linux(RadHat)基础学习—虚拟机管理

(9)点击左边的选项进去,设置超级用户密码
Linux(RadHat)基础学习—虚拟机管理

Linux(RadHat)基础学习—虚拟机管理

(10)等待安装完成。

Linux(RadHat)基础学习—虚拟机管理
(11)安装完成,重启虚拟机。
Linux(RadHat)基础学习—虚拟机管理
(12)同意安装使用协议
Linux(RadHat)基础学习—虚拟机管理
Linux(RadHat)基础学习—虚拟机管理
设置完成后,点击右下角,完成安装向导。
这样就完成了一台虚拟机的安装,后面是系统使用设置,语言,时区,然后添加一个普通用户。
(13)在虚拟机管理器中我们可以看到新建的虚拟机,在这里,选中虚拟机,鼠标右键点击也可以对它进行开关机等操作。
Linux(RadHat)基础学习—虚拟机管理

3.虚拟机管理命令

virt-manager      开启虚拟机管理管理器(图形界面)
virt list      查看正在运行的虚拟机
virt list --all      查看所有的虚拟机
virsh start 虚拟机名     开启虚拟机
virsh shutdown 虚拟机名   正常关闭虚拟机
virsh destroy 虚拟机名    强制关闭虚拟机
virt-viewer 虚拟机名    图形化显示虚拟机

虚拟机恢复:

virsh create 虚拟机名.xml   暂时恢复,当退出时,虚拟机又会消失
virsh define 虚拟机名.xml   永久恢复

4.模拟虚拟机恢复

准备一个已经安装好的虚拟机
移动文件模拟待恢复的虚拟机(模拟备份好的虚拟机)
mv /etc/libvirt/qemu/虚拟机.xml /mnt
mv /var/lib/libvirt/images/虚拟机.qcow2 /mnt
在虚拟机管理器中删除这个虚拟机。(模拟故障)
Linux(RadHat)基础学习—虚拟机管理
Linux(RadHat)基础学习—虚拟机管理
恢复过程:
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/
移动文件后成功恢复:
Linux(RadHat)基础学习—虚拟机管理
在虚拟机管理器中可以看到恢复的虚拟机xyz:
Linux(RadHat)基础学习—虚拟机管理

<< 3秒新建虚拟机>>

虚拟机的磁盘可以生成快照,每个虚拟机都有快照,快照相当于一面镜子,我们看镜子时可以看到完整的虚拟机。在进行虚拟机操作时,实际上是对这面镜子(快照)操作,也就是说,虚拟机在操作时是对快照进行操作,而不是直接在这个磁盘文件里操作,当然,生成快照的磁盘一定要存在。
对于虚拟机的构成,我们就可以直接从磁盘生成快照从而快速建立新的虚拟机。前提是存在虚拟机的磁盘文件与硬件信息文件

可以在虚拟机管理器中一步一步设置新建虚拟机,我们可以写脚本使其自动新建虚拟机。图形界面的新建虚拟机不做示范。

快照秒建虚拟机

1.硬盘文件建立快照脚本:

建立文件:vim vm_kuaizhao.sh

写入内容:
Linux(RadHat)基础学习—虚拟机管理

#!/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

写入内容
Linux(RadHat)基础学习—虚拟机管理

#!/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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34319999/article/details/92728653

智能推荐

bzoj3110(线段树套线段树、树状数组套线段树)_三角形数阵 线段树-程序员宅基地

文章浏览阅读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: 线段树套线段树,外面是权值,每个节点上的线段树是位置, 比如_三角形数阵 线段树

Qt MySql Driver not loaded问题处理-程序员宅基地

文章浏览阅读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

搜索接口优化方案——elasticsearch分布式搜索引擎的基本使用_elasticsearch全站搜索优化技术方案-程序员宅基地

文章浏览阅读509次。前言: 在开发项目中一般都会有搜索功能。如果是面向C端的搜索功能,往往都特别考验性能。比如普通的商城系统中的商品搜索或者一些资源的站内搜索。 可能以前的做法就是对商品表做一个按名称或商品描述做模糊查询。更好一点的是对搜索关键字进行分词,并且专门建一个搜索词库表。不过前期需要对搜索词进行拆解然后幂集组合并于商品ID关联,搜索字与词库表的字以完全匹配的方式查询并找到商品ID。 虽然建词库表也是不错的解决方法,但是还要拆解存库建索引,相对比较麻烦。所以也是在网上查询了解到了elast..._elasticsearch全站搜索优化技术方案

基于无监督退化表示学习的 Blind SR | 环境搭建 | 测试简记 |【CVPR2021、附源码】-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏4次。基于无监督退化表示学习的 Blind SR | 环境搭建 | 测试简记 、附源码、完美运行_退化表示学习

在jupyter中引用import jupyter的.ipynb文件的四种方法_jupyter import-程序员宅基地

文章浏览阅读1.6w次,点赞21次,收藏79次。在jupyter中import jupyter的.ipynb文件用jupyter时,保存的文件后缀是.ipynb。直接import是不能使用的。直接导入会报错为:没有该模块。解决的方法有两种:1.将.ipynb文件转化为.py文件。但是在后期的使用时会造成一定的不便。因为习惯使用.ipynb进行编程,每次修改之后都必须重新进行文件的转化,特别是引用文件比较多时,对文件的管理以及后续的编程带来很大的不便。2.在jupyter中直接引用.ipynb文件,import的.ipynb文件修改之后,可以直接_jupyter import

Java基础Object的equals方法和“==”在何时使用_object的比较,就是“==”和equals的使用场景?-程序员宅基地

文章浏览阅读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..._脚本语言

【Django】MD5加密,make_password,check_password_django 生成的makepassword 能被解秘么-程序员宅基地

文章浏览阅读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 能被解秘么

Flutter应用使用插件报错问题_failed to handle method call-程序员宅基地

文章浏览阅读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

redis三种集群模式_redis 6379 6380-程序员宅基地

文章浏览阅读1.3k次。一、单机模式就是安装一个redis,启动起来,业务调用即可有什么问题?单机故障 容量瓶颈 QPS瓶颈只适合一些性能不高、可靠性不用太强的业务系统。二、主从复制模式可以解决单机模式的单机故障问题外,还有好处:读写分离 容灾备份假设我们要搭建1主2从,分别是6379、6380、6381端口6379主节点redis.conf配置文件不需要动,只把6380、6381两个从节点redis.conf配置文件增加一行(配置主节点的ip端口)slaveof 127.0.0_redis 6379 6380

ACM论文投稿时常用的几项操作_settopmatter-程序员宅基地

文章浏览阅读2.3w次,点赞36次,收藏102次。一、我们发现ACM的latex模板中会有ACM Reference Format信息,如下:投稿时,可以使用如下的方法将其去掉,在 \documentclass[sigconf]{acmart}下面直接添加这几行即可去掉\settopmatter{printacmref=false} % Removes citation information below abstract\re..._settopmatter

ios内嵌H5滑动不流畅、白屏解决方案_ios h5 卡-程序员宅基地

文章浏览阅读2.5k次。1.最外层div加上 -webkit-overflow-scrolling属性,解决ios滑动不流畅.div {-webkit-overflow-scrolling: touch;}2.外层div里面的所有元素添加 -webkit-transform: translateZ(0px)属性,解决滑动时出现的空白(即图片不显示).div > * {-webkit-transform:..._ios h5 卡