无忧启动论坛

 找回密码
 注册
搜索

在VHD系统下,实现每次重启都还原到最佳初始状态的完美方案

查看数: 1299 | 评论数: 64 | 收藏 21
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-10-11 12:50

正文摘要:

本帖最后由 D_M_GuYing 于 2025-10-11 20:55 编辑 调整了操作顺序:先完成差分文件的创建,确认成功后再修改启动引导配置。这样可以避免在差分文件创建失败的情况下错误修改引导配置 链接: https://yun.139.com/ ...

回复

chiaos 发表于 昨天 18:26
用了10几年了,都是老技术
面条渣渣 发表于 昨天 18:19
技术贴,谢谢分享
fd8526547 发表于 昨天 17:36
学习了 谢谢
langyun 发表于 昨天 17:30
D_M_GuYing 发表于 2025-10-13 17:07
开机后,也就是在计算机登录的时候,如果用的A.vhdx登录,开机后就把启动项变成了B.vhdx,也就达到了下次 ...

收到,谢谢

D_M_GuYing 发表于 昨天 17:07
本帖最后由 D_M_GuYing 于 2025-10-13 17:08 编辑
langyun 发表于 2025-10-13 14:34
计划任务?是开机后执行还是关机前执行?

开机后,也就是在计算机登录的时候,如果用的A.vhdx登录,开机后就把启动项变成了B.vhdx,也就达到了下次重启还原的目的,其实关机前执行也是可以的,但不保险,关机的情况变数太大了,有什么不正常关机就执行不了了

点评

收到,谢谢  详情 回复 发表于 昨天 17:30
Paudy 发表于 昨天 14:45
不错的办法
langyun 发表于 昨天 14:34
计划任务?是开机后执行还是关机前执行?

点评

开机后,也就是在计算机登录的时候,如果用的A.vhdx登录,开机后就把启动项变成了B.vhdx,也就达到了下次重启还原的目的  详情 回复 发表于 昨天 17:07
fegr 发表于 前天 13:42
感谢分享!
2011w123l 发表于 前天 13:22
好方法,谢谢分享!
D_M_GuYing 发表于 前天 13:20
fh123456 发表于 2025-10-12 13:06
方法可以啊,但是觉得没必要每次都还原

那就按你的想法在计划任务里设置吧,手动也行
fh123456 发表于 前天 13:06
方法可以啊,但是觉得没必要每次都还原

点评

那就按你的想法在计划任务里设置吧,手动也行  详情 回复 发表于 前天 13:20
abelll 发表于 前天 12:41
谢谢分享
2747157 发表于 前天 12:27
完美
D_M_GuYing 发表于 前天 12:06
天风 发表于 2025-10-12 09:44
想起了我很久之前的一篇帖子,找出来给楼主分享一下,用GRUB的DD命令,快速还原。
http://bbs.wuyou.net/f ...

都是些很不错的方法,各人根据自己的喜好的要求选择使用就可以,我的做法和思路就是一个,让我的电脑每次重启时,都还原到最佳状态,不需要备份还原的启动项,只有一个启动项够我启动就可以了
2012zcsh 发表于 前天 11:35
谢谢分享
makoto23 发表于 前天 11:09
学习一下
2012sinkr 发表于 前天 10:57
多谢楼主分享,学习了
hlowld 发表于 前天 09:59
之前好像哪里看到过,说grub里的dd命令脱离文件系统操作文件,貌似有什么问题,不是很完美。久了也忘了
天风 发表于 前天 09:44
想起了我很久之前的一篇帖子,找出来给楼主分享一下,用GRUB的DD命令,快速还原。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=434667
===============================
引导菜单文件:

title 【1】VHD OS主系统
find --set-root --ignore-floppies --ignore-cd /bvhd/os/1.vhd
command /BVHD/grub/SISO NTBOOT=NT6=/bvhd/os/1.VHD  

title 【2】 VHD OS秒还原并重启
find --set-root --ignore-floppies --ignore-cd /bvhd/os/2.vhd
dd if=()/bvhd/os/2.vhd of=()/bvhd/os/1.vhd
command /BVHD/grub/SISO NTBOOT=NT6=/bvhd/os/1.VHD  
=============================
OS.VHD为父VHD
1.VHD为子系统
2.VHD为子系统备份,1.VHD出错的时候,用2.VHD覆盖1.VHD,并加载运行。

演示文件下载
https://www.123pan.com/s/bH5A-4sRBh
提取码:3333

点评

