名称 | 用途 | 备注 |
VirtualBox | 虚拟机软件,用来验证winpe镜像 | |
UltraISO | ISO文件管理软件,用来从ISO文件中提取boot.wim镜像文件。 | |
Dism++ | wim镜像挂载编辑工具,用来挂载编辑boot.wim镜像文件。 | |
winpe镜像 | N/A | |
Rclone | 用来挂载minio存储 | |
Winfsp | FUSE支持 |
使用UltraISO将winpe的ISO文件打开,提取出boot.wim文件。
电脑使用Dism++软件挂载boot.wim文件到一个指定目录。
2、复制文件下载Rclone :https://rclone.org/downloads/ 和WinFsp: https://github.com/billziss-gh/sshfs-win/releases/download/v3.5.20357/sshfs-win-3.5.20357-x64.msi在宿主机解压Rclone到一个指定目录。(注:这个目录需要记录好,后面配置会用到)在宿主机安装WinFsp到一个指定目录。注:这个目录需要记录好,后面配置会用到)进入boot.wim的挂载目录,将Rclone目录和WinFsp目录复制到挂载目录中的指定目录(最好与宿主机上的目录保持一致)。3、导入注册表在宿主机打开注册表,挂载boot.wim挂载目录中的注册表文件到一个路径下。在boot.wim挂载根目录的“Users\Default\AppData\Roaming\”目录下创建rclone目录,并在这个目录下创建rclone.conf文件,文件内容如下:
[minio] type = s3 provider = Minio access_key_id = aOcrQYExLmNQ855RgMhW74ZZJEgTaYsg secret_access_key = l6odGVeFTwXFwT8jbTaOIwNZjACXuGV1 region = us-east-1 endpoint = http://10.0.2.130:9001
其中access_key_id、secret_access_key、region和endpoint按Minio集群的实际配置进行替换。
三、验证完成以上变更后,使用dism++另存为boot.wim到单独的一个位置。使用UltraISO打开winpe的ISO文件,使用上一步生成的boot.wim文件进行替换。使用新生成的winpe的ISO文件在VirtualBox进行引导。进入WINPE后在CMD命令行进行验证。电脑 四、WINPE时间同步关于WINPE的时间同步,可通过python脚本实现,脚本内容如下示:
# -*- coding:utf-8 -*- import time import ntplib import win32api # Sync ntp time class class syctimes(): # Get NTP def getTime1(self): c = ntplib.NTPClient() # NTP Address: pool.ntp.org # 如果没法连公网可以换成内网的NTP server地址 response = c.request('pool.ntp.org') ts_stamp = 电脑response.tx_time ts = time.localtime(ts_stamp) # print(ts,time.mktime(ts)) # east +8 zone ttime = time.localtime(time.mktime(ts) + 8 * 60 * 60) return ts # Setting local time def setTime1(self,time_cls): ttime = time.localtime(time.mktime(time_cls) - 8 * 60 * 60) time_cls = ttime win32api.SetSystemTime(time_cls.tm_year, time_cls.tm_mon, time_cls.tm_wday, time_cls.tm_mday, time_cls.tm_hour, time_cls.tm_min, time_cls.tm_sec, 0) if __name__ == "__main__": classSyc = syctimes() time_list = classSyc.getTime1() classSyc.setTime1(time_list)
五、rclone程序后台启动
dimobjShellsetobjShell=wscript.createObject("WScript.Shell")iReturnCode=objShell.Run("c:\rclone\rclone.exe 电脑mount minio:/ I:",0,TRUE)
电脑