CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_虚拟化

KVM虚拟化


之前有介绍KVM,可以参考历史文章

​1、CentOS6系统下部署KVM虚拟化​​​

​2、CentOS6 KVM虚拟化环境中克隆虚拟机操作说明​

​​​3、KVM虚拟机Bridge和NAT网络连接模式介绍 ​​​​​

​4、CentOS7环境下使用Cockpit创建KVM虚拟机​


下面介绍CentOS7 KVM环境下制作CentOS7 qcow2格式镜像

如果是CentOS7 KVM环境是VMware虚拟机,需要CPU开启虚拟化

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_centos_02

1、配置yum镜像源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum makecache

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_linux_03

2、安装kvm qemu-img libvirt kvm虚拟化所需环境组件

yum -y install qemu-kvm  qemu-img kvm qemu-kvm-tools libvirt  bridge-utils

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_虚拟化_04

另外还需要安装virt-*

yum install virt-*

截图略

3、启动libvirtd

systemctl enable libvirtd
systemctl start libvirtd
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_linux_05

4、上传原版CentOS ISO镜像到/data目录

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_linux_06

5、先创建qcow2镜像文件

qemu-img create -f qcow2 /data/CentOS7_YF.qcow2 100G

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_虚拟化_07

6、创建KVM虚拟机

virt-install --name CentOS7_YF --ram 4096 --vcpus 4 --os-type linux --os-variant rhel7 --arch=x86_64 --network network=default,model=virtio --disk path=/data/CentOS7_YF.qcow2,format=qcow2 --location /data/CentOS-7-x86_64-DVD-1908.iso --console pty,target_type=serial   --graphics vnc,listen=0.0.0.0,port=7788

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_centos_08

使用UltraVNC工具连接宿主机的VNC:7788端口,并完成系统的安装,就不详细介绍安装步骤了 

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_centos_09

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_linux_10

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_虚拟化_11

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_linux_12

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_centos_13

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_linux_14

7、等待虚拟机安装完后,登录查看相关IP磁盘分区信息

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_centos_15

8、ssh登录虚拟机进行定制、优化等等

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum install -y acpid net-tools
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth*
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_linux_16

9、定制化之后关机

history -c
poweroff

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_linux_17

10、virt-sysprep -d 清理机器信息

virt-syprep -d CentOS7_YF

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_虚拟化_18

11、virt-sparsify compress压缩镜像

virt-sparsify时可能因为默认的/tmp空间不足,会提示tmp不足,可以提前定义好tmp目录

mkdir /data/tmp
chmod 1777 /data/tmp/
export TEMP=/data/tmp
export TMPDIR=/data/tmp
echo 'export TEMP=/data/tmp' >> /etc/profile
echo 'export TMPDIR=/data/tmp' >> /etc/profile
source /etc/profile
virt-sparsify --compress /data/CentOS7_YF.qcow2 /data/CentOS7_YF_allinone.qcow2

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_centos_19

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_centos_20

可以看到压缩后的allinone.qcow2文件只有763M左右

12、测试镜像文件

virt-install --virt-type kvm --name YuanFan_DIY --ram 4096 --vcpus=4 \
--import \
--disk path=/data/CentOS7_YF_allinone.qcow2,format=qcow2 \
--network network=default,model=virtio \
--graphics vnc,listen=0.0.0.0,port=7799 \
--os-type=linux

CentOS7 KVM环境下制作CentOS7 qcow2格式镜像_虚拟化_21

vnc连接登录后,qcow2镜像正常可用,那么qcow2镜像就制作完成了