当前欧拉系统和centos的大多数镜像都可以在官方镜像网站直接下载。
欧拉系统镜像地址(以openEuler-20.03-LTS-SP1为例):
https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS-SP1/virtual_machine_img/
有些镜像可能只有ISO但是没有qcow2格式的虚拟机镜像,或者我们在某些情况下需要定制化镜像(譬如要预装某些服务和软件),这种情况下需要我们自己制作镜像,本文以鲲鹏服务器(arm架构)为例为大家介绍制作虚拟机镜像的步骤。
1,环境准备
虚拟机镜像的制作在物理机上进行,需安装libvirt和qemu。除此之外还需要一些能修改镜像的工具和虚拟化的辅助软件。
建议在openEuler操作系统上制作镜像,在安装虚拟化软件时会方便很多。
以openEuler系统为例,执行以下命令安装虚拟化软件:
yum install libstdc++
yum install qemu qemu* libvirt virt-install guestfish libguestfs-tools #如果提示没有guestfish就不要这个了
yum upgrade libguestfs-tools
执行以下命令进行验证:
virsh version
虚拟机在安装软件时需要联网,可以以NAT方式连接。
执行以下命令开启ipv4转发功能:
sysctl -w net.ipv4.ip_forward=1
使用NAT方式可以使KVM的虚拟机快速联网,在虚拟机启动后修改网卡文件中的ONBOOT=yes,然后执行service network restart即可联网,同时虚拟机和宿主机可以互相ping通。
2,制作镜像
本文以制作centos7.6的虚拟机镜像为例。
执行以下命令创建镜像文件:
qemu-img create -f qcow2 /root/CentOS7.6.qcow2 40G
创建虚拟机并安装操作系统:
virt-install --name centos76 --ram 4096 --vcpus 4 --os-type=linux --disk path=/root/CentOS7.6.qcow2,format=qcow2,device=disk,bus=virtio --network network=default,model=virtio --cdrom /root/CentOS-7-aarch64-Everything-1810.iso --graphics vnc,listen=0.0.0.0,port=7788
这条命令执行以后会等待操作系统安装完成,需要使用vnc连接进入到虚拟机进行操作系统安装。
以mobalxterm为例,可以通过vnc界面进入:
接下来在VNC界面中输入服务器端口号和上面命令中配置的端口号7788即可进入安装操作系统界面:
接下来开始安装操作系统(如果屏幕不适配,可以最大化mobalxterm窗口再还原刷新):

选择最小化安装,并勾选下图所示的选项:
磁盘分区选择手动分区并选择Standard Partition:

磁盘分区只需要两个分区就行了,注意这里磁盘驱动为virtio,所以磁盘名为vda:

最后开始安装操作系统并设置root密码,等待安装完成会,点击reboot,退出vnc:
Reboot之后通过virsh console centos76进入虚拟机:
如果ip没有自动获取到,修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,将其中的ONBOOT修改为yes:

执行以下命令,重启network服务,就可以访问外网了:
service network restart
接下来在虚拟机内执行以下命令:
yum install -y acpid net-tools
chkconfig acpid on
yum install NetworkManager
chkconfig NetworkManager on
yum install cloud-init
echo "NOZEROCONF=yes" >> /etc/sysconfig/network
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
vi /etc/ssh/sshd_config #修改以下两项
PermitRootLogin yes
PasswordAuthentication yes
安装好对应的服务之后,执行以下命令关闭虚拟机:
poweroff
到这里虚拟机的镜像已经初步制作好了(存放位置为/root/CentOS7.6.qcow2,这个镜像已经可以用了),接下来进行一些收尾工作。
执行以下命令清理虚拟机内的临时数据:
virt-sysprep -d centos76
执行以下命令压缩镜像,减少镜像体积:
virt-sparsify --compress /root/CentOS7.6.qcow2 /root/centos7.6.qcow2
压缩前的镜像大小为1.6G左右,压缩后的镜像大小仅有600多M。
将centos7.6.qcow2上传到openstack,就可以创建虚拟机进行验证了。
更多镜像制作相关的原理,以及windows镜像的制作,可以参考以下链接:
https://blog.csdn.net/jcxch/article/details/50560143
当前欧拉系统和centos的大多数镜像都可以在官方镜像网站直接下载。
欧拉系统镜像地址(以openEuler-20.03-LTS-SP1为例):
https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS-SP1/virtual_machine_img/
有些镜像可能只有ISO但是没有qcow2格式的虚拟机镜像,或者我们在某些情况下需要定制化镜像(譬如要预装某些服务和软件),这种情况下需要我们自己制作镜像,本文以鲲鹏服务器(arm架构)为例为大家介绍制作虚拟机镜像的步骤。
1,环境准备
虚拟机镜像的制作在物理机上进行,需安装libvirt和qemu。除此之外还需要一些能修改镜像的工具和虚拟化的辅助软件。
建议在openEuler操作系统上制作镜像,在安装虚拟化软件时会方便很多。
以openEuler系统为例,执行以下命令安装虚拟化软件:
yum install libstdc++
yum install qemu qemu* libvirt virt-install guestfish libguestfs-tools #如果提示没有guestfish就不要这个了
yum upgrade libguestfs-tools
执行以下命令进行验证:
virsh version
虚拟机在安装软件时需要联网,可以以NAT方式连接。
执行以下命令开启ipv4转发功能:
sysctl -w net.ipv4.ip_forward=1
使用NAT方式可以使KVM的虚拟机快速联网,在虚拟机启动后修改网卡文件中的ONBOOT=yes,然后执行service network restart即可联网,同时虚拟机和宿主机可以互相ping通。
2,制作镜像
本文以制作centos7.6的虚拟机镜像为例。
执行以下命令创建镜像文件:
qemu-img create -f qcow2 /root/CentOS7.6.qcow2 40G
创建虚拟机并安装操作系统:
virt-install --name centos76 --ram 4096 --vcpus 4 --os-type=linux --disk path=/root/CentOS7.6.qcow2,format=qcow2,device=disk,bus=virtio --network network=default,model=virtio --cdrom /root/CentOS-7-aarch64-Everything-1810.iso --graphics vnc,listen=0.0.0.0,port=7788
这条命令执行以后会等待操作系统安装完成,需要使用vnc连接进入到虚拟机进行操作系统安装。
以mobalxterm为例,可以通过vnc界面进入:
接下来在VNC界面中输入服务器端口号和上面命令中配置的端口号7788即可进入安装操作系统界面:
接下来开始安装操作系统(如果屏幕不适配,可以最大化mobalxterm窗口再还原刷新):

选择最小化安装,并勾选下图所示的选项:
磁盘分区选择手动分区并选择Standard Partition:

磁盘分区只需要两个分区就行了,注意这里磁盘驱动为virtio,所以磁盘名为vda:

最后开始安装操作系统并设置root密码,等待安装完成会,点击reboot,退出vnc:
Reboot之后通过virsh console centos76进入虚拟机:
如果ip没有自动获取到,修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,将其中的ONBOOT修改为yes:

执行以下命令,重启network服务,就可以访问外网了:
service network restart
接下来在虚拟机内执行以下命令:
yum install -y acpid net-tools
chkconfig acpid on
yum install NetworkManager
chkconfig NetworkManager on
yum install cloud-init
echo "NOZEROCONF=yes" >> /etc/sysconfig/network
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
vi /etc/ssh/sshd_config #修改以下两项
PermitRootLogin yes
PasswordAuthentication yes
安装好对应的服务之后,执行以下命令关闭虚拟机:
poweroff
到这里虚拟机的镜像已经初步制作好了(存放位置为/root/CentOS7.6.qcow2,这个镜像已经可以用了),接下来进行一些收尾工作。
执行以下命令清理虚拟机内的临时数据:
virt-sysprep -d centos76
执行以下命令压缩镜像,减少镜像体积:
virt-sparsify --compress /root/CentOS7.6.qcow2 /root/centos7.6.qcow2
压缩前的镜像大小为1.6G左右,压缩后的镜像大小仅有600多M。
将centos7.6.qcow2上传到openstack,就可以创建虚拟机进行验证了。
更多镜像制作相关的原理,以及windows镜像的制作,可以参考以下链接:
https://blog.csdn.net/jcxch/article/details/50560143