都是些很不错的方法,各人根据自己的喜好的要求选择使用就可以,我的做法和思路就是一个,让我的电脑每次重启时,都还原到最佳状态,不需要备份还原的启动项,只有一个启动项够我启动就可以了  详情 回复 发表于 前天 12:06
面条渣渣 发表于 前天 09:15
支持支持
201012121135 发表于 前天 07:52
谢谢分享
nie956 发表于 前天 07:52
多谢分享,学习了
wang1126 发表于 前天 07:23
谢谢楼主分享
chibuzhu 发表于 前天 00:46
感谢分享
tingtao666 发表于 3 天前
感谢分享 !
baby1277 发表于 3 天前
本帖最后由 baby1277 于 2025-10-11 23:26 编辑

vhd还原研究了半年,分享下我的方法。

安装阶段:
1:差分 a.vhdx  b.vhdx  back.vhdx
echo create vdisk file=%~dp0back.vhdx parent=%~dp0Win11.vhdx|diskpart
copy /y back.vhdx b.vhdx
copy /y back.vhdx a.vhdx

2:创建 引导a.vhdx的bcd文件: a_bcd   (挂载vhd后用bcdboot创建引导菜单 再用bcdedit /export导出)
3:创建 引导a.vhdx的bcd文件: b_bcd

开机运行阶段:
用back.vhdx 覆盖a.vhdx和b.vhdx  复制成功则导入对应的bcd文件来改变vhd文件路径

cd /d %~dp0
copy /y back.vhdx a.vhdx && bcdedit /import "%cd%\a_bcd"
copy /y back.vhdx b.vhdx && bcdedit /import "%cd%\b_bcd"



以上开机脚本只能用于比较固定的引导菜单,但也可以变通些。
读取bcd文件的guid 用 bcdedit  /default 来改变vhd文件路径
这时bcd文件仅仅是存储guid和vhd文件路径,不导入就不会影响前期添加的引导菜单。

cd /d %~dp0
copy /y back.vhdx a.vhdx && for /f "tokens=2" %%i in ('bcdedit /store "%cd%\a_bcd" /enum {default} /v^|find /i "resumeobject"') do bcdedit  /default %%i
copy /y back.vhdx b.vhdx && for /f "tokens=2" %%i in ('bcdedit /store "%cd%\b_bcd" /enum {default} /v^|find /i "resumeobject"') do bcdedit  /default %%i

就这么简单,不需要复杂的逻辑,两三句脚本搞定。

D_M_GuYing 发表于 3 天前
jlshnlhj 发表于 2025-10-11 21:13
父:A.vhdx差分出3个:a.vhdx,b.vhdx,bak.vhdx,每个4M左右。
父vhdx里建批处理开机运行:
copy bak.vh ...

什么事儿都是有变数的,你把第二变就给固定了,这个思维逻辑要不得
D_M_GuYing 发表于 3 天前
jlshnlhj 发表于 2025-10-11 21:13
父:A.vhdx差分出3个:a.vhdx,b.vhdx,bak.vhdx,每个4M左右。
父vhdx里建批处理开机运行:
copy bak.vh ...

就说咱俩就不在一个路上,别再论了,你的方法,早就有。我只是在从另一个角度在实现同一个目的,我的目的就是要每次开机重启就恢复原位。那你弄那么多a.vhdx,b.vhdx,bak.vhdx,建立N个启动项是不是就没意义了?我的目的就是无论是谁,无论你的VHDX在哪里,你文件名是什么,尽可能的,排除所有外在因素,只要达到前题条件,就可以实现目的。还有,你玩来玩儿去的,搞不好哪次你的b.vhdx,bak.vhdx就失效了,因为你母文件早就修改了,你的b.vhdx,bak.vhdx是2000年创建的....再说,你的b.vhdx,bak.vhdx还不是以父文件为根本作的,你浪费那到几毫秒从根本上重作一个差分,总比用旧的要好,,
jlshnlhj 发表于 3 天前
本帖最后由 jlshnlhj 于 2025-10-12 19:35 编辑

父:A.vhdx差分出3个:a.vhdx,b.vhdx,bak.vhdx,每个4M左右。
这样可以交替恢复,先用a.vhdx,故障后重启,进b.vhdx,开机成功后自动执行:copy bak.vhdx a.vhdx,此时a.vhdx已恢复。以后一直b.vhdx,故障后再重启,进a.vhdx,开机成功后a.vhdx恢复。


点评

什么事儿都是有变数的,你把第二变就给固定了,这个思维逻辑要不得  详情 回复 发表于 3 天前
就说咱俩就不在一个路上,别再论了,你的方法,早就有。我只是在从另一个角度在实现同一个目的,我的目的就是要每次开机重启就恢复原位。那你弄那么多a.vhdx,b.vhdx,bak.vhdx,建立N个启动项是不是就没意义了?我  详情 回复 发表于 3 天前

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

闽公网安备 35020302032614号

GMT+8, 2025-10-14 21:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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