无忧启动论坛

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

[原创] VHD秒还原开机脚本一键备份还原系统 支持桌面右键菜单操作

    [复制链接]
跳转到指定楼层
#
发表于 2024-6-23 16:19:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 baby1277 于 2025-5-8 10:33 编辑

历经了半年的不断完善终于达到预期的效果,先来一波下效果图。







桌面右键菜单算是别出心裁吧,电脑小白点两下鼠标就可以轻松还原系统,简直太方便了。

本地模式:本地磁盘上的系统,可以使用休眠功能,办公首选。
正常模式:保存数据 ,推荐作为常用系统。
还原模式:不保存数据,每次自动还原系统和网吧电脑一样的效果。
一键还原:默认是一键还原 “正常模式” ,也可以将系统还原到脚本首次安装的状态。
                  在“一键还原”菜单输入“VHD” 即可将系统还原到脚本首次安装的状态
一键备份:也可以称作为一键更新,原理就是合并差分VHD到父VHD。
                  在桌面右键菜单选择则是合并当前系统差分VHD到父VHD
                  在开机菜单选择则是优先合并“还原模式” ,如果“还原模式”vhd文件没有变化合并“正常模式”
                  PS:合并VHD需要进入第三方系统,所以会出现一次短暂开机后重启的情况。

还原脚本的大致原理
使用bcdboot和bcdedit创建固定路径菜单的bcd文件
bcd文件和默认引导菜单与VHD文件三者组合起来交替挂载使用
以下是整理出的图表,归纳了三者的关系和每个文件的用途。

        
               VHD秒还原脚本原理.zip (35.79 KB, 下载次数: 176)

脚本的安装环境
脚本是需要安装的,支持裸机安装,以下是支持安装的环境。
1:Win8以上的PE系统(强烈推荐,安装成功率比较高)
2:Win8以上的本地磁盘系统(一般推荐,仅限首次安装,再次安装需要手动删除system.vhdx)
3:Win8以上的VHD系统也可以(一般推荐,仅限首次安装,再次安装需要手动删除system.vhdx)
      PS:被安装的VHD文件不能和当前系统的VHD文件有关联(差分链或者副本)
如果遇到安装失败的情况,建议重启系统,或者换个系统环境来安装。

桌面右键菜单密码
默认是:bbs.wuyou.net  也可以设置为动态密码,动态密码可以通过设置vhd.ini来取消或者修改。
另外,开机选择菜单不支持密码,bootmgr没有这个功能,但可以设置不显示开机选择系统画面。

vhd.ini设置
因为很多网友私下让其修改下显示这个不显示那个的,干脆整理成vhd.ini配置文件自己DIY吧。
;huanyuan缺省为保留还原模式,0表示不保留还原模式,需要在安装前修改,后期修改无效。
;bendi缺省为添加本地磁盘系统引导菜单,0表示不添加,需要在安装前修改,后期修改无效。
;rongliang缺省为显示vhd文件实际容量,0表示显示最大容量,PS:还原模式需要在安装前修改。
;yincang缺省为显示本地磁盘系统盘符,0表示隐藏,取消桌面右键菜单时无效,且需在安装前修改。
;youjian缺省为使用桌面右键菜单,0表示不显示。
;timeout缺省为3秒,启动管理器的超时值,注意0表示等待用户手动确认。
;password缺省为取消密码,密码内容不可以有空格和特殊符号,PS:右键粘贴输入密码。
;password2缺省为不使用动态密码,0表示启用。
;password3缺省为一键还原和一键备份菜单不使用动态密码,0表示启用。
;kaiji缺省为显示开机选择等待画面,0表示不显示。
;huamian缺省为启用蓝色Metro开机界面,0表示使用黑白开机界面。
;liji缺省为选择右键菜单后立即重启系统,0表示手动重启系统。
;dingqi缺省为不启用定时还原功能,0表示每个月还原1次系统。
;moren缺省为不固定默认引导菜单,设置固定默认引导菜单为d本地模式,z正常模式,h还原模式。
;log缺省为启用日志功能,0表示禁用。

