快捷搜索:  汽车  科技

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘wim镜像挂载编辑工具,用来挂载编辑boot.wim镜像文件。Dism 虚拟机软件,用来验证winpe镜像UltraISOISO文件管理软件,用来从ISO文件中提取boot.wim镜像文件。

一、资源清单

名称

用途

备注

VirtualBox

虚拟机软件,用来验证winpe镜像

UltraISO

ISO文件管理软件,用来从ISO文件中提取boot.wim镜像文件。

Dism

wim镜像挂载编辑工具,用来挂载编辑boot.wim镜像文件。

winpe镜像

N/A

Rclone

用来挂载minio存储

Winfsp

FUSE支持

二、操作步骤1、挂载镜像

使用UltraISO将winpe的ISO文件打开,提取出boot.wim文件。

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘(1)

使用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挂载目录中的注册表文件到一个路径下。

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘(2)

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘(3)

  • 导入注册表文件(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

其中access_key_id、secret_access_key、region和endpoint按Minio集群的实际配置进行替换。

三、验证
  • 完成以上变更后,使用dism 另存为boot.wim到单独的一个位置。
  • 使用UltraISO打开winpe的ISO文件,使用上一步生成的boot.wim文件进行替换。
  • 使用新生成的winpe的ISO文件在VirtualBox进行引导。
  • 进入WINPE后在CMD命令行进行验证。

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘(4)

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘(5)

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘(6)

微pe选择windows安装文件的位置:WinPE中通过Rclone挂载Minio分布存储为本地盘(7)

四、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程序后台启动

dimobjShell setobjShell=wscript.createObject("WScript.Shell") iReturnCode=objShell.Run("c:\rclone\rclone.exe mount minio:/ I:" 0 TRUE)

猜您喜欢: