无忧启动论坛

标题: 手把手教你制作属于自己的一键还原软件 [打印本页]

作者: 贝壳    时间: 2011-9-16 14:14
标题: 手把手教你制作属于自己的一键还原软件
需要说明的是,本教程是使用grub4dos和贝壳一键还原的备份还原内核作为使用和说明的,如果不喜欢g4d或者贝壳软件的,可以不用往下看了。

本教程的说明采用了grub4dos来作为引导说明,如果你不喜欢grub4dos你也可以采用其它的引导来作为引导。另外,这个一键还原采用的是热键的方式。

下面进入教程说明:
首先是下载需要的软件包,可以到这里下载:
http://www.vdisk.cn/down/index/8864671A8538
或者:http://www.vdisk.cn/beikel在这里选择BeiKel_DIY.zip包下载

下载后解压就可以看到如下一些文件:
皮肤生成器、beikel、bkimage、bsldr、bsldr.mbr、beikel.cfg和oem.png。


下面说明一下这些文件怎么使用。
这个一键还原的方式是这样的:启动电脑,按下热键,然后可以进行系统的备份或者还原。
那么我们就需要两个参数,一个是系统分区,一个是存放镜像文件的分区,这两个分区必须是在同一个硬盘里的,例如不能系统分区在第一个硬盘,存放镜像文件的分区在另一个硬盘下。

下面我以我自己的XP系统来作为说明。
我的系统分区是C盘,我存放镜像文件的分区是E盘,注意C盘和E盘都是在同一个硬盘里的

1、在E盘下创建beikelsystem目录(当然你也可以命名成其它名字,这个名字的修改在后面说明),然后把下载下来的beikel和bkimage文件拷贝到这个文件夹下。
2、在E盘下创建BeiKelSystemBackupImage目录(当然你也可以命名成其它名字,这个名字的修改在后面说明),这个文件夹是用来存放备份的镜像文件的。
3、将bsldr拷贝到E盘的根目录下。
4、用软件修改bsldr.mbr里的热键和等待时间(不懂可以看grub4dos的教程),然后将这个文件写入硬盘的引导扇区里,即是mbr扇区里,也就是第0个扇区(不懂可以看grub4dos的教程)。
5、下面是DIY最重要的地方了,这个地方就是menu.lst的编写。menu.lst可以分两种,一种是内置的menu.lst,一种是外置的menu.lst,我这里采用了内置的menu.lst,外置的也一样,等下说明。
我们用二进制软件打开bsldr文件找到0x3f660位置可以看到这个内置的menu.lst。如果采用外置的menu.lst,它将是下面这样的(其内容和内置的一样)。
default 0
timeout 0
hiddenmenu

title beikel system recover 2.0.0
find --set-root /beikelsystem/bkimage
kernel /beikelsystem/bkimage quit vga=791 LG=0 BT=0 ST=0 RT=0 INO=0 DID=3314271627 DSIZE=20964825 SPT=4 SPID=0 SPO=63 SPS=10233336 DPT=4 DPID=0 DPO=10233468 DPS=90715288 DST_PATH=/BeiKelSystemBackupImage
initrd /beikelsystem/beikel

bsldr里的内置菜单如下所示,你可以根据自己的情况修改这个菜单:


下面来说明这个menu.lst的写法,它直接关系到个人DIY自己一键还原的关键。
首先是
title beikel system recover 2.0.0
这个是启动时的title,这个不多说。

find --set-root /beikelsystem/bkimage
这个是查找所有分区的beikelsystem目录下的bkimage文件,如果找到就设这个分区为root分区。上面第一步说的,如果你想改别的目录名就可以在这里改。例如在上面第一步说的在E盘下创建mysystem目录然后把下载下来的beikel和bkimage文件拷贝到这个文件夹下。那么在这里就应该是find --set-root /mysystem/bkimage,另外也把initrd /beikelsystem/beikel改成initrd /mysystem/beikel

