创建KVM虚拟机公共镜像
创始人
2024-02-13 17:32:50
0

手动配置kvm教程:
https://blog.csdn.net/nvd11/article/details/127435990

但是毕竟每次创建新的虚拟机时,还要装一次系统比较麻烦。 打算做个公共的ubuntu镜像出来。

目标:

NoDESCcpu数内存
第一步创建虚拟机vm128g
第二步创建虚拟机镜像文件 ub_2204_com.qcow228g
第三步利用 第二步的镜像文件 创建虚拟机vm214g



第一步, 创建虚拟机vm1



1. 1 创建虚拟硬盘磁盘文件vm1.qcow2

gateman@MoreFine-S500:/link_home/vmdisks$ qemu-img create -f qcow2 vm1.qcow2 50G
Formatting 'vm1.qcow2', fmt=qcow2 size=53687091200 cluster_size=65536 lazy_refcounts=off refcount_bits=16

由于qcow2 文件大小会动态增长, 初始只有几百kb, 设大点没关系



1.2 准备vm1.xml

  //如果是Xen,则type=‘xen’vm1 //虚拟机名称,同一物理机唯一034a0980-b118-437d-9612-7fede1ccc738  //同一物理机唯一,可用uuidgen生成80960008096000  //memory这两个值最好设成一样2            //虚拟机可使用的cpu个数,查看物理机可用CPU个数:cat /proc/cpuinfo |grep processor | wc -lhvm //arch指出系统架构类型,machine 则是机器类型,查看机器类型:qemu-system-x86_64 -M ?  //启动介质,第一次需要装系统可以选择cdrom光盘启动  //表示启动按F12进入启动菜单  //Advanced Configuration and Power Interface,高级配置与电源接口  //Advanced Programmable Interrupt Controller,高级可编程中断控制器   //Physical Address Extension,物理地址扩展  //虚拟机时钟设置,这里表示本地本机时间destroy  //突发事件动作restartrestart   //设备配置//usr/bin/kvm //如果是Xen则是/usr/lib/xen/binqemu-dm //硬盘  // if windows must ide   else virtio//光盘/* 利用Linux网桥连接网络 */  //配置的网桥网卡名称     //同一网桥下相同      //别名,同一网桥下相同  //配置vnc,windows下可以使用vncviewer登录,获取vnc端口号:virsh vncdisplay vm0

1.3 启动vm1

virsh define vm1.xml
virsh start vm1

1.4 安装 系统

这里当然选English啦
在这里插入图片描述

这里选最小安装
在这里插入图片描述

检查网卡能不能被正确分配同网段的ip, 如果分配失败则要检查宿主机的桥接网卡配置
在这里插入图片描述

