admin管理员组

文章数量:1530085

基于VHD和grub4dos的秒还原系统

效果

每次启动都进入干净的系统。

准备工作

  1. 系统安装调试好,装入father.vhd
  2. 使用grub4dos启动
    也可以使用bootmgr启动grldr
  3. 其他必要文件

原理

  1. 基于father.vhd 建立两个差分mirrorA.vhd和mirrorB.vhd
  2. 轮流使用mirrorA与mirrorB.
  3. 且进入mirrorA时重置mirrorB,进入mirrorB时重置mirrorA

细节

  1. 轮流启动

    1. 磁盘上建立autorec.bat,并在组策略设置开机启动

    开始----->gptdit.msc----->计算机设置----->脚本----->启动

    1. grldr设置last的值
      命令的含义下次讲
title 自动还原
find --set-root /grldr
cat --locate=last=mirrorA --replace=last=mirrorB /autorec.bat && command /VHDBOOT/NTBOOT NT6=/mirrorB.vhd
cat --locate=last=mirrorB --replace=last=mirrorA /autorec.bat && command /VHDBOOT/NTBOOT NT6=/mirrorA.vhd
  1. 互相重置

autorec.bat内容
@echo off
set last=mirrorA   
if %last%=mirrorA (goto FA) else (goto FB)

:FA
rem 重置mirrorB
del d:\mirrorB.vhd
copy d:\bak.vhd d:\mirrorB.vhd
exit
:FB
rem 重置mirrorA
del d:\mirrorA.vhd
copy d:\bak.vhd d:\mirrorA.vhd
exit
rem 我是无用信息,把我复制几行,使文件大于2KB

lsat=mirrorA表示最后一次使用的是mirrorA,这个值会被grldr设置
文件的路径需要注意,最好使用绝对路径
bat文件最后需要加一些无用的信息,使文件体积大于2KB,不然grldr写入会出错

其他菜单

title 最后一次使用的系统
find --set-root /grldr
cat --locate=last=mirrorA /autorec.bat && command /NTBOOT NT6=/mirrorA.vhd
cat --locate=last=mirrorB  /autorec.bat && command /NTBOOT NT6=/mirrorB.vhd

不小心关机也不怕,还能找回最后一次的数据

title 从硬盘上系统启动
find --set-root /bootmgr
chainloader /bootmgr
title 重启
reboot
title 关机
halt

用到的文件说明

路径

D盘根目录下放

  • autorec.bat 需要开机启动的文件,用来重置mirror
  • grldr grub4dos的启动文件
  • menu.lst grub4dos的菜单文件
  • bootmgr win7的启动文件
  • VHDBOOT文件夹 grub4dos用来启动vhd的文件

本文标签: 系统vhdgrub4dos