kernel /beikelsystem/bkimage quit vga=791 LG=0 BT=0 ST=0 RT=0 INO=0 DID=3314271627 DSIZE=20964825 SPT=4 SPID=0 SPO=63 SPS=10233336 DPT=4 DPID=0 DPO=10233468 DPS=90715288 DST_PATH=/BeiKelSystemBackupImage
非常重要的注意:这句话是一整句话,中间只有空格,没有任何的换行,千万千万不要换行,不然就出错的了。
这句话就是关键了(如果你改了上面的目录,这里的beikelsystem也相应的改成mysystem)。
基本上kernel /beikelsystem/bkimage quit vga=791 这句是不需要改的,注意千万不要改quit vga=791 这两句,而这句话后面LG=0开始的这些就可以改,而且也是diy的关键。

下面解释后面参数的意思:
LG=0 :这个是多语言的选择,0:是简体中文,1:是繁体中文,2:英文。
BT=0 :这个是备份的类型,0:会弹出有“系统备份”和“系统还原”的选择对话框(如下图)
下图是用户自己选择备份还是还原


      
      1:直接备份,会直接弹出“是否备份系统”的对话框,不会弹出“系统备份”和“系统还原”的选择对话框。

      2:直接还原,会直接弹出“是否还原系统”的对话框,不会弹出“系统备份”和“系统还原”的选择对话框。
ST=0 :暂时不用,置0。
RT=0 :暂时不用,置0。
INO=0:暂时不用,置0。
DID=3314271627 :硬盘id号,在硬盘第0扇区的0x1b8偏移处的4个字节,我的如下图,转换成10进制数就是3314271627。
                              我的是0xc58bc58b(和二进制软件显示的是反过来的,这个注意了)。

DSIZE=20964825 :硬盘的大小(扇区数)。
SPT=4 :暂时不用,可以置0。
SPID=0:暂时不用,置0。
SPO=63:源分区(即我要备份的C分区)的偏移量(单位是扇区)。
SPS=10233336 :源分区(即我要备份的C分区)的大小(单位是扇区)。
DPT=4 :暂时不用,可以置0。
DPID=0:暂时不用,置0。
DPO=10233468:目的分区(即我要存放镜像文件的E分区)的偏移量(单位是扇区)。
DPS=90715288 目的分区(即我要存放镜像文件的E分区)的大小(单位是扇区)。
DST_PATH=/BeiKelSystemBackupImage :存放镜像文件的目录,上面第2步骤里创建的目录,注意了,前面一个斜杠后面目录名,最后面没有斜杠的,如果你第2步骤在E盘创建保存镜像文件的目录名改变了,这里也需要相应的改变。
最后的E盘就是这样的:


这些参数就说完了,现在在总结一下。贝壳一键还原会根据硬盘的ID和大小找到这个硬盘,然后在这个硬盘里遍历所有的分区,找到符合源分区的偏移位置和大小的源分区,找到符合目的分区的偏移位置和大小的目的分区,如果源分区和目的分区中的任何一个没有找到,就会查找下一个硬盘,直到找到硬盘的ID和大小都符合的硬盘,然后在去找这个硬盘里的符合源分区的偏移位置和大小的源分区和符合目的分区的偏移位置和大小的目的分区。
即是说,只有硬盘的ID和大小和源分区的偏移位置和大小和目的分区的偏移位置和大小都符合的,才进行备份和还原。
如果参数出错,将退出程序,重新启动电脑。

注意了,源分区是要备份和还原的分区,目的分区是保存镜像文件的分区。
分区偏移扇区数是分区在整个硬盘的绝对偏移量,以扇区为单位
分区的大小是整个分区的总扇区数,也是以扇区为单位,相差一些无所谓,但误差不要太大太离谱


备份会将源分区备份到目的分区的DST_PATH变量指定的目录下,镜像文件的命名是固定的,不要改动
还原将会从目的分区中的DST_PATH变量指定的目录下找到镜像文件,然后还原到源分区

变量之间用空格隔开,不能换行

变量原理说明:
找到硬盘id为DID大小为DSIZE的硬盘里的需要备份或者还原的源分区,这个分区用分区偏移量SPO和分区大小SPS标识,将这个分区备份到以DPO为偏移量以DPS为大小的目的分区中的以DST_PATH变量标识的目录下(还原相反)。

