iTech / Linux · 2020年11月17日

Windows 10 Openstack 镜像制作

转载自Aiden郭祥跃 ,在此表示感谢!写得很好,通俗易懂,指导我成功制作了镜像

https://www.cnblogs.com/guoxiangyue/p/9188316.html

****************************************************************************

环境:Openstack镜像制作

VMware Workstation Pro 10 下虚拟机,

操作系统,CentOS7.2版

驱动文件:virtio-win-0.1.141.iso ****************************************************************************

一、环境准备

1、在VMware Workstation Pro 10上测试,采用CentOS7.0作为宿主机。要求有图形界面。

2、VMware Workstation设置:

选择这个选项后,安装的速度会提高。

3、如果Virtual Machine Management环境不具备,安装以下包

 ### 安装kvm内核

# yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64

 ####安装virt管理工具

# yum install libvirt.x86_64 libvirt-cim.x86_64

 # yum install libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64

 安装图形界面管理虚拟机(对于远程的被管理主机,可以不安装)

#yum install virt-manager

 yum install guestfish libguestfs-tools

 检查服务状态、启动服务

# service libvirtd status

# service libvirtd start

二、制作镜像

1、在系统工具中打开虚拟系统管理器

2、点击该按钮创建虚拟机

3、选择本地安装介质

4、选择virtio-win-0.1.141.iso驱动文件作为ISO image

5、系统的类型和版本选择win10

6、网络连接就默认。

7、选择虚拟机的配置,(这里的配置仅影响马上要新建的虚拟机,之后做成镜像上传后新建云虚拟机和他无关)一般2G内存 ,2个cpu够用了

8、选择存放虚拟机的地方。Virt-manager给的默认位置是/var/lib/libvirt/images下。

点击“加号”创建新的存储卷

9、创建虚拟机文件的名字和容器格式,(一定要选择qcow2格式)空间20G,点击完成

选择刚创建的存储卷,点击“选择卷”

10、自定义虚拟机的名字,勾选安装前自定义配置,选择网络NAT

11、选择增加硬件,选择win10系统iso镜像的路径(注意之前一开始新建虚拟机用的iso镜像是驱动镜像)

12、设备类型选择CDROW设备,总线类型选择IDE

13、网卡(NIC)部分,网络源NAT,设备型号选择virtio,点击应用

14、IDE磁盘,磁盘总线选择VirtIO,存储格式qcow2,点击应用

15、调整引导选项优先级,把系统镜像的cdrow调到最上面。点击应用。

16、记得前面配置硬件的对每个硬件的操作完成都要点击“应用”,检查配置无误后,点击左上角“开始安装”,开始装虚拟机系统

17、进入安装系统界面,一路点击“下一步”

18、这里系统没有发现磁盘,因为之前磁盘选的是virtio格式,而windows并不自带虚拟磁盘驱动,所以前面所述的virtio-win-0.1.141.iso文件派上用场。点击“加载驱动程序”

19、点击“浏览”

20、选择驱动安装位置,CD驱动器 –> viostor –> W8.1 –> amd64 (64位系统对应的是amd64,32位系统对应x86)

21、安装驱动 “Red HatVirtIO SCSI …”(磁盘驱动)

22、发现驱动装好,磁盘被正确识别。点击“下一步”

23、系统开始安装

24、设置用户名、密码等一系列系统信息

25、安装完系统后,由于网卡驱动还没装,所以不能上网。右键计算机->属性->进入设备管理器。选择带有黄色警告标示的网卡(图中名为“以太网控制器”)。右键属性,选择“更新驱动程序”。

25、驱动成功安装,看到虚拟机能联网就大功告成,按照相同方法安装剩余的两个PCI驱动

26、驱动安装完成,镜像制作完成,关机进行镜像文件的压缩处理

三、镜像处理

(文件所显示的大小,与实际的占用空间不一致,实际占用小,但是拷贝到windows中占用空间为文件大小)

压缩镜像

用图形界面的虚拟机管理器制作的Windows镜像,文件大小即为新建虚拟机定义的磁盘大小,如果要c盘40G的话,生成的镜像文件就是40G大小,需要压缩后再上传。40G大小压缩后3G。

#virt-sparsify –compress –convert qcow2 /var/lib/libvirt/images/ Windows10.qcow2 /var/lib/libvirt/images/ Windows10.qcow2

(该命令包含在包里guestfish libguestfs-tools)

上面命令压缩未成功,使用下面命令压缩

qemu-img convert -c -O qcow2 /var/lib/libvirt/images/win10.qcow2 /var/lib/libvirt/images/Windows10.qcow2

附录:

改变镜像文件大小

1、qemu-img resize命令

这个命令需要注意数据的备份,下面是转化的例子。

(该命令增加了D盘,并未将C盘增大)

# qemu-img resize Windows10. qcow2 +5GB

查询调整情况

# qemu-img info Windows10. qcow2

2、virt-resize命令

(通过该命令实现 镜像文件大小的调整,注意:针对根分区或c盘分区的扩大,解决不同C盘大小,多次安装操作系统做镜像的问题;)

查看分区情况(也许和你想的不一样)

[root@localhost ~]# virt-filesystems –long -h –all -a /root/ Windows10-imange.qcow2

Name       Type        VFS   Label         MBR  Size  Parent

/dev/sda1  filesystem  ntfs  系统保留  –    100M  –

/dev/sda2  filesystem  ntfs  –             –    20G   –

/dev/sda1  partition   –     –             07   100M  /dev/sda

/dev/sda2  partition   –     –             07   20G   /dev/sda

/dev/sda   device      –     –             –    20G   –

把qcow2格式的磁盘镜像转成raw

qemu-img convert -f qcow2 -O raw Windows10-imange.qcow2 Windows10-imange.raw

利用truncate创建一个新的文件,大小比centos2.raw大5G

truncate -r Windows10imange.raw Windows10imange30g.raw

truncate -s +5G Windows10imange30g.raw

开始调整

virt-resize –expand /dev/sda2 Windows10-imange.raw Windows10imange30g.raw

virt-resize –expand /dev/sda2 Windows10-imange.raw Windows10imange30g.raw

调整完后转回qcow2格式

qemu-img convert -f raw -O qcow2 Windows10-imange30g.raw Windows10-imange30g.qcow2

系统管理中c盘增大了,但资源管理器中c盘没变。

登录windows 10 系统;

Cmd:>chkdsk c:/f

转换文件格式

—Convert disk image to disk image

#virt-v2v -i disk disk.img -o local -os /var/tmp