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

2020-05-14 15:37:04 浏览数 (1)

KVM虚拟化

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

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

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

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

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

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

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

1、配置yum镜像源

代码语言:javascript复制
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

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

代码语言:javascript复制
yum -y install qemu-kvm  qemu-img kvm qemu-kvm-tools libvirt  bridge-utils

另外还需要安装virt-*

代码语言:javascript复制
yum install virt-*

截图略

3、启动libvirtd

代码语言:javascript复制
systemctl enable libvirtd
systemctl start libvirtd
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p

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

5、先创建qcow2镜像文件

代码语言:javascript复制
qemu-img create -f qcow2 /data/CentOS7_YF.qcow2 100G

6、创建KVM虚拟机

代码语言:javascript复制
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

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

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

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

代码语言:javascript复制
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

9、定制化之后关机

代码语言:javascript复制
history -c
poweroff

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

代码语言:javascript复制
virt-syprep -d CentOS7_YF

11、virt-sparsify compress压缩镜像

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

代码语言:javascript复制
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
代码语言:javascript复制
virt-sparsify --compress /data/CentOS7_YF.qcow2 /data/CentOS7_YF_allinone.qcow2

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

12、测试镜像文件

代码语言:javascript复制
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

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

0 人点赞