WinPE中通过Rclone挂载Minio分布存储为本地盘「建议收藏」

WinPE中通过Rclone挂载Minio分布存储为本地盘「建议收藏」一、资源清单名称用途备注VirtualBox虚拟机软件,用来验证winpe镜像UltraISOISO文件管理软件,用来从ISO文件中提取boot

欢迎大家来到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文件。

WinPE中通过Rclone挂载Minio分布存储为本地盘「建议收藏」

使用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挂载目录中的注册表文件到一个路径下。
WinPE中通过Rclone挂载Minio分布存储为本地盘「建议收藏」

WinPE中通过Rclone挂载Minio分布存储为本地盘「建议收藏」

  • 导入注册表文件(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中通过Rclone挂载Minio分布存储为本地盘「建议收藏」

WinPE中通过Rclone挂载Minio分布存储为本地盘「建议收藏」

WinPE中通过Rclone挂载Minio分布存储为本地盘「建议收藏」

WinPE中通过Rclone挂载Minio分布存储为本地盘「建议收藏」

四、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

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信