无忧启动论坛

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

Snapshot还原当前系统分区的技术分析

[复制链接]
跳转到指定楼层
1#
发表于 2010-12-17 13:03:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
snapshot从1.4版开始支持还原当前操作系统所在分区,但似乎只能在gui中实现
找了半天也没有发现可以用命令行实现的方法或参数
哪位大大知道方法的麻烦说下
这是官方介绍内容http://www.drivesnapshot.de/en/restboot.htm
通过分析注册表发现
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
"BootExecute"=hex(7):61,00,75,00,74,00,6f,00,63,00,68,00,65,00,63,00,6b,00,20,\
  00,61,00,75,00,74,00,6f,00,63,00,68,00,6b,00,20,00,2a,00,00,00,73,00,6e,00,\
  61,00,70,00,6e,00,61,00,74,00,69,00,76,00,65,00,2e,00,65,00,78,00,65,00,00,\
  00,00,00
在“bootexecute”下多了一个启动程序
snapnative.exe                        c:\windows\system32\snapnative.exe

而在这里多了以下几个值
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Snapshot]
"AutoReboot"=dword:00000000
"AutoRebootSuccess"=dword:00000000
"Destination"="\\??\\C:"
"FullImage"="\\??\\x:\\C-Drive.sna"

关于从“bootexecute”键中运行的程序的特点
经查相关技术文档说是win系统在启动到这里时,所有系统分区中的文件都没有被锁定,而snapshot则巧妙的利用了win系统的这一点特性,通过在“bootexecute”键中添加snapnative.exe来还原系统
为什么不是snapshot.exe呢,因为在bootexecute这里运行的程序是很底层的native程序,普通程序在这里还没法运行

通过以上分析,虽然目前还没有命令行参数支持这种还原,但我们却可以通过注册导入相关的键值来实现

[ 本帖最后由 bfgxp 于 2010-12-19 13:03 编辑 ]

点评

辛苦了  发表于 2024-6-11 07:45

评分

参与人数 3无忧币 +8 收起 理由
yyz2191958 + 2 赞一个!
wuxin9712 + 5
tjone + 1 赞一个!

查看全部评分

2#
发表于 2010-12-17 13:15:56 | 只看该作者
[backup a volume]
  Snapshot C: X:\C-DRIVE.sna
         -A    - save ALL sectors, ignore free cluster info (maintenance)
         -L650 - Limit resulting imagesize to 650MB (CDROM size)
         -T    - Test generated image file (verify correct checksums)
         -W    - suppress <Hit any key> if started from scheduler
         -R    - Empty Recycle Bin for this drive before Backup
         -G    - Graphical status display for command line mode
         -PW=MyPassword    (also used for restore and viewing)
         -C="My comment" add a comment to the image
         -o[path][filename]  generate hash file with name "path\filename"
         -o    - don't generate hash file
         -h<HashFile> make a differential image

[backup multiple volumes and drives without drive letters]
  Snapshot C:+D:+HD1:3 X:\$disk-DRIVE.sna
          HD1:3 is the third partition on the first disk
          HD1:* can be used to backup all partitions on the first disk



Options for command line substitutions
Possible values for substitution are:
         $disk  is substituted with the drive letter
         $date  results in 050131 which represents January 31 2005
$computername  is substituted with the computername
         $type  results in "dif" or "ful" for differential or full image
      $weekday  is substituted with the first two characters of the Weekday
         $year  is substituted with the year (4 digits)
        $month  is substituted with the month (2 digits)
          $day  is substituted with the day of the month (2 digits)
         $hour  is substituted with the hour
       $minute  is substituted with the minute
       $second  is substituted with the second

[restore a volume]
  Snapshot X:\C-DRIVE.sna C:

[view a saved file]
  Snapshot X:\C.sna Z: -V
       explores X:\C.sna as virtual drive Z: (-VM for mount only)
       (-VQ for mount only and wait for event. Use --unmount to terminate)

[generate a new hash file from a full image]
  Snapshot X:\C.sna -h<HashFileName>

