windows安装镜像添加第三方驱动virtio(二、脚本添加)

2015/7/25 11:20 上午 目录  虚拟化 评论

准备条件:
原版win2008r2 ISO镜像 cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso
windows操作系统
virtio驱动 virtio-win-0.1-100.iso
UltraISO
Win 2008 R2集成Raid卡驱动的方法
Windows操作系统添加VirtIO驱动图文教程

1. 使用UltraISO将wim文件install.wim,boot.wim拷出到D盘

  • install.wim 为了安装时及安装后能够识别virtio设备(硬盘网卡pci等等)
  • boot.wim 为了启动光盘时能够识别virtio硬盘

创建目录环境,将virtio-win-0.1-100.iso中的win2008r2对应的驱动提取到D:\中,确保目录D:\temp为空

从virtio.iso 中提取windows2008r2相关的驱动

2. 使用脚本添加驱动到iso的所有版本中

通过脚本执行,注意输入参数的要求:

  • boot.wim文件完整路径
  • install.wim文件完整路径路径
  • 临时目录的完整路径
  • virtio驱动文件夹的完整路径
  • wim文件包含的版本个数,根据提示输入

在D:根目录创建一个test.bat文件,将上面脚本拷入文件中,执行脚本,输入所需路径参数 ,boot.wim版本数为2

@echo off
set bootvar=0
set /p bootwimpath=请输入wim文件完整路径例如(D:\boot.wim):   
set /p installlwimpath=请输入wim文件完整路径例如(D:\install.wim):           
set /p temppath=请输入临时目录完整路径确保文件夹为空(例如:D:\temp):    
set /p driverpath=请输入要加入的驱动路径(例如:D:\win2008r2):        
dism /get-wiminfo /wimfile:%bootwimpath%    
set /p bootcount=请输入当前boot.wim文件所包含的版本个数:
dism /get-wiminfo /wimfile:%installlwimpath%    
set /p installcount=请输入当前install.wim文件所包含的版本个数:
rem ************循环开始了
:bootcontinue
set /a bootvar+=1
echo boot.wim第%bootvar%次循环   >>dism.log
echo ======================================================================================  >>dism.log
echo 为boot.wim加载驱动 >> dism.log
dism  /mount-wim /wimfile:%bootwimpath% /index:%bootvar% /mountdir:%temppath%   >>dism.log
dism /image:%temppath% /add-driver /driver:%driverpath% /recurse /forceunsigned  >>dism.log
dism /unmount-wim /mountdir:%temppath% /commit  >>dism.log
echo 等待5s准备导入下一版本,如需取消请立即按Ctrl+C   >>dism.log
rem 等待5秒 ping非法地址10次不使用默认的次数,nul是不显示ping信息,用来等待5s:
@ping -n 5 127.1>nul
if %bootvar% lss %bootcount% goto bootcontinue
rem ************循环结束了
echo boot.wim循环执行完毕  >>dism.log


set varinstall=0
rem ************循环开始了
:installcontinue
set /a varinstall+=1
echo install.wim第%varinstall%次循环   >>dism.log
echo ======================================================================================  >>dism.log
dism  /mount-wim /wimfile:%installlwimpath% /index:%varinstall% /mountdir:%temppath%   >>dism.log
dism /image:%temppath% /add-driver /driver:%driverpath% /recurse /forceunsigned  >>dism.log
dism /unmount-wim /mountdir:%temppath% /commit  >>dism.log
echo 等待5s准备导入下一版本,如需取消请立即按Ctrl+C   >>dism.log
rem 等待5秒 ping本机10次不使用默认的次数,nul是不显示ping信息:
@ping -n 5 127.1>nul
if %varinstall% lss %installcount% goto installcontinue
rem ************循环结束了
echo install.wim循环执行完毕 >>dism.log
pause

根据检测出的install.wim的版本个数

查看执行的日志如下:

3. 替换原版install.wim文件即可生成新的iso文件

按下Ctrl+ S 保存

4. 测试新的ISO安装

到生成的kvm虚拟机查看,正常加载virtio网卡、硬盘、balloon内存等虚拟设备