|  | 
 
| 最新的版本请移步 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 编辑 ]
 | 
 评分
查看全部评分
 |