[info about a file]  Snapshot X:\C-DRIVE.sna    -I
[partition info   ]  Snapshot X:\C-DRIVE.sna    -P
[validate  file   ]  Snapshot X:\C-DRIVE.sna    -T

评分

参与人数 1无忧币 +5 收起 理由
wuxin9712 + 5

查看全部评分

回复

使用道具 举报

3#
 楼主| 发表于 2010-12-17 16:19:16 | 只看该作者

回复 #2 lindafu 的帖子

官方的命令行说明文档看了几遍了
Snapshot X:\C-DRIVE.sna C:
这条不行的
回复

使用道具 举报

4#
发表于 2010-12-17 22:22:18 | 只看该作者
原帖由 bfgxp 于 2010-12-17 16:19 发表
官方的命令行说明文档看了几遍了
Snapshot X:\C-DRIVE.sna C:
这条不行的

你照用X:\C-DRIVE.sna当然不行

X:\C-DRIVE.sna 表示Image放的位和名称
你应该不会放在X:\下吧

你应该改回你放的对应位置吧
回复

使用道具 举报

5#
 楼主| 发表于 2010-12-18 11:25:01 | 只看该作者

回复 #4 andos 的帖子

:)怎么说呢,还是多谢你这个解释,毕竟总有比我还菜的
回复

使用道具 举报

6#
发表于 2010-12-22 15:58:50 | 只看该作者
本人本机备份的恢复是在纯DOS下用的命令:
A:\snapshot restore HD1 auto  W:\c.drive.sna -Y -V
恢复主引导扇区(MBR)
A:\snapshot.exe restore HD1 MBR W:\c.drive.sna

声明下,是全镜像型的snapshot备份

楼主的意思好象是指针型的snapshot,恢复系统分区将在下一次启动 windows 前还原当前操作系统所在的分区..
在实际操作中,本人还不曾用过
主要是害怕,指针型的snapshot,备份的原盘坏了,数据应该是无法恢复的
回复

使用道具 举报

7#
发表于 2010-12-23 16:18:18 | 只看该作者
不错,也算真正脱离第三方系统了。

我对SNAPSHOT映像不好,两块硬盘之间备份及恢复。

备份一块硬盘其中一个分区,然后再恢复另一个硬盘某一分区,会导致WINDOWS对这个分区极不稳定,日志老是产生错误DISK
回复

使用道具 举报

8#
发表于 2010-12-23 16:43:08 | 只看该作者
原帖由 bfgxp 于 2010-12-17 13:03 发表
关于从“bootexecute”键中运行的程序的特点
经查相关技术文档说是win系统在启动到这里时,所有系统分区中的文件都没有被锁定,而snapshot则巧妙的利用了win系统的这一点特性,通过在“bootexecute”键中添加snapnative.exe来还原系统
为什么不是snapshot.exe呢,因为在bootexecute这里运行的程序是很底层的native程序,普通程序在这里还没法运行

通过以上分析,虽然目前还没有命令行参数支持这种还原,但我们却可以通过注册导入相关的键值来实现



很有价值,期待进一步研究,实现傻瓜化一键还原。
回复

使用道具 举报

9#
发表于 2010-12-23 22:24:26 | 只看该作者
原帖由 bfgxp 于 2010-12-17 13:03 发表
snapshot从1.4版开始支持还原当前操作系统所在分区,但似乎只能在gui中实现
找了半天也没有发现可以用命令行实现的方法或参数
哪位大大知道方法的麻烦说下
这是官方介绍内容http://www.drivesnapshot.de/en/ ...

要怎么样才能获得: snapnative.exe 呢???

SORRY, 找到了。。。。 光问没动手....执行一次恢复就有了.

[ 本帖最后由 ban_r 于 2010-12-23 22:39 编辑 ]
回复

使用道具 举报

10#
发表于 2010-12-23 23:20:47 | 只看该作者
一般指针型的snapshot都是只读的,且file system snapshot都是后台拷贝
如果能实现傻瓜式的snapshot一键还原,应该同三名一键恢复,雨过天晴的东西
差不多,就是不知道对系统性能影响大不大?
回复

