//如果是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, 如果分配失败则要检查宿主机的桥接网卡配置
这里选整块硬盘, 以后不用再加多块 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