无忧启动论坛

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

发一个QGHO比较成熟的版本(2011-01-15全新的版本)

[复制链接]
发表于 2010-8-14 20:30:46 | 显示全部楼层 |阅读模式
最新的版本请移步
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

[截图]
启动界面
20100814194236939.png
显示参数信息.
20100814194306997.png
开始备份.
20100814194336387.png
[菜单文件]
供想学习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 编辑 ]

评分

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

查看全部评分

 楼主| 发表于 2010-8-14 20:33:31 | 显示全部楼层
QGHO 最新版本作为MODBOOT的一个模块发布。

介绍就不写了,有兴趣的可以下载测试。。。

需要WENV的支持,复制WENV到MODBOOT\GRUB4DOS目录下就可以了。

新版的改进。

  • 支持多系统,多配置文件。
  • 支持自定义恢复(支持一级子目录)

注:因为时间关系,没有经过完全的测试。请先用虚拟机测试。。


直接上图吧。最快速的GHOST备份、还原系统已经出炉。。

主菜单界面:(可以选择配置文件,当前使用的配置文件以[1]来表示)

20110115163402184.png

自定义恢复界面。

20110115163417716.png

选择了其它分区。。

20110115163848857.png

选择恢复目的分区。


20110115163915914.png

确认。

20110115164215141.png

正在恢复中。。。。

20110115164232686.png

[ 本帖最后由 chenall 于 2011-1-15 17:20 编辑 ]

qgho.7z

3.54 KB, 下载次数: 370, 下载积分: 无忧币 -2

MODBOOT模块,解压到MODBOOT目录下

GHOST115.zip

2.15 MB, 下载次数: 970, 下载积分: 无忧币 -2

QGHO 需要的文件,放在LEVEL1目录下

回复

使用道具 举报

发表于 2010-8-14 20:43:45 | 显示全部楼层
支持大师的作品!很喜欢!
回复

使用道具 举报

发表于 2010-8-14 22:26:03 | 显示全部楼层
grldr为2010-08-12版本。
实机测试失败,出现448错误提示:Clone SRC unknown.
查看ghosterr.txt文件后面的批处理语句,dst赋值正确,但src未赋值。