使用道具 举报

11#
发表于 2010-12-24 00:25:50 | 只看该作者
刚试验过,在WIN7系统中只要修改了:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
"BootExecute"=hex(7):61,00,75,00,74,00,6f,00,63,00,68,00,65,00,63,00,6b,00,20,\
  00,61,00,75,00,74,00,6f,00,63,00,68,00,6b,00,20,00,2a,00,00,00,73,00,6e,00,\
  61,00,70,00,6e,00,61,00,74,00,69,00,76,00,65,00,2e,00,65,00,78,00,65,00,00,\
  00,00,00
中的相关信息,确保system32中有snapnative.exe ,那么重新启动WIN7 就能自动恢复

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Snapshot]
"AutoReboot"=dword:00000000
"AutoRebootSuccess"=dword:00000000
这两项对应为: 不重启, 完成后重启 出错重启

[ 本帖最后由 ban_r 于 2010-12-24 00:27 编辑 ]
回复

使用道具 举报

12#
发表于 2010-12-24 08:41:30 | 只看该作者
原帖由 lianjiang 于 2010-12-23 16:43 发表


很有价值,期待进一步研究,实现傻瓜化一键还原。

貌似只支持当前有安装系统才能这样使用吧?

如果当前没装系统就没用了,还是要到PE了吧...
回复

使用道具 举报

13#
发表于 2010-12-24 10:23:34 | 只看该作者
原帖由 andos 于 2010-12-24 08:41 发表

貌似只支持当前有安装系统才能这样使用吧?

如果当前没装系统就没用了,还是要到PE了吧...


没系统要能云还原,那是最高境界。
那样就什么都不需要了,靠意念就可以,呵呵。
回复

使用道具 举报

14#
发表于 2010-12-24 12:22:21 | 只看该作者
原帖由 lianjiang 于 2010-12-24 10:23 发表


没系统要能云还原,那是最高境界。
那样就什么都不需要了,靠意念就可以,呵呵。

DOS版...可是这个没DOS版...

所以目前它就是这样...
回复

使用道具 举报

15#
发表于 2010-12-24 13:15:58 | 只看该作者
根据楼主的技术分析,写了一个傻瓜一键还原,欢迎测试。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=183946&extra=page%3D1



[ 本帖最后由 lianjiang 于 2010-12-24 13:47 编辑 ]
回复

使用道具 举报

16#
 楼主| 发表于 2010-12-24 14:44:38 | 只看该作者
回songhangzhou
一样的是全镜像型的
回复

使用道具 举报

17#
发表于 2010-12-30 15:03:52 | 只看该作者
我们都绕了个弯路了..
其实:本来就有这个参数的: --schedule
snapshot --schedule C: x:\image-C.sna
回复

使用道具 举报

18#
发表于 2010-12-30 15:11:16 | 只看该作者
原帖由 ban_r 于 2010-12-30 15:03 发表
我们都绕了个弯路了..
其实:本来就有这个参数的: --schedule
snapshot --schedule C: x:\image-C.sna


不错的发现。谢谢分享。
回复

使用道具 举报

19#
发表于 2010-12-30 15:29:31 | 只看该作者
原帖由 ban_r 于 2010-12-30 15:03 发表
我们都绕了个弯路了..
其实:本来就有这个参数的: --schedule
snapshot --schedule C: x:\image-C.sna


这参数哪里找到的?
帮助信息里似乎没有这个参数的说明。
回复

使用道具 举报

20#
发表于 2010-12-30 16:16:45 | 只看该作者
原帖由 lianjiang 于 2010-12-30 15:29 发表


这参数哪里找到的?
帮助信息里似乎没有这个参数的说明。

deUPX
之后用notepad打开那snapshot.exe就会找到

scheduling the restore of x:\image-C.sna to C: during the next reboot:
snapshot --schedule C: x:\image-C.sna
--autoreboot:off       don't boot after the restore has finished
--autoreboot:success   reboot after the image was successfully restored
--autoreboot:any       reboot after the image was restored
--listschedule         list the scheduled restore
--removeschedule       removes the scheduled restore


