最近学习openstack相关知识,在制作镜像中遇到一些问题,遂记录下来以免后面忘记。
基于内核的虚拟机 Kernel-based Virtual Machine(KVM)是一种内建于 Linux® 中的开源虚拟化技术。具体而言,KVM 可帮助您将 Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。
0x02 准备
为方便镜像制作在本地vm虚拟机安装虚拟化环境,在Centos7系统下使用virt-install安装镜像系统,安装kvm qemu-img libvirt kvm虚拟化所需环境组件
yum -y install qemu-kvm qemu-img kvm qemu-kvm-tools libvirt bridge-utils
yum install virt-* -y
yum install -y virtio-win //安装virtio驱动
由于virtio-win驱动程序无法安装,直接官网下载rpm地址
https://fedorapeople.org/groups/virt/virtio-win/repo/
下载并上传centos安装
rmp -i virtio-win-0.1.171-1.noarch.rpm
0x03 安装
- 上传系统安装镜像
新建文件夹专门存储系统iso镜像
- 使用virt-install安装系统
新建10G硬盘
qemu-img create -f qcow2 winxp.qcow2 10G
安装win-xp系统
virt-install --virt-type kvm --name winxp --vcpus=1 --ram 512 --boot hd --os-type=windows --os-variant=winxp --disk path=/var/lib/libvirt/images/winxp.qcow2,format=qcow2,bus=virtio,cache=writeback --disk path=/usr/share/virtio-win/virtio-win-0.1.171_servers_x86.vfd,device=floppy --network network=default,model=virtio --cdrom=/iso/cn_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso --graphics vnc,listen=0.0.0.0 --noautoconsole
到virt-manager控制台安装系统
在安装过程中安装第三方virtio-win驱动
熟悉的蓝天白云
- 安装其他驱动程序
安装网卡、显卡驱动
右键→更新驱动程序
系统安装成功
0x04 其他扩展
- 关于镜像压缩
有时候由于qcow2格式镜像过大,需要压缩qcow2镜像大小。 Windows镜像压缩:
启动虚拟机,下载压缩工具
https://technet.microsoft.com/en-us/sysinternals/bb897443.aspx
运行qcow2系统(linux系统可以在virt-manager下运行),将sdelete.exe拷贝之系统,直接执行命令,其中C:是指盘符
完成后,直接关闭系统。
mv winxp.qcow2 winxp.qcow2_backup
qemu-img convert -O qcow2 winxp.qcow2_backup winxp.qcow2
Linux镜像压缩:
安装相应软件
第一种方法:
yum install libguestfs-winsupport -y
yum install '*guestf*' -y
运行qcow2系统(linux系统可以在virt-manager下运行),将sdelete.exe拷贝之系统,直接执行命令,其中C:是指盘符
完成后,直接关闭系统。
mv winxp.qcow2 winxp.qcow2_backup
qemu-img convert -O qcow2 winxp.qcow2_backup winxp.qcow2
压缩镜像
virt-sparsify -x /var/lib/libvirt/images/winxp.qcow2 winxp1.qcow2
virt-sparsify --compress --convert qcow2 Windows10.qcow2 Windows10.1.qcow2
第二种方法:
启动惊醒,创建一个文件
cd /
touch tmpfile
dd if=/dev/zero of=/tempfile
将0填充到创建的tmpfile中,直到0占满整个空间,需要停止所有进
rm -f /tempfile
停止虚拟机
qemu-img convert -c -O qcow2 vm500G.qcow2 vm500G-mini.qcow2
- 关于qcow2与vmdk格式互转蓝屏问题
首先开机修改注册表以防止蓝屏
https://github.com/jakobadam/kvm-mergeide/archive/master.zip
解压压缩包将mergeide.reg导入注册表
在windows中直接双击reg文件导入
在linux中:
wget https://github.com/jakobadam/kvm-mergeide/archive/master.zip
yum install qemu-img *libguestfs* -y
virt-win-reg --merge XP mergeide.reg
PS:还有很多坑慢慢填吧!!!