这里选整块硬盘, 以后不用再加多块
![在这里插入图片描述](https://img-blog.csdnimg.cn/e74643d1e3ea4ad790a95042b7c48089.png
ssh 服务怎么可以没有
在这里插入图片描述


1.5 配置系统

安装完后, 还是需要配置系统的



1.5.1 安装vi

最小镜像连vi都没有…

sudo apt-get install vim



1.5.2 设置静态dhcp ip

方便以后管理, 当然每次创建虚拟机都要改下1个新的ip

gateman@admeuc-vm1:/etc/netplan$ cat 00-installer-config.yaml 
# This is the network config written by 'subiquity'
network:ethernets:ens3:dhcp4: falseaddresses: [10.0.1.156/24] # ip地址routes:- to: defaultvia: 10.0.1.1           # 路由其地址nameservers:addresses: [119.29.29.29, 8.8.8.8]version: 2
sudo netplan apply



1.5.3 换成网易镜像源
gateman@admeuc-vm1:~$ cat /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
gateman@admeuc-vm1:~$ sudo apt-get update

到这里已经配置好了, 关机
在这里插入图片描述


第二步, 创建虚拟机镜像



2.1 进入虚拟机vmdisk 目录

复制一份新的qcow2 虚拟磁盘文件

gateman@MoreFine-S500:/link_home/vmdisks$ cp vm1.qcow2 ub_2204.qcow2
gateman@MoreFine-S500:/link_home/vmdisks$ ls -lh
total 21G
-rw-r--r-- 1 gateman      gateman 6.9G Nov 25 02:00 ub_2204.qcow2
-rw-r--r-- 1 libvirt-qemu kvm      20G Nov 25 02:00 vm0.img
-rw-r--r-- 1 root         root    6.9G Nov 25 01:57 vm1.qcow2
gateman@MoreFine-S500:/link_home/vmdisks$ qemu-img info ub_2204.qcow2 
image: ub_2204.qcow2
file format: qcow2
virtual size: 50 GiB (53687091200 bytes)
disk size: 6.86 GiB
cluster_size: 65536
Format specific information:compat: 1.1lazy refcounts: falserefcount bits: 16corrupt: false

可见最小化安装都用了6.9G, 怎么跟centos 比干净。。



2.2 压缩镜像

注意这个命令需要读取一些内核信息,所以必须用root来执行

gateman@MoreFine-S500:/link_home/vmdisks$ sudo virt-sparsify --compress ub_2204.qcow2 ub_2204_com.qcow2
[   0.0] Create overlay file in /tmp to protect source disk
[   0.0] Examine source disk
[   5.5] Fill free space in /dev/sda2 with zero100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
[  33.2] Copy to destination and make sparse[ 224.3] Sparsify operation completed with no errors.
virt-sparsify: Before deleting the old disk, carefully check that the 
target disk boots and works correctly.gateman@MoreFine-S500:/link_home/vmdisks$ ls -lh
total 22G
-rw-r--r-- 1 root         root    1.1G Nov 25 02:20 ub_2204_com.qcow2
-rw-r--r-- 1 gateman      gateman 6.9G Nov 25 02:00 ub_2204.qcow2
-rw-r--r-- 1 libvirt-qemu kvm      20G Nov 25 02:21 vm0.img
-rw-r--r-- 1 root         root    6.9G Nov 25 01:57 vm1.qcow2
gateman@MoreFine-S500:/link_home/vmdisks$ 

压缩后我们得到1个1G多的镜像文件, 就是我们想要的所谓干净的系统镜像了。



第三步, 基于镜像创建虚拟机vm2



3.1 基于镜像创建1个新的硬盘文件

cp ub_2204_com.qcow2 vm2.qcow2



3.2 基于vm1.xml 创建 vm2.xml

同样, 我们需要
改内存
改名
改uuid
改硬盘文件位置
注释掉光驱启动项
改掉mac

gateman@MoreFine-S500:/link_home/kvmxmls$ virsh define vm2.xml
Domain vm2 defined from vm2.xmlgateman@MoreFine-S500:/link_home/kvmxmls$ cat vm2.xml
  //如果是Xen,则type=‘xen’vm2 //虚拟机名称,同一物理机唯一2d3be0e2-0441-49e8-a9e0-5147c8c2ec2a  //同一物理机唯一,可用uuidgen生成40960004096000  //memory这两个值最好设成一样1            //虚拟机可使用的cpu个数,查看物理机可用CPU个数:cat /proc/cpuinfo |grep processor | wc -lhvm //arch指出系统架构类型,machine 则是机器类型,查看机器类型:qemu-system-x86_64 -M ?  //表示启动按F12进入启动菜单  //Advanced Configuration and Power Interface,高级配置与电源接口  //Advanced Programmable Interrupt Controller,高级可编程中断控制器   //Physical Address Extension,物理地址扩展  //虚拟机时钟设置,这里表示本地本机时间destroy  //突发事件动作restartrestart   //设备配置//usr/bin/kvm //如果是Xen则是/usr/lib/xen/binqemu-dm //硬盘  // if windows must ide   else virtio//光盘/* 利用Linux网桥连接网络 */  //配置的网桥网卡名称     //同一网桥下相同      //别名,同一网桥下相同  //配置vnc,windows下可以使用vncviewer登录,获取vnc端口号:virsh vncdisplay vm0

3.3 启动vm2,改掉dhcp的网卡地址

在这里插入图片描述

3.4 改掉hostname

sudo hostnamectl set-hostname amdeuc-vm2

到这里大功告成

呵呵

其实上面3步无非是为了快速创建ubuntu虚拟机, 其实可以用1个命令代替

例如我想基于vm2 创建 同样的虚拟机vm3

virt-clone --original=vm2 \--name=vm3 \--file=/link_home/vmdisks/vm3.qcow2

只不过还是要自己去改掉hostname和 静态ip

至于为什么上面搞这么复杂。。 只是因为创建的公共镜像可以share~

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...