强大的兼容性
脚本不需要修改主板BIOS,不需要重新格式化硬盘,支持32位和64位系统。
支持Secure Boot(安全启动),不影响Windows Update(系统自动更新)。
同时支持UEFI和BIOS固件,理论上Win7-Win11的新旧电脑都可以使用。

免责声明
此脚本仅发布于无忧,可以随意转载分享,但不能用于商业行为。
使用此脚本前需要备份好数据,因脚本造成的数据丢失本人不承担任何责任。

附件在沙发和百度网盘,如有问题和建议回帖或者加群795442972留言。

点评

默默等待BIOS系统  发表于 2024-6-29 11:38
辛苦了  发表于 2024-6-23 18:09

评分

参与人数 12无忧币 +62 收起 理由
wawakuliao + 5 赞一个!
klz12 + 5 很给力!
freesoft00 + 5
qq27722 + 5 赞一个!
lemonle79 + 5
879792799 + 5 绝对好创意!
smartcowboy + 5 期待分享其他更好的作品
whyme22 + 5
Myptour + 5 赞一个!
新空气 + 5
yyz2191958 + 2 赞一个!
20090101 + 10 很给力!

查看全部评分

282#
发表于 半小时前 | 只看该作者
下载学习 感觉太复杂
附上本人一直在用的批处理:
::一般使用:建议手动还原 需要还原时 手动运行一次脚本 重启即可
::设置启动秒还原:需要在注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
::右键新建字符串值 restore 样例: 字符串数值数据里就是填写 例:(D:\Win10Pro\Restore_Win10Pro.cmd)

@echo off&pushd %~dp0
setlocal enabledelayedexpansion
::提取批处理中的guid
  for /f %%i in ('dir /b del*.cmd') do set id=%%i
  for /f "tokens=3 delims= " %%a in (%id%) do set guid=%%a
::获取当前目录唯一VHD名称
  for /r %%d in (*.vhdx) do (set vhdpath=%%d)
::获取当前磁盘分区及路径  
  for /f,"delims=",%%a in ("!vhdpath!") do set vol=[%%~da]& set pn=%%~pa
::设置基本差分
  set Dif=BaseDif.vhdx
::设置两个复制的基本差分  
  set Sub_a=CopyDif_A.vhdx
  set Sub_b=CopyDif_B.vhdx

:Start
::创建基本差分
  if not exist %~dp0!Dif! (
     echo create vdisk file=%~dp0!Dif! parent="!vhdpath!"|diskpart >nul
  )  
:bcd_restore
   ::以下句成功是否为依据:成功Sub_a 失败Sub_b
   Copy /y %~dp0!Dif! %~dp0!Sub_a! >nul 2>nul
   if errorlevel 1  (
      Copy /y %~dp0!Dif! %~dp0!Sub_b! >nul 2>nul
      bcdedit /set !guid! osdevice vhd=!vol!!pn!!sub_b!
      bcdedit /set !guid! device vhd=!vol!!pn!!sub_b!
      ) else (
      bcdedit /set !guid! osdevice vhd=!vol!!pn!!sub_a!
      bcdedit /set !guid! device vhd=!vol!!pn!!sub_a!
    )
:reg
::查看BCD配置变化
  for /f "tokens=1*" %%c in ('bcdedit /enum !guid!') do (
                     if /i "%%c"=="device" (echo --BCD changed to %%d)
        )
  pause>nul
  exit
回复

使用道具 举报

281#
发表于 昨天 16:03 | 只看该作者
baby1277 发表于 2025-6-23 21:48
@Hnibuoy @huang0772
1楼楼底有网盘下载地址   红色字体的百度网盘,找仔细找下。
2楼有附件,也没有设 ...

感谢大佬!!!
回复

