本教程的说明采用了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目录下的文件:
如果你参数设置正确,那么你启动电脑,按下热键就可以进行备份或还原了:
最后如果你是软件爱好者,那你可以写软件来做自己的一键还原了,如果你是手动爱好者,那你也可以按照上面说的自己动手制作一个属于自己的一键还原软件了。