欢迎大家来到IT世界,在知识的湖畔探索吧!
一、资源清单
名称 |
用途 |
备注 |
VirtualBox |
虚拟机软件,用来验证winpe镜像 |
|
UltraISO |
ISO文件管理软件,用来从ISO文件中提取boot.wim镜像文件。 |
|
Dism++ |
wim镜像挂载编辑工具,用来挂载编辑boot.wim镜像文件。 |
|
winpe镜像 |
N/A |
|
Rclone |
用来挂载minio存储 |
|
Winfsp |
FUSE支持 |
二、操作步骤
1、挂载镜像
使用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挂载目录中的注册表文件到一个路径下。
- 导入注册表文件(system和software,分两次挂载)
- 卸载挂载的目录(system和software,分两次卸载)
- 退出注册表
4、编写Rclone配置文件
在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
欢迎大家来到IT世界,在知识的湖畔探索吧!
其中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脚本实现,脚本内容如下示:
欢迎大家来到IT世界,在知识的湖畔探索吧!# -*- 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程序后台启动
dimobjShell
setobjShell=wscript.createObject("WScript.Shell")
iReturnCode=objShell.Run("c:\rclone\rclone.exe mount minio:/ I:",0,TRUE)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22787.html