如果BT变量设置为0,则按热键进入后,由用户自己选择是备份还是还原。
如果BT变量是1,则是备份,按确定后直接备份
如果BT变量是2,则是还原,按确定后直接还原

另外,这个DIY版和贝壳系统还原热键版有些不一样,增加了一些东西 ,虽然变量一样,但变量的解释是不一样的,不要混淆了。

喜欢1jf9ky引导的,可以用1jf9ky来作为MBR引导,然后用grldr作为分区的DBR引导,menu.lst还是上面说的那样。

最后剩下的是皮肤和diy的oem图片信息。
进入“皮肤生成器“目录,运行“皮肤生成器.exe“,如下图:


然后自己选择喜欢的软件各个位置的颜色,然后点击另存为生成皮肤文件,把这个皮肤文件命名位beikel.cfg,一定要这个名字,然后拷贝到beikelsystem的目录下,如果beikelsystem目录下没有beikel.cfg这个文件将会采用默认的肤色。

另外oem.png是oem图片信息,可以将这个文件拷贝到beikelsystem目录下,名字一定是oem.png,图片格式一定是png的格式,如果beikelsystem目录下没有这个图片,将会采用默认的oem图片。

最后看下beikelsystem目录下的文件:


如果你参数设置正确,那么你启动电脑,按下热键就可以进行备份或还原了:

最后如果你是软件爱好者,那你可以写软件来做自己的一键还原了,如果你是手动爱好者,那你也可以按照上面说的自己动手制作一个属于自己的一键还原软件了。



[ 本帖最后由 2010beikel 于 2011-9-19 11:08 编辑 ]
作者: renchmin    时间: 2011-9-16 14:51
楼主的教程做的很不错的啊,支持了啊。
作者: hydn    时间: 2011-9-16 16:56
这个不是基于GHOST的吧?
作者: 贝壳    时间: 2011-9-16 16:58
标题: 回复 #3 hydn 的帖子
不是基于ghost的,是采用贝壳备份还原的内核。
作者: 贝壳    时间: 2011-9-16 17:10
注意了,源分区是要备份和还原的分区,目的分区是保存镜像文件的分区。
分区偏移扇区数是分区在整个硬盘的绝对偏移量,以扇区为单位
分区的大小是整个分区的总扇区数,也是以扇区为单位,相差一些无所谓,但误差不要太大太离谱


备份会将源分区备份到目的分区的DST_PATH变量指定的目录下,镜像文件的命名是固定的,不要改动
还原将会从目的分区中的DST_PATH变量指定的目录下找到镜像文件,然后还原到源分区

变量之间用空格隔开,不能换行

变量原理说明:
找到硬盘id为DID大小为DSIZE的硬盘里的需要备份或者还原的源分区,这个分区用分区偏移量SPO和分区大小SPS标识,将这个分区备份到以DPO为偏移量以DPS为大小的目的分区中的以DST_PATH变量标识的目录下(还原相反)。

如果BT变量设置为0,则按热键进入后,由用户自己选择是备份还是还原。
如果BT变量是1,则是备份,按确定后直接备份
如果BT变量是2,则是还原,按确定后直接还原

[ 本帖最后由 2010beikel 于 2011-9-16 17:27 编辑 ]
作者: 2010heng    时间: 2011-9-16 23:06
不错的教程!先学习学习!谢谢分享!
作者: 2011call5    时间: 2011-9-16 23:39
学习了
感谢楼主分享!
作者: ealton    时间: 2011-9-17 08:56
教程做的很不错的啊!!!!
作者: ghost_tears    时间: 2011-9-19 10:26
用winrar解压提示以下错误
!   d:\TDDOWNLOAD\Beikel_DIY(1).zip: 无法创建 Beikel_DIY\皮肤生成器\
    文件名、目录名或卷标语法不正确。