使用道具 举报

280#
 楼主| 发表于 前天 21:48 | 只看该作者
本帖最后由 baby1277 于 2025-6-23 21:49 编辑

@Hnibuoy @huang0772
1楼楼底有网盘下载地址   红色字体的百度网盘,找仔细找下。
2楼有附件,也没有设置权限下不了就灌几天水攒点经验。

回复

使用道具 举报

279#
发表于 前天 12:48 | 只看该作者
大佬,网盘能不能分享一份
回复

使用道具 举报

278#
发表于 前天 12:47 | 只看该作者
下载不了啊
回复

使用道具 举报

277#
发表于 前天 11:20 | 只看该作者
虽然不怎么用,但是必须支持一下!
回复

使用道具 举报

276#
发表于 前天 10:53 | 只看该作者
为什么下载不了
回复

使用道具 举报

275#
发表于 前天 10:52 | 只看该作者
大佬,还能下载吗
回复

使用道具 举报

274#
 楼主| 发表于 2025-6-15 23:13:41 | 只看该作者
@freesoft00
bcd无法访问大概是磁盘分区有问题,  没有分配用于引导的ESP分区。
应该是你的mbr没有分配 FAT32格式的分区
uefi启动必须要有个FAT或者FAT32格式的分区作为引导分区用于存放引导文件
回复

使用道具 举报

273#
发表于 2025-6-10 15:53:00 | 只看该作者
谢谢分享
回复

使用道具 举报

272#
发表于 2025-6-10 15:36:51 | 只看该作者
baby1277 发表于 2025-5-24 21:56
日志文件为空,判断为脚本遇到了错误 闪退了,没有执行后面的还原操作.....
由于脚本超量的if 和 for 命 ...

可能啊,只是可能
今天又测试了一下,可以安装成功了。最新版本的。
我怀疑是前几次安装后,把vhd所在分区盘符删除了的原因,所以恢复不管用。

不用有新问题,pe下面,如果bcd文件不自动挂载上,比如mbr磁盘使用uefi启动的pe,有些时候bcd是默认无法访问的,就是bcdedit会提示找不到bcd。这样脚本就无法运行了。
这种情况其实可以探测bcd所在分区。
或者给出选择,让用户手动输入bcd所在目录。
回复

使用道具 举报

271#
发表于 2025-6-3 20:50:01 | 只看该作者
现在用的仅仅是2个vhd系统,正常和恢复,恢复也仅仅是copy&restart 写在计划任务里,这回有新玩法了
回复

使用道具 举报

270#
发表于 2025-5-29 10:42:01 | 只看该作者
感谢楼主分享
回复

使用道具 举报

269#
发表于 2025-5-25 00:01:30 | 只看该作者
baby1277 发表于 2025-5-24 21:56
日志文件为空,判断为脚本遇到了错误 闪退了,没有执行后面的还原操作.....
由于脚本超量的if 和 for 命 ...

ltsc 2019
回复

使用道具 举报

268#
 楼主| 发表于 2025-5-24 21:56:23 | 只看该作者
freesoft00 发表于 2025-5-23 08:20
日志文件空的,没有内容

日志文件为空,判断为脚本遇到了错误 闪退了,没有执行后面的还原操作.....
由于脚本超量的if 和 for 命令,使用终端很容易发生闪退。
具体的我要看下你的系统才能确定原因,

pe下一般不会终端关联的

脚本还原的操作是在VHD系统上执行的,不是在PE上运行,和PE没有关系,24H系统大部分都是默认关联终端

这个是最后一个没有vhd.ini的版本   
VHD秒还原2024.12.24.zip (37.1 KB, 下载次数: 1)

点评

可能啊,只是可能 今天又测试了一下,可以安装成功了。最新版本的。 我怀疑是前几次安装后,把vhd所在分区盘符删除了的原因,所以恢复不管用。 不用有新问题,pe下面,如果bcd文件不自动挂载上,比如mbr磁盘使  详情 回复 发表于 2025-6-10 15:36
ltsc 2019  详情 回复 发表于 2025-5-25 00:01
回复