--addDriver  - adds a new Hard Disk Diver to a restored Windows system drive.
                You need the driver.sys and the driver.inf file. 这一个应该就是传说中的driver injection功能吧....

[ 本帖最后由 andos 于 2010-12-30 16:24 编辑 ]

点评

精力不是一般的好哇,牛人!  详情 回复 发表于 2013-10-17 09:34
回复

使用道具 举报

21#
发表于 2010-12-30 16:28:10 | 只看该作者
原帖由 andos 于 2010-12-30 16:16 发表

deUPX
之后用notepad打开那snapshot.exe就会找到

scheduling the restore of x:\image-C.sna to C: during the next reboot:
snapshot --schedule C: x:\image-C.sna
--autoreboot:off       don't b ...



都是高手,能挖掘。
回复

使用道具 举报

22#
发表于 2010-12-30 16:30:29 | 只看该作者
原帖由 lianjiang 于 2010-12-30 16:28 发表



都是高手,能挖掘。

见笑了,只是我在用别方面的命令行软件用熟了,那时就发现可以用notepad打开来查看而已,呵呵~~
回复

使用道具 举报

23#
 楼主| 发表于 2010-12-31 07:34:26 | 只看该作者

回复 #20 andos 的帖子

厉害,终于找出来了。
官方说明没有更新真害人啊
这样就不必自己写gui了
回复

使用道具 举报

24#
发表于 2010-12-31 07:50:38 | 只看该作者
原帖由 bfgxp 于 2010-12-31 07:34 发表
厉害,终于找出来了。
官方说明没有更新真害人啊
这样就不必自己写gui了


也说明了这个软件的开发商,不是很正规。
连帮助都不能同步更新。
回复

使用道具 举报

25#
发表于 2010-12-31 08:07:30 | 只看该作者
原帖由 lianjiang 于 2010-12-31 07:50 发表


也说明了这个软件的开发商,不是很正规。
连帮助都不能同步更新。

没有chnagelog也一直被老外讨厌,每次新版都不知道更新了些什么...

开发者应该是只有一个人似的

[ 本帖最后由 andos 于 2010-12-31 08:08 编辑 ]
回复

使用道具 举报

26#
发表于 2010-12-31 08:10:11 | 只看该作者
原帖由 andos 于 2010-12-31 08:07 发表

没有chnagelog也一直被老外讨厌,每次新版都不知道更新了些什么...

开发者应该是只有一个人似的


确实是的,不知道更新什么,是很让人讨厌的。
喜欢的只好见一个下一个了。
回复

使用道具 举报

27#
发表于 2010-12-31 08:52:06 | 只看该作者
原帖由 lianjiang 于 2010-12-31 08:10 发表


确实是的,不知道更新什么,是很让人讨厌的。
喜欢的只好见一个下一个了。

所以有老外说它是只更新日期和License期限而已,哈哈~~

1.40这个版本已经一直很久没变动过版号...
回复

使用道具 举报

28#
发表于 2010-12-31 09:12:13 | 只看该作者
原帖由 andos 于 2010-12-31 08:52 发表

所以有老外说它是只更新日期和License期限而已,哈哈~~

1.40这个版本已经一直很久没变动过版号...


d0z的ghost安装器1年多以来,也是每次更新写的都是“更新引导模块”。
回复

使用道具 举报

29#
 楼主| 发表于 2010-12-31 09:32:10 | 只看该作者

回复 #28 lianjiang 的帖子

大汗,也许确实只更新了引导模块
回复

使用道具 举报

30#
 楼主| 发表于 2010-12-31 09:33:50 | 只看该作者
原帖由 <i>lianjiang</i> 于 2010-12-31 07:50 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2126391&ptid=183485" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />

<br />
也说明了这个软件的开发商,不是很正规。<br />
连帮助都不能同步更新。
<br />
但不可否认,这个软件非常优秀
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 14:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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