制作HYPER-V的镜像还是很简单的,基本自动化。

参考资料看Cloudbase网站的blog文章(https://cloudbase.it/create-windows-openstack-p_w_picpaths/)基本没用。真正有用的在这里:https://github.com/cloudbase/windows-openstack-imaging-tools。

基本步骤汇总如下(制作镜像的主机是windows server 2012 r2,安装完HYPER-V的,全是在powershell中运行):

git clone https://github.com/cloudbase/windows-openstack-imaging-tools.git
pushd windows-openstack-imaging-tools
Import-Module .\WinImageBuilder.psm1
# The Windows p_w_picpath file path that will be generated
$windowsImagePath = "C:\p_w_picpaths\my-windows-p_w_picpath.vhdx"
# The wim file path is the installation p_w_picpath on the Windows ISO
# 这一步需要把windows iso文件展开,把其中sources目录下的install.wim文件拷出来
$wimFilePath = "D:\Sources\install.wim"
# Every Windows ISO can contain multiple Windows flavors like Core, Standard, Datacenter
# Usually, the first p_w_picpath version is the Core one
$p_w_picpath = (Get-WimFileImagesInfo -WimFilePath $wimFilePath)[0]
#这个文件还是从国内下吧,没有×××很慢
$virtIOISOPath = "C:\p_w_picpaths\virtio.iso"
# Note(avladu): Do not use stable 0.1.126 version because of this bug https://github.com/crobinso/virtio-win-pkg-scripts/issues/10$virtIODownloadLink = "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.133-2/virtio-win.iso"
# Download the VirtIO drivers ISO from Fedora
# 如果单独下载完了,这一步可以省略
(New-Object System.Net.WebClient).DownloadFile($virtIODownloadLink, $VirtIOISOPath)
New-WindowsOnlineImage -WimFilePath $wimFilePath -ImageName $p_w_picpath.ImageName `
   -WindowsImagePath $windowsImagePath -Type 'HYPER-V' -VirtioISOPath $virtIOISOPath `
    -SizeBytes 30GB -CpuCores 4 -Memory 4GB -SwitchName 'external'
执行上一条命令后,制作程序开始,可能比较漫长,等待自动启动的虚拟机自动关闭即可
Powershell基本输出如下:
Windows online p_w_picpath generation started at: 2017/9/20 14:25:21
Image generation started at: 2017/9/20 14:25:31
Copying: C:\Users\Administrator\windows-openstack-imaging-tools\UnattendResources G:\
Downloading Cloudbase-Init...
Applying Windows p_w_picpath "E:\Sources\install.wim" in "G:\"

部署映像服务和管理工具
版本: 6.3.9600.16384

正在应用映像
#这个阶段比较漫长
[==========================100.0%==========================]
操作成功完成。
已成功创建启动文件。
按规定设备无效。
运行 "bcdedit /?" 获得命令行帮助。
参数错误。
警告: BCDEdit failed: bootmgr device locate
按规定设备无效。
运行 "bcdedit /?" 获得命令行帮助。
参数错误。
警告: BCDEdit failed: default device locate
按规定设备无效。
运行 "bcdedit /?" 获得命令行帮助。
参数错误。
警告: BCDEdit failed: default osdevice locate
Adding drivers from H:
Adding drivers from "H:\balloon\2k8r2\AMD64" to p_w_picpath "G:\"

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\balloon\2k8r2\AMD64\balloon.inf: 驱动程序包已成功安装

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\netkvm\2k8r2\AMD64\netkvm.inf: 驱动程序包已成功安装。
操作成功完成。
Adding drivers from "H:\pvpanic\2k8r2\AMD64" to p_w_picpath "G:\"

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\pvpanic\2k8r2\AMD64\pvpanic.inf: 驱动程序包已成功安装。
操作成功完成。
Adding drivers from "H:\qxl\2k8r2\AMD64" to p_w_picpath "G:\"

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\qxl\2k8r2\AMD64\qxl.inf: 驱动程序包已成功安装。
操作成功完成。
Adding drivers from "H:\vioinput\2k8r2\AMD64" to p_w_picpath "G:\"

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\vioinput\2k8r2\AMD64\vioinput.inf: 驱动程序包已成功安装。
操作成功完成。

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\viorng\2k8r2\AMD64\viorng.inf: 驱动程序包已成功安装。
操作成功完成。
Adding drivers from "H:\vioscsi\2k8r2\AMD64" to p_w_picpath "G:\"

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\vioscsi\2k8r2\AMD64\vioscsi.inf: 驱动程序包已成功安装。
操作成功完成。
Adding drivers from "H:\vioserial\2k8r2\AMD64" to p_w_picpath "G:\"

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\vioserial\2k8r2\AMD64\vioser.inf: 驱动程序包已成功安装。
操作成功完成。
Adding drivers from "H:\viostor\2k8r2\AMD64" to p_w_picpath "G:\"

部署映像服务和管理工具
版本: 6.3.9600.16384

映像版本: 6.1.7600.16385

正在搜索要安装的驱动程序包...
找到 1 个要安装的驱动程序包。
正在安装第 1 个,共有 1 个 - H:\viostor\2k8r2\AMD64\viostor.inf: 驱动程序包已成功安装。
操作成功完成。
Image generation finished at: 2017/9/20 15:12:01