使用道具 举报

267#
发表于 2025-5-23 08:20:43 | 只看该作者
baby1277 发表于 2025-5-22 20:38
把完整vhdlog.txt日志文件发出来我看下原因,方便我查找原因。
或者把你的系统镜像包发给我,我看下是不 ...

日志文件空的,没有内容

点评

日志文件为空,判断为脚本遇到了错误 闪退了,没有执行后面的还原操作..... 由于脚本超量的if 和 for 命令,使用终端很容易发生闪退。 具体的我要看下你的系统才能确定原因, 脚本还原的操作是在VHD系统上执  详情 回复 发表于 2025-5-24 21:56
回复

使用道具 举报

266#
发表于 2025-5-22 22:00:29 | 只看该作者
本帖最后由 freesoft00 于 2025-5-22 22:01 编辑
baby1277 发表于 2025-5-22 20:38
把完整vhdlog.txt日志文件发出来我看下原因,方便我查找原因。
或者把你的系统镜像包发给我,我看下是不 ...

pe下一般不会终端关联的,而且在win8个win10pe都测试过。
记着上一个没有在ini中设置默认还原模式的时候的版本还是可以正常的。pe下安装后,正常启动有右键菜单,设置一次后还原启动是正常的
在配置文件中可以设置默认还原后就一直用这个版本了,也没有测试,直到后来再去看原来安装过的系统,并没有还原效果文件都在才发现
回复

使用道具 举报

265#
 楼主| 发表于 2025-5-22 20:38:32 | 只看该作者
本帖最后由 baby1277 于 2025-5-22 20:40 编辑
freesoft00 发表于 2025-5-22 17:56
VHD秒还原V1.4.20250508.zip
VHD秒还原V1.3.20250328.zip

把完整vhdlog.txt日志文件发出来我看下原因,方便我查找原因。
或者把你的系统镜像包发给我,我看下是不是系统的原因
另外脚本要用CMD关联打开,不要用终端来打开,在终端上运行批处理都容易报错或者失效。
很多系统默认就是用终端关联批处理的

点评

日志文件空的,没有内容  详情 回复 发表于 2025-5-23 08:20
pe下一般不会终端关联的,而且在win8个win10pe都测试过。 记着上一个没有在ini中设置默认还原模式的时候的版本还是可以正常的。pe下安装后,正常启动有右键菜单,设置一次后还原启动是正常的  详情 回复 发表于 2025-5-22 22:00
回复

使用道具 举报

264#
发表于 2025-5-22 17:56:56 | 只看该作者
baby1277 发表于 2025-5-11 10:29
@freesoft00
系统自带的WindowsDefender也可能会拦截VHD脚本。
我不用Windows-Defender,可能要长时间的 ...

VHD秒还原V1.4.20250508.zip
VHD秒还原V1.3.20250328.zip

测试了2个版本,都是一样,无法还原,还原模式C盘新建文件重启还在

VHD秒还原V1.3.20250328我是修改配置文件默认为还原模式,今天测试把这个删除改为默认的正常模式,安装后重启在正常模式右键没有切换模式的右键菜单,VHD秒还原V1.4.20250508也是这个情况。
所以这次我测试还原模式是在正常模式下,使用bcdedit修改默认菜单为还原模式重启测试的

日志文件忘记看了

点评

把完整vhdlog.txt日志文件发出来我看下原因,方便我查找原因。 或者把你的系统镜像包发给我,我看下是不是系统的原因 另外脚本要用CMD关联打开,不要用终端来打开,在终端上运行批处理都容易报错或者失效。  详情 回复 发表于 2025-5-22 20:38
回复

使用道具 举报

263#
发表于 2025-5-22 12:53:07 | 只看该作者
不一样的想法,不一样的用法,谢谢分享!
回复

