关于 WinPE
- 1. 背景介绍
WinPE 种类繁多,有的支持网络、有的不支持网络、有的可以脱盘运行、有的不能脱盘运行,有的集成的系统组件比较全,有的非常精简。
对于全内置类型的 WinPE(也就是常说的能脱盘运行的),启动的时候是全部加载到内存中运行的,这种类型的 WinPE 通过 iVentoy 启动都没有问题。
对于有外置工具类型的 WinPE,启动之后,必须通过网络把 ISO 文件映射成为本地盘符才可以正常加载这些外置工具。对于这种 WinPE 就必须要支持网络功能才可以通过 iVentoy 正常启动。
否则外置工具无法加载。
因此 iVentoy 对 WinPE 的支持情况也不同。 注意:本文基于 iVentoy 1.0.41+ 版本。
- 2. 支持形式
基于上述情况,iVentoy 对于 WinPE 采取简单的支持策略。
即不主动帮 PE 把 ISO 文件通过网络挂载起来,而是把挂载所需要的信息和挂载脚本写到 PE 内。
如果 PE 必须要挂载(比如要加载外置工具),则可以在 确认网络初始化完以后,参考以下步骤完成挂载。
注意:这种情况下也就要求PE必须支持网络功能,同时还要集成常见的网卡驱动。
- 3. 挂载信息
iVentoy 启动 WinPE 之后,会在 X:\ 根目录下注入 iventoy_env.bat 和 iventoy_env.ini 文件。
两个文件的内容是一样的,只是格式不一样,根据实际情况下选择从哪个里面读取信息均可。
同时 iVentoy 还会注入一个 X:\VTOYMNT.BAT 脚本方便直接调用。
- 4. 直接使用脚本挂载
你可以直接调用 X:\VTOYMNT.BAT 脚本完成挂载,调用时传递一个盘符作为参数(注意只有字母,没有冒号),例如:
X:\VTOYMNT.BAT Y
注意:该脚本会优先尝试使用系统自身的功能挂载ISO文件,如果挂载失败,则会继续尝试使用imdisk,此时如果当前PE里没有imdisk, 则会尝试安装iVentoy自带的一个 ImDisk 驱动。 如果你介意这一点,不希望它往系统中安装imdisk,则调用此脚本时传递第二个参数 noimdisk,例如:
X:\VTOYMNT.BAT Y noimdisk
如果你希望了解具体的挂载步骤,或者不想使用 VTOYMNT.BAT 脚本,想自己手动挂载,请继续参考下面的第5章的说明。
- 5. 手动挂载步骤
1、挂载 iVentoy Server
把iVentoy Server侧的ISO文件整体挂载到本地,比如Z盘,挂载之后会出现 Z:\iventoy.iso 文件,即为本次启动的ISO文件。
iVentoy Server 侧集成了一个简单的SMB Server,PE内通过 net use 命令即可挂载。
但这里有个小问题,即 net use 默认只能使用标准的 445 端口,而iVentoy Server侧的SMB端口号可能不是445(为了防止和正式的SMB Server冲突)。
这种情况下,就需要做端口映射,对于比较新的 Windows 11版本,net use 命令本身就支持 /TCPPORT 参数,直接可以指定端口。对于早期版本系统 net use 不支持这个参数,
此时可以借助 portproxy 或者其他第三方工具设置端口映射。
总结一下:
1、如果 iVentoy Server 侧使用的 SMB 端口号就是 445,那直接使用 net use 命令即可,例如:
net use Z: \\%vtoy_server_ip%\riso%vtoy_img_id%
2、如果 iVentoy Server 侧使用的 SMB 端口号不是 445,但 net use 命令支持 /TCPPORT 参数,则:
net use Z: \\%vtoy_server_ip%\riso%vtoy_img_id% /TCPPORT:%vtoy_smb_port%
3、如果 iVentoy Server 侧使用的 SMB 端口号不是 445,且 net use 命令也不支持 /TCPPORT 参数,则:
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=%vtoy_server_ip% connectport=%vtoy_smb_port% net use Z: \\127.0.0.1\riso%vtoy_smb_port%
注:以上 vtoy_server_ip、vtoy_smb_port 等参数都可以从 X:\iventoy_env.bat 或 X:\iventoy_env.ini 文件中获取。
2、挂载 ISO 文件
这一步只要把 Z:\iventoy.iso 挂载起来就可以了。
如果当前PE对应的是 Windows8+ 版本的系统,则系统本身就集成了右键挂载ISO文件的能力。
如果对应的是 Windows 7 版本,则需要借助第三方工具,比如 imdisk:
imdisk.exe -a -f Z:\iventoy.iso -o cd -m Y: