首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在用于升级的ISO的winre.wim中注入virtio驱动的相关步骤

在用于升级的ISO的winre.wim中注入virtio驱动的相关步骤

原创
作者头像
Windows技术交流
修改于 2024-06-11 06:06:02
修改于 2024-06-11 06:06:02
6480
举报
文章被收录于专栏:Windows技术交流Windows技术交流

如果只是对当前系统的winre.wim集成虚拟化驱动,可参考我这篇文档https://cloud.tencent.com/developer/article/1998997

(winre.wim的位置你可以安装Everything全局搜一下)

如果是给用于升级的ISO的winre.wim中注入virtio驱动,按如下步骤:(代码只是参考,具体化目录和盘符

1、准备用于升级的ISO以及virtio的驱动(这里的驱动仅测试使用,具体Virtio的驱动需要您获取),解压ISO。

我一般在这里下载最新的Server2022:https://sysin.org/blog/windows-server-2022/ (有百度网盘会员会快一些,没有的话就慢慢下呗)

或者使用速度较快的aria2下载方式:www.uupdump.cn下载Server21H2(就是2022,也就是大版本号20348),一般是每个月微软都会出一个最新的ISO

代码语言:txt
AI代码解释
复制
https://www.uupdump.cn/known.php?q=regex%3A%28%3F%3D.*20348%29.*server&sort=1

2、由于默认的ISO 中是包含多个edition的, 比如Pro, ENT 和EDU. 我们可以先通过下面命令行查询edition 和index number 的对应情况(高亮处替换为解压后的install.wim的路径)。

Get-WindowsImage -ImagePath "F:\UpgradeTest\en-us_windows_10_business_editions_version_22h2_updated_nov_2022_x64_dvd_e8577df7\sources\install.wim"

可以看到win10 Enterprise是index 3,示例如下:

3、我们需要安装哪个版本, 就mount 哪个index, 然后把驱动注入. 比如, 我们此次测试需要安装的是Ent 版本, 我们就mount index 3 即可(高亮部分替换成实际操作路径)。由于winre.wim 是在install.wim 里面的, 所以我们先把install.wim 的index 3 mount 起来.

代码语言:txt
AI代码解释
复制
Mount-WindowsImage -ImagePath "F:\UpgradeTest\en-us_windows_10_business_editions_version_22h2_updated_nov_2022_x64_dvd_e8577df7\sources\install.wim" -Index 3 -Path F:\UpgradeTest\installwimMount 

4、Install.wim mount 起来后, 我们在\windows\system32\recovery 文件夹下面可以看到Winre.wim. 这个文件经过验证,会在升级的时候作为Safeos 的PE 使用.

5、接下来我们需要对winre.wim 进行驱动注入. 我们新建一个winremount 文件夹,这个时候把"F:\ISOUpgrade\installwimmount\Windows\System32\Recovery\Winre.wim" 这个image mount到winremount 文件夹下. Winre.wim 只有一个index, 所以我们mount index 1 即可.

代码语言:txt
AI代码解释
复制
Mount-WindowsImage -ImagePath "F:\UpgradeTest\installwimMount\Windows\System32\Recovery\Winre.wim" -Index 1 -Path F:\UpgradeTest\winremount

6、然后通过dism 命令行将驱动注入winremount 这个offline image 中.

代码语言:txt
AI代码解释
复制
dism.exe /image:F:\UpgradeTest\winremount /add-driver /driver:"F:\UpgradeTest\driver\amd64\viostor.inf"

7、导入成功后, 我们通过如下命令行可以查询到导入的驱动.

代码语言:txt
AI代码解释
复制
dism.exe /image:F:\UpgradeTest\winremount  /get-drivers

8、到这里, 驱动已经注入到winre 的offline image 中. 我们接下来需要:

a.先dismount winremount文件夹.

b.再dismount installwimmount 文件夹.

命令行如下:

=== ===

代码语言:txt
AI代码解释
复制
Dismount-WindowsImage -Path F:\UpgradeTest\winremount -Save
Dismount-WindowsImage -Path F:\UpgradeTest\installwimMount -Save

9、由于本镜像作升级用途,因此我们无需封装,直接拷贝整个ISO解压后的文件夹到目标机器上, 双击setup.exe 直接升级即可.

以上过程,具体化示例:

代码语言:txt
AI代码解释
复制
#比如我下载ISO到E:\win10.iso
#装载到H:,有用的文件是H:\sources\install.wim

#创建需要的目录
mkdir -force E:\UpgradeTest\winremount
mkdir -force E:\UpgradeTest\installwimMount
mkdir -force E:\UpgradeTest\driver\
mkdir -force E:\sources\

#下载虚拟化驱动压缩包并解压
$client1 = new-object System.Net.WebClient
$client1.DownloadFile('http://windows-1251783334.cos.ap-shanghai.myqcloud.com/Install_QCloudVirtIO_new.zip','C:\Users\Administrator\Downloads\Install_QCloudVirtIO_new.zip')
#解压
Start-Process -FilePath "$env:ProgramFiles\7-Zip\7z.exe" -ArgumentList "x -aoa ""c:\Users\Administrator\Downloads\Install_QCloudVirtIO_new.zip"" -o""c:\Users\Administrator\Downloads\Install_QCloudVirtIO_new""" -NoNewWindow -Wait

#把需要的驱动版本拷贝到目标位置E:\UpgradeTest\driver\
robocopy "C:\Users\Administrator\Downloads\Install_QCloudVirtIO_new\Win10_Win11_2016_2019_2022\amd64" "E:\UpgradeTest\driver" /S /E /IS /NFL /np

#从装载盘里把sources\install.wim拎出一份到E:\sources\
xcopy /F /H /Y /Q "H:\sources\install.wim" "E:\sources\install_exp.wim*" #*号是有用处的,不要去

#去除E:\sources\install_exp.wim的只读属性
attrib -s -h -r /s /d "E:\sources\install_exp.wim" 

#查看.wim的序号
Get-WindowsImage -ImagePath "E:\sources\install_exp.wim"

ImageIndex       : 1
ImageName        : Windows 10 教育版
ImageDescription : Windows 10 教育版

ImageIndex       : 2
ImageName        : Windows 10 企业版
ImageDescription : Windows 10 企业版

ImageIndex       : 3
ImageName        : Windows 10 专业版
ImageDescription : Windows 10 专业版

ImageIndex       : 4
ImageName        : Windows 10 专业教育版
ImageDescription : Windows 10 专业教育版

ImageIndex       : 5
ImageName        : Windows 10 专业工作站版
ImageDescription : Windows 10 专业工作站版


#选企业版的序号挂载到E:\UpgradeTest\installwimMount
Mount-WindowsImage -ImagePath "E:\sources\install_exp.wim" -Index 2 -Path E:\UpgradeTest\installwimMount

#查看Winre.wim的序号
Get-WindowsImage -ImagePath "E:\UpgradeTest\installwimMount\Windows\System32\Recovery\Winre.wim"

ImageIndex       : 1
ImageName        : Microsoft Windows Recovery Environment (x64)
ImageDescription : Microsoft Windows Recovery Environment (x64)

#挂载Winre.wim到E:\UpgradeTest\winremount
Mount-WindowsImage -ImagePath "E:\UpgradeTest\installwimMount\Windows\System32\Recovery\Winre.wim" -Index 1 -Path E:\UpgradeTest\winremount

#查看Winre.wim的驱动
dism.exe /image:E:\UpgradeTest\winremount  /get-drivers

#给Winre.wim添加虚拟化硬盘驱动
dism.exe /image:E:\UpgradeTest\winremount /add-driver /driver:"E:\UpgradeTest\driver\viostor.inf"

#给Winre.wim添加虚拟化网卡驱动
dism.exe /image:E:\UpgradeTest\winremount /add-driver /driver:"E:\UpgradeTest\driver\netkvm.inf"

#查看Winre.wim的驱动
dism.exe /image:E:\UpgradeTest\winremount  /get-drivers

#此处请手动关闭所有打开的文件夹
#此处请手动关闭所有打开的文件夹
#此处请手动关闭所有打开的文件夹

#保存对Winre.wim的更改(加了2个驱动)
Dismount-WindowsImage -Path E:\UpgradeTest\winremount -Save

#把改造好的Winre.wim拎出一份到E:\sources\Winre.wim
xcopy /F /H /Y /Q "E:\UpgradeTest\installwimMount\Windows\System32\Recovery\Winre.wim" "E:\sources\Winre.wim"

#查看install_exp.wim的驱动
dism.exe /image:E:\UpgradeTest\installwimMount  /get-drivers

#给install_exp.wim添加虚拟化硬盘驱动
dism.exe /image:E:\UpgradeTest\installwimMount  /add-driver /driver:"E:\UpgradeTest\driver\viostor.inf"

#给install_exp.wim添加虚拟化网卡驱动
dism.exe /image:E:\UpgradeTest\installwimMount  /add-driver /driver:"E:\UpgradeTest\driver\netkvm.inf"

#查看install_exp.wim的驱动
dism.exe /image:E:\UpgradeTest\installwimMount  /get-drivers

#保存对install_exp.wim的更改(给企业版系统本身加了2个驱动、还给Windows\System32\Recovery\Winre.wim加了2个驱动)
Dismount-WindowsImage -Path E:\UpgradeTest\installwimMount -Save

#用UltraISO或PowerISO等软件打开原版ISO文件,删掉原sources\install.wim,替换为改造后的install_exp.wim并重命名为install.wim,然后另存为新的ISO,运行setup.exe时选自己改造的那个分支。

代码语言:txt
AI代码解释
复制
#注意
#注意
#注意
#在Save之前,如果中途想回退(放弃)则执行Discard命令,例如:
Dismount-WindowsImage -Path E:\UpgradeTest\winremount -Discard
Dismount-WindowsImage -Path E:\UpgradeTest\installwimMount -Discard

10、如果要封装ISO,参考我这篇文档https://cloud.tencent.com/developer/article/2356116

就地升级(维护)系统,版本要对,同版本的才支持,不同版本的不行,比如得是pc对pc、server对server、en对en、cn对cn、桌面版对桌面版、core纯命令行版对core纯命令行版,交叉的不行

就地升级(维护)系统,版本要对,同版本的才支持,不同版本的不行,比如得是pc对pc、server对server、en对en、cn对cn、桌面版对桌面版、core纯命令行版对core纯命令行版,交叉的不行

就地升级(维护)系统,版本要对,同版本的才支持,不同版本的不行,比如得是pc对pc、server对server、en对en、cn对cn、桌面版对桌面版、core纯命令行版对core纯命令行版,交叉的不行

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用2016 2019 中英文版ISO(原版)集成最新补丁的ISO解决系统功能异常、安装补丁失败的疑难杂症
SW_DVD9_Win_Server_STD_CORE_2016_64Bit_ChnSimp_-4_DC_STD_MLF_X21-70525.ISO
Windows技术交流
2025/03/12
3310
利用 WimBuilder2 最新稳定版 DIY Win10PE
WimBuilder2后来者居上,支持制作Win10 RS5(1809)、19H1(1904)、19H2(1909)、20H1最新版的x86、x64 PE,我个人觉得很赞。
Windows技术交流
2020/04/08
23.3K0
DIY Windows最新版ISO
最新版Windows ISO微软不一定会经常更新,有时候好几年不发一个新版ISO,比如server2016和server2019,那要最新ISO,说白了需要自己把最新的补丁集成到ISO,怎么操作呢?以server2016为例
Windows技术交流
2023/11/08
9040
如何制作最新补丁的Win10 LTSC ISO
背景:2024.6.11后,Win10 21H2普通版将会终止服务,不会再收到安全和质量更新,Win10 21H2 LTSC 2021还会持续一段时间到2027.1.12,制作最新补丁的Win10 21H2 LTSC 2021的ISO成为一个客观需求
Windows技术交流
2024/04/02
1.5K0
操作系统生成镜像封装类
描述:DISM(Deployment Image Servicing and Management)就是部署映像服务和管理,用于安装、卸载、配置和更新脱机 Windows(R) 映像和脱机 Windows 预安装环境 (Windows PE) 映像中的功能和程序包;
全栈工程师修炼指南
2020/10/26
2.4K0
24H2 Win11PE的制作和使用
微软原版24H2WinPE没有图形界面,只有简单的cmd命令行,不适用普通用户,这版定制化的24H2WinPE集成了powershell和图形界面,并且软件兼容性较高,导致2G内存使用率高达98%左右,此时打开cmd命令行OK,如果再干点别的,比如打开powershell或者打开图形界面的东西比如任务管理器,就内存不足而异常了。建议≥2.5G内存的机器使用。
Windows技术交流
2025/02/10
1.6K0
在win10pe里给winre.wim集成虚拟化驱动
假如在win10pe里,原机器的Winre.wim是这个位置:D:\Recovery\WindowsRE\Winre.wim,驱动文件我放在了C:\drivers\amd64\ ,之所以给winre.wim集成虚拟化驱动是因为如果没有集成,recovery模式是不起作用的,因为没有虚拟化驱动,recovery模式连硬盘都识别不了,更别提修复什么了。
Windows技术交流
2022/09/20
9850
制作Win11PE用于云服务器
制作winpe的软件很多,我自己已经习惯用WimBuilder2,网上制作Win11PE的资料很少很少,这个完全是我摸索出来的,分享给有缘人。
Windows技术交流
2022/11/19
4.2K1
如何让win11 iso跳过硬件检测,让普通机器也能安装win11
如何让win11 iso跳过硬件检测,让普通机器也能安装win11,网上办法很多,会走很多弯路,这里直接到位
Windows技术交流
2024/04/07
7930
【玩转腾讯云】disk2vhd离线迁移服务器
https://cloud.tencent.com/document/product/213/17815
Windows技术交流
2022/11/09
12.6K2
windows recovery mode集成硬盘驱动
腾讯云windows recovery模式没集成硬盘驱动,以server2019为例,介绍如何给recovery mode集成驱动
Windows技术交流
2022/05/10
1.7K0
如何把install.esd转化成install.wim
通过Create Windows 10 installation media 创建的Win10 ISO,sources目录install.wim被install.esd替代
Windows技术交流
2022/12/07
3.9K0
在虚拟磁盘中安装Windows Server 2016
乐百川
2018/01/09
3.9K0
在虚拟磁盘中安装Windows Server 2016
一种离线给.vhd文件缩容和集成虚拟化驱动的简单办法
问题1:阿里云在线迁移到腾讯云文件系统有问题进不去系统(阿里云虚拟化驱动跟腾讯云不兼容导致的),如果不用导出.vhd的办法,有简单的办法参考https://cloud.tencent.com/developer/article/2368787,如果用下文的离线思路也可以,就是需要删掉原来所有的虚拟化驱动再集成腾讯云的,不是在源平台搞,而是离线搞(chkdsk /f 检查文件系统那一步是必要的,第5、第6步集成虚拟化驱动也是必要的,只是要注意"先删后增")。
Windows技术交流
2024/05/27
3160
veeam维护盘制作
https://www.veeam.com/windows-endpoint-server-backup-free.html
Windows技术交流
2021/12/17
1K0
REGISTRY_ERROR蓝屏,可能是virtio硬盘驱动问题
https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/bug-check-0x51--registry-error
Windows技术交流
2025/01/15
4010
微软原版从Server2019才开始有curl.exe的,腾讯云Server2016系统都集成了低版本curl.exe,该版访问https报证书问题
腾讯云Server2016系统都集成了低版本curl.exe,该版访问https报证书问题
Windows技术交流
2024/03/14
3640
windows 10 DD包制作
1. 环境与工具 本地环境 windows 10 专业版 64位 开启Hyper-V https://jingyan.baidu.com/article/15622f24017461fdfdbea554.html (Hyper-V主要是开启远程,亦可用VNC操作) 工具 windows 10 镜像 VirtIO驱动 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso Dis
用户1202364
2018/07/09
3.2K0
Windows云服务器就地升级注意事项
就地升级的文件或者说ISO哪里来,参考我这篇文档https://cloud.tencent.com/developer/article/2419258
Windows技术交流
2024/05/21
6230
渲染镜像优化
一、如果需要非sysprep(即不入域)的镜像,现有镜像买一台带公网的机器,做如下几个优化:
Windows技术交流
2023/03/23
9140
推荐阅读
相关推荐
用2016 2019 中英文版ISO(原版)集成最新补丁的ISO解决系统功能异常、安装补丁失败的疑难杂症
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档