无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 35015|回复: 83
打印 上一主题 下一主题

[教程] UEFI启动模式下实现VHD秒还原

    [复制链接]
1#
发表于 2021-1-17 19:35:18 | 显示全部楼层
本帖最后由 oym2016 于 2021-1-19 08:29 编辑

按楼主思路,做了个 手动还原restore.cmd
::父盘=Win81x64.vhdx  差分盘=BaseOS.vhdx
::批处理重复复制 差分盘为二个不同名的子盘 供实际使用文件.
::grub2(ufei)识别不同的标志,启动所对应的磁盘镜像
::子盘1=SubOS_1.vhdx  标志=SubOS.1  
::子盘2=SubOS_2.vhdx  标志=SubOS.2
@ECHO off
PUSHD %~dp0
:Start
FOR /F "tokens=*" %%G in ('dir /s /b SubOS.*') DO (goto :revhd)
::第一次无标志时 创建SubOS_1.vhdx 标志=SubOS.1;SubOS_2.vhdx
  COPY %~dp0BaseOS.vhdx %~dp0SubOS_1.vhdx >nul
  ECHO SubOS_2vhdx >%~dp0SubOS_2.vhdx
  ECHO SubOS1 >%~dp0SubOS.1
GOTO :end
:revhd
::获取BaseOS.vhdx  SubOS_1.vhdx SubOS_2.vhdx 文件大小
for /f %%i in ('dir /s /b %~dp0BaseOS.vhdx') do (set size_b=%%~zi)
for /f %%i in ('dir /s /b %~dp0SubOS_1.vhdx') do (set size_1=%%~zi)
for /f %%i in ('dir /s /b %~dp0SubOS_2.vhdx') do (set size_2=%%~zi)

IF EXIST %~dp0SubOS.1 (
::如果SubOS_1.vhdx已还原过, 程序退出.
   if %size_1% equ %size_b% echo SubOS_1.vhdx Restored OK & TIMEOUT /t 5&exit  
   DEL /S %~dp0SubOS_2.vhdx >nul
   COPY %~dp0BaseOS.vhdx %~dp0SubOS_2.vhdx >nul
   ECHO SubOS2 >%~dp0SubOS.2
   DEL %~dp0SubOS.1 >nul
) ELSE (
::如果SubOS_2.vhdx已还原过, 程序退出.
   if %size_2% equ %size_b% echo SubOS_2.vhdx Restored OK & TIMEOUT /t 5&exit
   DEL /S %~dp0SubOS_1.vhdx >nul
   COPY %~dp0BaseOS.vhdx %~dp0SubOS_1.vhdx >nul
   ECHO SubOS1 >%~dp0SubOS.1
   DEL %~dp0SubOS.2 >nul
)
:end
echo SubOS Restored !!!
TIMEOUT /t 5
exit

::grub2菜单
menuentry "Windows 8.1 Vhdx"   --class windows  {
   if search -n -s -f /vhdos/SubOS.1;then
      ntboot --efi=/vhdos/bootmgfw.efi --vhd /vhdos/SubOS_1.vhdx
   elif
      search -n -s -f /vhdos/SubOS.2;then
       ntboot --efi=/vhdos/bootmgfw.efi --vhd /vhdos/SubOS_2.vhdx
   fi;
}

restore.7z

842 Bytes, 下载次数: 41, 下载积分: 无忧币 -2

点评

666 我觉得用这种方式引导无论是自动或手动 都挺方便的 后续的维护也方便 嗯..据说DD的方式不太好 也不支持UEFI  详情 回复 发表于 2021-1-18 11:17
回复

使用道具 举报

2#
发表于 2022-2-12 13:33:16 | 显示全部楼层
q2811121939 发表于 2021-11-21 20:43
copy D:\System\BAK.vhdx D:\System\B1.vhdx /y
copy D:\System\BAK.vhdx D:\System\B2.vhdx /y
bcdedi ...

楼主构思秒,想还原用"Huan Yuan"项,不想还原就继续用"Qi Dong"项.
想每次默认自动启动还原系统也可用:
  copy D:\System\BAK.vhdx D:\System\B1.vhdx /y
  if errorlevel 1 bcdedit /default {3349dfe9-d265-11ea-b389-d0509993fc4a}
copy D:\System\BAK.vhdx D:\System\B2.vhdx /y
if errorlevel 1 bcdedit /default {b6de56c0-d268-11ea-b9b6-d0509993fc4a}
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-25 02:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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