|
最新的版本请移步
http://chenall.net/post/QGHO/
新的版本下载介绍,请到二楼。。。
现在由于GRUB4DOS功能比较强大了,所以就重新作了一个版本.算是比较稳定成熟的版本.
有兴趣的朋友可以拿去研究完善一下(可以写一个WINDOWS GUI界面用于设置参数).
具体设置参数请看QGHO.SET和QGHO.LST文件.
[文件说明]
qgho.zip GHOST程序和GHOST执行脚本,可以根据需要进行修改,这里只是用了最简单的脚本.
qgho.bin QGHO启动镜像.
QGHO.LST grub4dos 启动菜单.
QGHO.SET QGHO配置文件,如果全部使用默认值,这个文件可以不使用
[功能]
快速自动备份还原系统.可手动强制备份/恢复.
主要是为了展示GRUB4DOS的功能.
[使用方法]
直接复制QGHO目录到某个硬盘的根目录下,在你的GRUB4DOS菜单中添加一个菜单
title QGHO
find –set-root /QGHO/QGHO.BIN
configfile /QGHO/QGHO.LST
一般情况下,你不需要修改任何东西即可直接使用.
默认自动备份第一激活分区到第一激活分区磁盘最后一个分区/QGHO_C.GHO.
你可以自己修改/QGHO/QGHO.SET来实现自定义的备份.
比如设定备份任意分区到任意目录.
没有磁盘限制,只要你定义的分区没有错就可以了.
[其它]
如果你对这个有兴趣的话,也可以编写一个GUI界面来修改QGHO.SET内容.
因为我对GUI不感冒,所以这些事我就不做了.
更新:
解决#2 zxw 和#6 ali88home 提到的问题.
另外,改进了一下,使用激活分区作为自动判断的依据(如果没有指定参数时),可以避免使用U盘或或其它方式启动出现的问题.
当然了,如果没有激活分区,也没指定参数,或者硬盘上有两个主分区,激活分区在第二分区上,都会出错.如果是这种情况的就不用试了.
有什么好的方案欢迎提出来.
2011-01-02更新内容请看这里。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=173800&page=5#pid2128300
下载地址:
http://dl.dbank.com/c0az9tcai0
[截图]
启动界面
显示参数信息.
开始备份.
[菜单文件]
供想学习GRUB4DOS的朋友使用,大部份都有注释,有什么不明白的可以提出来.
如果你有发现了错误麻烦通知我,谢谢.
default=0
timeout=5
#设置可执行程序的路径(外部命令)
command --set-path=(fd0)/bin/
debug off
#菜单0
title auto ghost\n\n\t\tQuick Ghost Ver: 0.3\t\t2010-08-16\n\n\tmade by chenall QQ:366840202\t\thttp://chenall.net
write 0x60000 1000 && fallback --go 3
kernel
#菜单1
title ghost_Backup\n\n\t\tQuick Ghost Backup\n\n\tmade by chenall QQ:366840202\t\thttp://chenall.net
write 0x60000 1001 && fallback --go 3
kernel
#菜单2
title ghost_Restore\n\n\t\tQuick Ghost Restore\n\n\tmade by chenall QQ:366840202\t\thttp://chenall.net
write 0x60000 1002 && fallback --go 3
kernel
#菜单3 隐式菜单
title
#定位QGHO.BIN主程序位置
cat --length=0 /QGHO/QGHO.BIN || find --set-root /QGHO/QGHO.BIN
map --mem /QGHO/QGHO.BIN (fd0)
map --hook
#复制GHOST.ZIP文件到内存盘
fat copy /QGHO/GHOST.ZIP (fd0)/DOS.ZIP
#设置默认变量参数,fallback 4当后续语句执行出错时跳到菜单4.
fallback 4
wenv set mode=pdump
wenv set dst_path=/sys_c.gho
#从文件中读取配置参数,如果文件不存在或读取错误,返回0,根据上面的fallback 3就跳到菜单3去执行
WENV read /QGHO/QGHO.SET
#如果有设置变量dst_chk就执行检测操作.并把找到的分区设置为dst_id
#这里使用了wenv和disk外部命令
wenv get dst_chk && wenv run find --set-root --ignore-floppies --ignore-cd ${dst_chk} && diskid && wenv set dst_id=*0x4ff00
wenv get src_chk && wenv run find --set-root --ignore-floppies --ignore-cd ${src_chk} && diskid && wenv set src_id=*0x4ff00
fallback --go 4
#菜单4 隐式菜单
title
#设置默认参数,默认备份第一个硬盘激活的分区到第一硬盘最后分区.
#find --set-root makeactive --status,定位到第一个激活的分区.
wenv get src_id || find --set-root makeactive --status && diskid && wenv set src_id=*0x4ff00
#没有指定dst_id,使用最后一个分区(第一个激活分区所在硬盘)
wenv get dst_id || find --set-root makeactive --status && root endpart && diskid && wenv set dst_id=*0x4ff00
wenv set dst=${dst_id}${dst_path}
#根据内存位置0X60000的值来确定是还原状态或者备份状态。(当使用菜单启动时)
#以下两句用于定位目标分区.
wenv run write (md)0x301+1 ${dst_id}\0
#diskid 命令gid=XX:YY 设定XX:YY对应的分区为当前root.XX:YY可以从内存中提取.这里取的是上一句写入的内存
diskid gid=*0x60200
#自动判断模式.
checkrange 1000 read 0x60000 && WENV run cat --length=0 ${dst_path} && WENV set mode=pload
checkrange 1001 read 0x60000 && wenv set mode=pdump
checkrange 1002 read 0x60000 && wenv set mode=pload
#写文件
wenv run write (fd0)/SETENV.BAT set mode=${mode}\r\n
#从指定位置开始写入0x10
wenv run write --offset=0x10 (fd0)/SETENV.BAT \r\nset src=${src_id}\r\n
wenv run write --offset=0x20 (fd0)/SETENV.BAT \r\nset dst=${dst}\r\n
#替换文件中路径的符号"/"为"\"
cat --skip=0x28 --locate=/ --replace=\\ (fd0)/SETENV.BAT
wenv run echo QGHO:${mode} ${src_id} <==> ${dst}
pause --wait=6 && chainloader (fd0)/io.sys
#直接启动DOS,也可以使用rootnoverify (fd0) 和 chainloader +1
[ 本帖最后由 chenall 于 2011-1-15 16:54 编辑 ] |
评分
-
查看全部评分
|