Linux中如何对虚拟机管理和恢复
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中如何对虚拟机管理和恢复相关推荐
- linux中进程的用户管理
linux中进程的用户管理 每个进程都拥有真实的用户.组(uid.gid),有效的用户.组(euid.egid),保存的设置用户.组(suid.sgid),还有linux中专门用于文件存储存取的用户. ...
- linux用户密码管理,Linux_详解Linux中的用户密码管理命令passwd和change,passwd
修改用户密码参数
nbsp - phpStudy...
详解Linux中的用户密码管理命令passwd和change passwd 修改用户密码 参数 -k 保持未过期身份验证令牌 -l 关闭账号密码.效果相当于usermod -L,只有root才有权使用 ...
- Linux中LVM(逻辑卷管理)的使用
Linux 中我们使用fdisk命令划分好的分区就不能随意的改变,如果不够用的话不可能说把硬盘上的所有数据拷贝后再重新分区,这样可能会导致数据损坏.而在linux中LVM(逻辑卷管理)就可以实现动态的 ...
- 笔记本虚拟机 安装红旗linux x86,在红旗linux中安装vmware虚拟机
在红旗linux中安装vmware虚拟机 为了逐渐适应在linux下使用电脑的习惯,可以说试着在linux下进行相应的操作,想要离开windows,但就像有人形容微软是让人又爱又恨,已经习惯了在win ...
- linux中安装Windows虚拟机(使用VMware player)
文章目录 一.下载和安装VMware 二.启动和配置VMware player 2.1 在Linux主机上安装VMware player 2.2 启动VMplayer 2.3 从官方下载Windows ...
- linux系统交换空间,Linux中如何使用和管理交换空间
给计算机配置交换空间可以充分利用系统,在物理内存被充满时使用,那么Linux下要如何使用Linux交换空间呢?Linux交换空间又要如何管理呢?下面小编就给大家介绍下Linux下使用交换空间的方法,一 ...
- linux中线程的挂起与恢复(进程暂停)
今 天 在网上查了一下 linux中对进程的挂起与恢复的实现,相关资料少的可怜,大部分都是粘贴复制.也没有完整详细的代码.故自己整理了一下 程序流程为:主线程创建子线程(当前子线程状态为stop停止状 ...
- Linux中用户和权限管理
Linux是一个多用户多任务操作系统,多用户是指可以多人同时使用系统资源:,多用户是指多个用户可以在同一时间内 登录同一个系统执行各自不同的任务,而互不影响.因此为了保证系统安全性和各用户的隐私, ...
- linux 内核页表 tlb,Linux中的mips64 tlb管理
关于tlb的描述可参考mips run2以及mips64官方手册. tlb条目:tlb entry 寄存器:entryHi, entryLo0, entryLo1, mask, index, wire ...
最新文章
- tomcat启动出现闪退_(转)Tomcat 启动后 “闪退”
- Atitit.css 规范 bem 项目中 CSS 的组织和管理
- bootstrap-关闭按钮
- 【CyberSecurityLearning 34】Linux脚本编写(Shell脚本)
- EDAS微服务应用同城容灾最佳实践
- 有序数组中查找第一个比target大的数
- devops_将DevOps带到教室
- php 压入元素,php 数组增加元素的方法 array_push 和 array_merge
- 技术面试者的技术深度和广度
- vue之神奇的动态按钮
- member selection 运算符是什么
- 从master-worker模型看团队管理
- java random 种子数_java中Random类带种子与不带的区别,详细解析
- 医疗人工智能与未来医院信息化建设
- 什么是ActiveX控件?
- 故障监测 检测 和 诊断
- Linux学习之——/etc/sysconfig目录
- mac 备份文件 太大 时间机器_如何在Mac OS X中设置时间机器备份 | MOS86
- RabbitMq死信队列介绍
- 常用激活函数总结(深度学习)