无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4343|回复: 11
打印 上一主题 下一主题

思路分享,uwf+primocache+vhd差分还原

[复制链接]
跳转到指定楼层
1#
发表于 2021-1-12 12:57:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yiyu2012 于 2021-1-21 20:44 编辑

uwf保护磁盘,无论是vhd还是硬盘分区都有可能造成开机出现磁盘错误,uwf+primocache+vhd差分还原该复合方案,加入primocache缓写C盘提高系统盘读写效率,加入差分还原避免开机磁盘错误,同时提供bat批处理示例方便维护。
前提需求:pe或额外的维护系统。
步骤:
(1)、vhd系统中导入vhd关闭最大占用注册表。
(2)、安装primocache,添加“C:\Program Files\PrimoCache\”目录到系统环境path项。cmd运行rxpcc  ls(未添加环境目录则需要修改命令为"C:\Program Files\PrimoCache\rxpcc.exe" ls,同时bat里对应命令都需要修改),获得vhd磁盘序号,对应修改creat.bat,运行creat.bat创建c盘的primocache写保护,记下primocache中缓存任务序号,对应修改2.bat,1.bk,里命令:
rxpcc new -v 13 -m 2048 -b 4 -a skipflush -g rw -w INF -s (创建缓存)
rxpcc dwpause -v 13 -s (暂停缓存,13为vhd系统c盘卷序号)
rxpcc clear -c 3 -s (清除缓存,写入数据,3为primocache缓存任务序号)
rxpcc pause -c 3 -s (暂停缓写任务)

(3)、将2.bat和1.bk、startup.vbs放入C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup,startup.vbs加入开机启动项目。
1.bk内容注释如下:
@echo off
setlocal enabledelayedexpansion
ping -n 4 127.0.0.1
cd /d D:\os
del win10_01.vhd /q /f
del win10_02.vhd /q /f
::判断是否存在win10_01.vhd,当前系统的vhd文件不会被删除,若存在,则还原win10_02.vhd,并设置win10_02.vhd对应的vhd项目为默认启动项。
if exist "win10_01.vhd" (copy win10_01_bk.vhd win10_02.vhd
bcdedit /default {e2d2e04e-0a0b-4f3b-916a-60793d4246ce}) else (copy win10_01_bk.vhd win10_01.vhd
bcdedit /default {981976d0-8412-43f3-925a-09b3b267a74e})
cls


暂停还原.bat内容注释如下:
@echo off
setlocal enabledelayedexpansion
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :start","","runas",1)(window.close)&goto :eof
:start
echo.&echo 1.关闭差分还原
echo.&echo 2.开启UWF保护
echo.&echo 3.开启差分还原
::应用选项1,重启后切换成暂停模式(关闭uwf并暂停缓存);应用选项2,开启uwf保护,需自行设置uwf保护磁盘及覆盖层最大值;应用选项3,恢复差分还原功能,应用场景见第7楼。
echo --------------------------------------------------------------------------------------------------------
set /p a=输入数字回车:
if "%a%"=="1" Goto disable
if "%a%"=="2" Goto uwfon
if "%a%"=="3" Goto protectionon
echo.&echo 输入无效,请重新输入!
pause >null&& CLS && GOTO start

:disable
rxpcc clear -c 3 -s
rxpcc pause -c 3 -s
cd /d D:\os
del win10_01.vhd /q /f
del win10_02.vhd /q /f
::判断是否存在win10_01.vhd,当前系统的vhd文件不会被删除,若存在,则还原win10_02.vhd,并设置win10_01.vhd对应的vhd项目为默认启动项。
if exist "win10_01.vhd" (copy win10_01_bk.vhd win10_02.vhd
bcdedit /default {981976d0-8412-43f3-925a-09b3b267a74e}) else (copy win10_01_bk.vhd win10_01.vhd  '
bcdedit /default {e2d2e04e-0a0b-4f3b-916a-60793d4246ce})

move "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\1.bat" "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\1.bk"
move "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\2.bk" "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\2.bat"
NSudo.exe -U:T -P:E uwfmgr.exe filter disable
CLS && GOTO start

:uwfon
rxpcc clear -c 3 -s
rxpcc pause -c 3 -s
::需添加NSudo.exe文件目录到系统环境path项,或复制NSudo.exe到C:\Windows\System32
NSudo.exe -U:T -P:E uwfmgr.exe filter enable  
reg delete "HKEY_CLASSES_ROOT\Unknown\shell\opendlg" /f  >NUL 2>NUL
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Unknown\shell\opendlg" /f  >NUL 2>NUL
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\pintostartscreen"  /f  >NUL 2>NUL
CLS && GOTO start

