|
|
本帖最后由 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)
|
|