使用道具 举报

262#
发表于 2025-5-15 14:52:38 | 只看该作者
我有多个系统,这个工具不错合式
回复

使用道具 举报

261#
发表于 2025-5-13 17:27:37 | 只看该作者
我就在找这个安装多系统,还可以还原,非常感谢。
回复

使用道具 举报

260#
发表于 2025-5-13 07:31:56 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

259#
发表于 2025-5-13 07:08:55 | 只看该作者
不错,下拉,谢谢分享。
回复

使用道具 举报

258#
发表于 2025-5-13 05:09:39 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

257#
 楼主| 发表于 2025-5-11 10:29:08 | 只看该作者
@freesoft00
系统自带的WindowsDefender也可能会拦截VHD脚本。
我不用Windows-Defender,可能要长时间的观察,才能得出以上结论,毕竟修改BCD属于敏感操作。
我建议你用Administrator用户登录,就不存在权限问题。
你试着查看以下内容寻找还原失败的原因
vhdlog.txt日志文件
使用bootice查看BCD菜单的VHD文件指向是否正确,和vhdlog.txt日志文件内容对比下。
系统开机启动项是否有VHD脚本
vhd差分文件大小是否正确
桌面右键菜单显示是否正常

点评

VHD秒还原V1.4.20250508.zip VHD秒还原V1.3.20250328.zip 测试了2个版本,都是一样,无法还原,还原模式C盘新建文件重启还在 VHD秒还原V1.3.20250328我是修改配置文件默认为还原模式,今天测试把这个删除改  详情 回复 发表于 2025-5-22 17:56
回复

使用道具 举报

256#
发表于 2025-5-10 19:04:03 | 只看该作者
baby1277 发表于 2025-5-10 11:06
@freesoft00
我刚用虚拟机和实体机测试都没有发现问题,你看下日志文件。

没有装安装软件
admin
等下周了再找机器测试了
回复

使用道具 举报

255#
发表于 2025-5-10 15:27:30 | 只看该作者
膜拜大神
回复

使用道具 举报

254#
 楼主| 发表于 2025-5-10 11:06:02 | 只看该作者
本帖最后由 baby1277 于 2025-5-10 11:09 编辑

@freesoft00
我刚用虚拟机和实体机测试都没有发现问题,你看下日志文件。

2025/05/10 10:58:05 开机进入"Windows11 还原模式"
2025/05/10 10:58:05 开机挂载"Windows_1b.vhdx"文件
2025/05/10 10:58:05 开机还原"Windows_11.vhdx"文件
2025/05/10 10:58:05 设置引导菜单导入"bcd01ah"文件
2025/05/10 10:58:05 设置"Windows11 还原模式"文件为"Windows_11.vhdx"
2025/05/10 10:58:05 设置"Windows11 还原模式"为默认引导菜单
--------------------------------------------------------------------------------
2025/05/10 10:56:28 开机进入"Windows11 还原模式"
2025/05/10 10:56:28 开机挂载"Windows_11.vhdx"文件
2025/05/10 10:56:28 设置引导菜单导入"bcd0bah"文件
2025/05/10 10:56:29 设置"Windows11 还原模式"文件为"Windows_1b.vhdx"
2025/05/10 10:56:29 设置"Windows11 还原模式"为默认引导菜单
--------------------------------------------------------------------------------
日志没有发现任何问题,文件也被还原,如果可能的原因。
1:安全软件拦截脚本的运行
2:系统组件缺失或者异常
3:没有管理员权限,一般权限的用户不行, 要隶属于Administrators用户组的管理员
4:开机启动项丢失,被安全软件删除了。

点评

没有装安装软件 admin 等下周了再找机器测试了  详情 回复 发表于 2025-5-10 19:04
回复

使用道具 举报

253#
发表于 2025-5-9 22:52:21 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-6-25 11:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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