!   d:\TDDOWNLOAD\Beikel_DIY(1).zip: 无法创建 Beikel_DIY\皮肤生成器\QtCore4.dll
    系统找不到指定的路径。
!   d:\TDDOWNLOAD\Beikel_DIY(1).zip: 无法创建 Beikel_DIY\皮肤生成器\QtGui4.dll
    系统找不到指定的路径。
!   d:\TDDOWNLOAD\Beikel_DIY(1).zip: 无法创建 Beikel_DIY\皮肤生成器\libgcc_s_dw2-1.dll
    系统找不到指定的路径。
!   d:\TDDOWNLOAD\Beikel_DIY(1).zip: 无法创建 Beikel_DIY\皮肤生成器\mingwm10.dll
    系统找不到指定的路径。
!   d:\TDDOWNLOAD\Beikel_DIY(1).zip: 无法创建 Beikel_DIY\皮肤生成器\皮肤生成器.exe
    系统找不到指定的路径。
作者: sayhi1984    时间: 2011-9-19 10:39
贝勒哥终于把原创DIY方法公开了,我真的真的是欣喜若狂呐!
作者: 贝壳    时间: 2011-9-19 11:07
标题: 回复 #9 ghost_tears 的帖子
已经重新压缩上传了,可以重新下载:http://www.vdisk.cn/down/index/8864671A8538
或者:http://www.vdisk.cn/beikel
作者: 2011YEH    时间: 2011-9-23 11:27
下载后已经可以正常解压了,谢谢啦!
作者: 邪恶海盗    时间: 2011-9-28 14:09
支持一下,不过这玩意的压缩率怎么样,?

还有,这玩意支持用如EasyBoot等软件调用一键备份和还原不?
作者: 贝壳    时间: 2011-9-28 17:18
标题: 回复 #13 2010邪恶海盗 的帖子
应该可以的,将上面说的文件打包成光盘如:myboot.bif,然后用easyboot做启动,运行命令为bootinfotable;run myboot.bif。
作者: abc138    时间: 2011-9-28 19:59
请楼主说下这个备份还原软件与GHOST软件的区别,可以吗?谢谢!
作者: 贝壳    时间: 2011-9-28 21:34
标题: 回复 #15 abc138 的帖子
贝壳系列的备份和还原和ghost的备份原理是一样的,都是对分区进行实体备份,支持压缩、分卷、加密和增量备份等功能,如果想更多了解贝壳一键还原可以看《贝壳一键还原2.0.4 [冷、热]备份+热键+启动器安装+恢复误删除文件+英简繁》http://bbs.wuyou.net/forum.php?m ... &extra=page%3D3 的说明。
由于贝壳系列的备份还原软件是自主开发的,因此有更多的自主权进行设计和更方便的定制,可以做到完全的DIY和完全的自主产权。
作者: 邪恶海盗    时间: 2011-9-28 21:55
暂时还没用,不知道能不能在PE或者瘟到死下直接编辑备份文件,如果可以就好了,我将.gho转成这个,然后直接用EasyBoot调用一键还原...
作者: 贝壳    时间: 2011-9-29 09:20
标题: 回复 #17 2010邪恶海盗 的帖子
有windows版和linux版,但暂时还没有PE版,还不能直接编辑备份文件,建议可以用贝壳系列软件重新备份过
作者: ndyzx    时间: 2012-1-6 23:28
标题: 回复 #1 2010beikel 的帖子
谢谢楼主,向楼主学习了。
作者: kismet    时间: 2012-1-7 10:15
签名……。学习~~~~~
作者: 201119930702    时间: 2012-1-7 11:46
看着好乱哦- -....
作者: cqflfzlyx    时间: 2012-3-11 15:18
我等这个贝壳的高版本,可能加入一键还原啦,哈哈
作者: 2012nontron    时间: 2012-7-5 21:29
这个已经下不了了,请再给个联接
作者: 贝壳    时间: 2012-7-5 21:59
标题: 回复 #23 2012nontron 的帖子
2版本升级到3版本了,用3版本吧
作者: 2012qepxiuli    时间: 2012-7-6 15:37
文件没了........................无法下载




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3