:protectionon
move "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\1.bk" "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\1.bat"
move "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\2.bat" "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\2.bk"
CLS && GOTO start

2.bat内容如下:
@echo off
rxpcc clear -c 3 -s
rxpcc pause -c 3 -s
cls
startup.vbs脚本内容如下,功能为运行同目录下bat文件:

Set objShell = CreateObject("WScript.shell")
strCurrentDir = objShell.CurrentDirectory
set fso = createobject("scripting.filesystemobject")
set f=fso.getfolder(strCurrentDir)
For Each i In f.files
If LCase(right(i,4)) = ".bat" Then objShell.Run i,,true
Next


(4)、pe下整理vhd系统母盘win10.vhd磁盘碎片,使用BOOTICE压缩虚拟磁盘空间,减小占用。
(5)、创建差分盘win10_01_bk.vhd,挂载再卸载差分盘,同目录运行“还原.bat”复制生成win10_01.vhd,win10_02.vhd。
(6)、BOOTICE分别创建win10_01.vhd,win10_02.vhd的vhd启动项。
(7)、根据差分系统vhd启动项的GUID修改“暂停还原.bat、1.bk”文件。
注:bat需要修改才能正常使用。

相信你们都能看得懂
vhd取消最大空间占用.rar (307 Bytes, 下载次数: 35) bat.rar (1.83 KB, 下载次数: 33)
2#
发表于 2021-1-12 14:36:54 | 只看该作者
这个设置有点复杂了,路过,收藏了...........
回复

使用道具 举报

3#
发表于 2021-1-14 02:52:16 | 只看该作者
不错不错 好文章
回复

使用道具 举报

4#
发表于 2021-1-16 17:21:04 | 只看该作者
真的没看懂,但感觉很厉害
回复

使用道具 举报

5#
发表于 2021-1-16 19:21:50 | 只看该作者
bat压缩包里面的是1.bat和2.bk,跟文章里的刚好相反

点评

没差,用1.bat功能为差分还原切默认启动项,用暂停还原.bat,选项1就切成暂停模式了。  详情 回复 发表于 2021-1-19 22:16
回复

使用道具 举报

6#
发表于 2021-1-17 22:12:30 | 只看该作者
不错不错 好文章
回复

使用道具 举报

7#
 楼主| 发表于 2021-1-19 22:16:17 | 只看该作者
本帖最后由 yiyu2012 于 2021-1-19 22:28 编辑
2048 发表于 2021-1-16 19:21
bat压缩包里面的是1.bat和2.bk,跟文章里的刚好相反

没差,1.bat(1.bk时不起效)功能为差分还原切换默认启动项,正常维护时运行暂停还原.ba的选项1,再重启就切成暂停模式了(关闭uwf并暂停缓存);选项2为子系统经日常维护修改后开启uwf保护(需自行设置uwf保护磁盘及覆盖层最大值),启用该项开启uwf后就该进pe去合并子项修改到父vhd或者重新打包再应用wimboot了;选项3为恢复差分还原功能,在维护好并合修改,再重新创建子vhd后再启用(保护模式运行时子vhd会从初始态12mb涨到100mb左右)。
回复

使用道具 举报

8#
发表于 2021-1-20 22:50:19 | 只看该作者
好思路
回复

使用道具 举报

9#
发表于 2021-1-24 17:45:07 | 只看该作者
支持,学习了。
回复

使用道具 举报

10#
发表于 2021-2-10 12:35:47 | 只看该作者
还是没有uefi启动的单p驱双镜像vdf的ramos来的好

点评

说的对,看到uefi方案的第一时间就更新了,惯例拆分自动bat脚本为手动维护。  详情 回复 发表于 2021-2-10 13:24
回复

使用道具 举报

11#
 楼主| 发表于 2021-2-10 13:24:11 | 只看该作者
sairen139 发表于 2021-2-10 12:35
还是没有uefi启动的单p驱双镜像vdf的ramos来的好

说的对,看到uefi方案的第一时间就更新了,惯例拆分自动bat脚本为手动维护。
回复

使用道具 举报

12#
发表于 2021-2-14 22:15:46 来自手机 | 只看该作者
唉,玩ramos的好多都匿了。于我而言,追求的是极限的速度,但不得。——ramos的唯一优势,我认为应该是速度。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-23 05:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表