[ 本帖最后由 zxw 于 2010-8-14 22:28 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-8-14 23:14:24 | 显示全部楼层
原帖由 zxw 于 2010-8-14 22:26 发表
grldr为2010-08-12版本。
实机测试失败,出现448错误提示:Clone SRC unknown.
查看ghosterr.txt文件后面的批处理语句,dst赋值正确,但src未赋值。


你是如何启动的?src的值应该不会取错的,另外注意看一下启动之前显示的参数信息.有6秒的暂停.

我前面忘了说了,这个如果从U盘启动时,可能会把U盘当成硬盘.

嗯,目前没有对可能发生错误的地方进行处理.先找出问题,到时一起改一下.
回复

使用道具 举报

发表于 2010-8-14 23:23:26 | 显示全部楼层
我的启动方式有点特殊,是本地硬盘前划出200m的UD区,QGHO目录内置于UD区根目录。
启动之前显示的参数信息:pdump      <==>  1:2/QGHO_C.GHO

[ 本帖最后由 zxw 于 2010-8-14 23:56 编辑 ]
回复

使用道具 举报

发表于 2010-8-14 23:36:39 | 显示全部楼层
#菜单0 pdump

title ghost_Backup\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
------------------------------
#菜单1 pload 不对
title ghost_Backup\n\n\t\tQuick Ghost Backup\n\n\tmade by chenall QQ:366840202\t\thttp://chenall.net
write 0x60000 1001
fallback 0
kernel
---------------------------
#菜单2 pload
title ghost_Restore\n\n\t\tQuick Ghost Restore\n\n\tmade by chenall QQ:366840202\t\thttp://chenall.net
write 0x60000 1002
fallback 0
kernel

========
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


==========
经过实际测试放在【隐藏的EISA磁区】这个ghost_Backup会错误辨别pload恢复动作,哈哈!还好先前有ghost起来。
disk.txt:
Disk  Partitions  Cylinders  Heads  Sectors  TotalSectors   Mbytes
0       3         4092       16      63      4124736       2014   

No.  Drv  Type    Volume      PartType       Act  Offset      Sectors    MBytes
1       Primary              HPFS/NTFS      Yes  63          3298113    1610
2    C: Logic    OFFICE2G    Win95_FAT32         3298239     310401     151
3       Logic    PE2G        HPFS/NTFS           3608703     516033     251【隐藏的EISA磁区】



默认自动备份第一硬盘第一分区数据到第一硬盘最后一个分区/QGHO_C.GHO.这个ok

[ 本帖最后由 ali88home 于 2010-8-15 00:08 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-8-15 00:15:12 | 显示全部楼层
@zxw
嗯,这就对了,因为find --set-root会把ud当成第一个分区.
要再想想其它办法确定第一个分区.

@ali88home
谢谢提醒,我自己一直使用第一个菜单,没注意.
竟然犯了一个很严重的逻辑错误.(导致第2和3菜单完全失效)

而第一个菜单是自动模式,如果有备份了就执行恢复.

稍后再整理上传.

[ 本帖最后由 chenall 于 2010-8-15 00:16 编辑 ]
回复

使用道具 举报

发表于 2010-8-15 01:59:17 | 显示全部楼层
太实用了,装机可以省下不少时间,very good!
回复

使用道具 举报

发表于 2010-8-15 08:16:15 | 显示全部楼层
学习了啊,这个很不错的。
回复

使用道具 举报

发表于 2010-8-15 09:16:58 | 显示全部楼层
C大,好长时间都没见你的新作了,有一个问题想请教一下,具体内容请看:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=165975&highlight=chenall,谢谢!
回复

使用道具 举报

发表于 2010-8-15 11:22:40 | 显示全部楼层
OK,测试成功!……
回复

使用道具 举报

发表于 2010-8-15 17:28:02 | 显示全部楼层
原帖由 chenall 于 2010-8-15 00:15 发表
@zxw
嗯,这就对了,因为find --set-root会把ud当成第一个分区.
要再想想其它办法确定第一个分区.

@ali88home
谢谢提醒,我自己一直使用第一个菜单,没注意.
竟然犯了一个很严重的逻辑错误.(导致第2和3菜单 ...

后学的问题,测试了一下,好像解决了,我实际再一次确认,先收入合集测试,谢谢!
回复

使用道具 举报

发表于 2010-8-16 08:54:50 | 显示全部楼层
能否备份到畸形目录下,因为目前很多专门破坏gho文件的病毒
回复

使用道具 举报

发表于 2010-8-16 09:26:31 | 显示全部楼层
这个ghost如果备份失败,第二次就不能使用了。是不是要处理一下删除gho。
回复

使用道具 举报

 楼主| 发表于 2010-8-16 15:17:29 | 显示全部楼层
@jianliulin
这些可以的,完全自定义,想放在哪里都没问题。
@chen463
强制备份会覆盖的吧。


如果备份目的分区是fat的那用fat命令可以实现更多功能。

一切皆有可能!
这个的原则是尽量不用dos处理。
dos只用来执行备份恢复命令。
回复

使用道具 举报

发表于 2010-8-16 15:23:04 | 显示全部楼层
原帖由 chenall 于 2010-8-16 15:17 发表
@jianliulin
这些可以的,完全自定义,想放在哪里都没问题。
@chen463
强制备份会覆盖的吧。


如果备份目的分区是fat的那用fat命令可以实现更多功能。

一切皆有可能!
这个的原则是尽量不用dos处理。 ...

强制备份会覆盖的吧。不会。。。

备份中故意重新开机模拟失败,但是实际是无法强制备份的,信息错误无法操作下去。
回复

使用道具 举报

 楼主| 发表于 2010-8-16 15:40:34 | 显示全部楼层
我回头再试下,用手机上的,没有环境。印像中,ghost可以覆盖i备份的,可能要加个参数。
回复

使用道具 举报

发表于 2010-8-16 17:39:19 | 显示全部楼层
原帖由 chenall 于 2010-8-16 15:40 发表
我回头再试下,用手机上的,没有环境。印像中,ghost可以覆盖i备份的,可能要加个参数。

如果备份中途停电失败,造成0字节gho,可以进入PE,右击该分区-属性-工具-【查错】【碎片整理】-勾选-确定,就可以删除了。


谢谢c大,这个跟本软件无关,强制备份-fro。
回复

使用道具 举报

发表于 2010-8-16 19:47:04 | 显示全部楼层
to chenall:

不经意间发现一个问题,不晓得是不是可以算 bug ?

[ 本帖最后由 cchessbd 于 2010-8-16 19:52 编辑 ]
err_wenv_run_fat.jpg
回复

使用道具 举报

发表于 2010-8-16 20:02:04 | 显示全部楼层
研究了半天,还是没有得到自己想要的功能:

查找 WinNT/XP/03/Vista/Win7/2008 系统所在的磁盘分区, dst_id=x:y, src_id1=x:l  (l=最后逻辑分区)   src_id2=x:lp (lp=最后主分区)

没找到,默认设置  dst_id=1:1, src_id= 1:2。

不晓得chenall有没有办法写出这样的菜单?希望不会占用您太多时间。谢谢!
回复

使用道具 举报

 楼主| 发表于 2010-8-17 01:14:58 | 显示全部楼层
#20是正常的,目前只能同时执行一个外部命令,wenv 不可以run另一个外部命令。

#21
1.dst_id可以参考。ntboot菜单。
2.单硬盘还是多硬盘?
单硬盘最后逻辑分区本例菜单就有。
多硬盘一样,先定位到最后硬盘
rootnoverify (hd-1,0)
root endpart
就是了。
主分区。我还没有什么比较好的方法。
目前可以用checkrange 来测试得到
思路:
检测(hd0,0) 到(hd0,3)的分区id只要不是扩展分区就可以了
另一个方法直接读取硬盘的分区表来确定最后主分区,可能更简单。
回复

使用道具 举报

发表于 2010-8-18 18:00:46 | 显示全部楼层
测试过的感觉,很好。
建议:备份失败,删除失败的gho,以免自动时,会把错误的gho恢复系统。
回复

使用道具 举报

 楼主| 发表于 2010-8-18 18:34:54 | 显示全部楼层
原帖由 ali88home 于 2010-8-18 18:00 发表
测试过的感觉,很好。
建议:备份失败,删除失败的gho,以免自动时,会把错误的gho恢复系统。


可以添加一个简单的检测,如果GHO文件错误就不允许恢复(即使是强制恢复也要被禁止).

目前都是没有进行验证的.只是作一个示范.

有空再改改.

嘻嘻,可能里面用到的GRUB4DOS命令比较复杂,那些做一键还原的老大们不感兴趣.
回复

使用道具 举报

发表于 2010-8-18 23:05:17 | 显示全部楼层
原帖由 chenall 于 2010-8-18 18:34 发表


可以添加一个简单的检测,如果GHO文件错误就不允许恢复(即使是强制恢复也要被禁止).

目前都是没有进行验证的.只是作一个示范.

有空再改改.

嘻嘻,可能里面用到的GRUB4DOS命令比较复杂,那些做一键还原 ...

期待更新。。。
c大居住在泉州啊!o(∩_∩)o...哈哈
泉州这地方后学去过,不错的地方,可惜来去匆匆,没能体会他的美内涵。
这些做一键还原的大大,可能还没能注意这个好东西
GRUB4DOS命令如果是新的指令,那么???o(∩_∩)o...哈哈,真的是不会,学习。。。
回复

使用道具 举报

发表于 2010-8-19 08:52:10 | 显示全部楼层
修改了c大的菜单,重新做了一个。覆盖数据的步骤有确认过程。

支持一键ghost的备份,maxdos的备份。有需要的同志可以pm我。


要是支持搜索任意路径的文件,就更强大了。
比如 se -2 *.gho,出来一个列表选择。表示搜索所有分区第二层目录以内的备份。……

严重YY,严重期待C大出品……
回复

使用道具 举报

发表于 2010-8-19 08:52:37 | 显示全部楼层
感谢C大给我们带来这么好的工具
在虚拟机试了一把,感觉相当不错,只是不能自动识别最后的EISA隐藏主分区,不过有了qgho.set设置文件一切迎刃而解。
另外把ghost文件打包放在镜像外面是个亮点,这个思路相当好,方便我们更改ghost版本或是加些个dos工具。
这已经是个完整的一键恢复了,为了臭美我加了个界面,可以取消自动备份或恢复
11.jpg

退出自动模式可以手动选择分区
22.jpg
回复

使用道具 举报

 楼主| 发表于 2010-8-19 16:31:22 | 显示全部楼层
原帖由 HYE 于 2010-8-19 08:52 发表
感谢C大给我们带来这么好的工具
在虚拟机试了一把,感觉相当不错,只是不能自动识别最后的EISA隐藏主分区,不过有了qgho.set设置文件一切迎刃而解。
另外把ghost文件打包放在镜像外面是个亮点,这个思路相当好 ...



想使用EISA分区也是很简单的啊.

在 QGHO.SET里面设置以下值就可以了.

set dst_chk=checkrange 0x12 parttype

解释:
dst_chk值是自动检测备份文件存放分区.可以是按文件名检测比如/QGHO/QGHO.BIN
或者是一个GRUB4DOS的命令.像上面的
检测分区ID是0x12.
回复

使用道具 举报

发表于 2010-8-20 04:27:55 | 显示全部楼层
to Chenall

great release as always , two suggestions .

1. can you implement the Gho file search feature ?  like a batch script which runs at DOS level , to search for the GHO files on all Hard disk partitions , and present the user , so that the user can choose what GHO file to be restores , and also let the user decide , so that he can choose what partition to select to restore ?
.
Regards,
Maanu from Pakistan
回复

使用道具 举报

发表于 2010-8-20 08:01:50 | 显示全部楼层
原帖由 chenall 于 2010-8-19 16:31 发表



想使用EISA分区也是很简单的啊.

在 QGHO.SET里面设置以下值就可以了.

set dst_chk=checkrange 0x12 parttype

解释:
dst_chk值是自动检测备份文件存放分区.可以是按文件名检测比如/QGHO/QGHO.BI ...


又学了一招,不过还是按文件名检测好使,我把所有文件放到隐藏分区,备份也到qgho目录下,都不用另外建文件夹了,呵呵
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-6 09:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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