无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 50390|回复: 140

GRUB4DOS ghostid命令测试(01-15更新)

  [复制链接]
发表于 2010-1-2 11:18:36 | 显示全部楼层 |阅读模式
添加了ghostid命令的grub4dos测试.
http://grub4dos-chenall.googlecode.com/files/grub4dos-0.4.5a-2010-01-02.zip
用法
1.直接执行ghostid获取当前磁盘的id
2.ghostid (hdx,y) 获取对应磁盘的id
3.find --ghost-id /xxxx 获取最后一个找到以上文件的磁盘的id
4.find --set-root --ghost-id /xxx 获取第一个找到以上文件的磁盘的ID并设置为当前root.

请测试一下获取到的ID是否正确.

另外可以在内存的0x4FF00处得到这个的字符串值.可以通用DD命令把这个数据写入到配置文件中
例子.
#硬盘上查找/ghost/myghost.flg
find --ignore-cd --ignore-floppies --ghost-id /ghost/myghost.flg
#把上面找到的id写入到(fd0)/ghost.bat的0x70位置
dd if=(md) of=(fd0)/ghost.bat bs=1 skip=0x4FF00 count=5 seek=0x70

注:count=3,一般情况下是3个字节,如果磁盘分区数量大于9就要用4.(新版直接使用5就可以了);

2010-01-15
1.修正一个排序算法的BUG,详见后面的贴子。

2010-01-08
1.使用外部命令实现ghostid。使用方法差不多,但由于是外部命令所以不能使用find --ghost-id
可以使用以下命令来代替(把ghostid文件放在和启动磁盘的grub目录下)
find --ignore-cd --ignore-floppies /file.ext (bd)/grub/ghostid
其它使用例子
#切换到当前磁盘最后一个可用分区
root endpart
#执行ghostid,获取当前分区的对应ID。
(bd)/grub/ghostid
#返回启动分区
root (bd)

注:新版本GRUB4DOS,可以不用加前面的(bd)/grub路径,默认会从这个位置查找外部命令,当然了当前目录下也有这个命令时优先用。

2010-01-06
修改换行符为0D也就是回车。

2010-01-04
更新,同步更新到2010-01-03版源码。并调整了0X4FF00字符串,在id后面添加了两个换行符。

http://grub4dos-chenall.googlecode.com/files/grub4dos-0.4.5a-2010-01-04-chenall.rar
http://grub4dos-chenall.googlecode.com/files/grub4dos-0.4.5a-2010-01-04-chenall.zip

使用方法参考#8
使用一个变量代替GHOSTID
例子
值最好等于5个字符。
例子:
set p=ghost

使用dd写入后会变成像下面的
set p=2:1


多余的字符被换行代替了,所以不影响使用。

[ 本帖最后由 chenall 于 2010-1-15 11:18 编辑 ]
发表于 2010-1-2 16:01:08 | 显示全部楼层
其应用前景值得期待。


回复

使用道具 举报

发表于 2010-1-2 15:48:53 | 显示全部楼层
呵呵,有新的东东一定要测试一下。
回复

使用道具 举报

发表于 2010-1-2 16:29:48 | 显示全部楼层
好东东,辛苦了,感谢不点大师和所有开发人员。
回复

使用道具 举报

发表于 2010-1-2 21:17:25 | 显示全部楼层
原帖由 chenall 于 2010-1-2 11:18 发表
添加了ghostid命令的grub4dos测试.
http://grub4dos-chenall.googlecode.com/files/grub4dos-0.4.5a-2010-01-02.zip
用法
...
注:count=3,一般情况下是3个字节,如果磁盘分区数量大于9就要用4.

没理解这一句,为什么>9个分区就要4个byte?
回复

使用道具 举报

发表于 2010-1-2 21:37:45 | 显示全部楼层
刚看见,今晚可能来不及测试了!先顶再说!!!!!!!
回复

使用道具 举报

发表于 2010-1-2 22:36:27 | 显示全部楼层
不知道是什么原因?时空论坛像打不开了?各位有这个现象吗?
回复

使用道具 举报

发表于 2010-1-2 23:14:05 | 显示全部楼层
chenall :我太激动了,睡不着!测试很完美!你太棒了,呵呵!同志们感谢你啊!
----------------------------------------------------------------------------------------------------------------------
P1LOAD.BAT
@ECHO OFF
set P=+::--
cls
Ghost.exe -Clone,Mode=pload,Src=%P%:\wgho\WNTP1.GHO:1,Dst=1:1 -Sure -Rb
-------------------------------------------------------------------------------------------------------------------------
dd if=(md) of=(fd0)/p1load.bat bs=1 count=5 skip=0x4FF00 seek=0x11
------------------------------------------------------------------------------------------------------------------------
另外:测试时发现g4d:
如果存在3个主分区,那么第一个是(hd0,0)
第二个是(hd0,3),最后一个是(hd0,2),难道扩展分区成了(hd0,1)?
6月20版本也如此。
这个与ghostid无关。
--------------------------------
chall:辛苦了。我在虚拟机和真机测试都非常完美。
为了可以适应多硬盘和多分区(超过10个分区或者10个硬盘),可以把 变量定义为5个字符。
“-”是ghost的连接符,我测试过了,也可以不用,很完美。

再次感谢!!!!!!祝你身体健康!永远开心!!!!!!!!

[ 本帖最后由 Hwlon 于 2010-1-3 08:34 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-1-4 19:10:30 | 显示全部楼层
你这样子确定不会出错?
当使用5个字节时,
set P=+::--
后面的--会被替换为00 00。不知DOS对00的处理是怎么样的。
回复

使用道具 举报

 楼主| 发表于 2010-1-4 20:59:24 | 显示全部楼层
更新了一下,有条件的可以再试试。

现在比较好兼容多分区多硬盘的处理了。
回复

使用道具 举报

发表于 2010-1-5 20:42:55 | 显示全部楼层
那当然,确定不会出错!!dos对00表示无。(确切的说是不影响使用的2个空,不是空格否则会报错)
有一个问题可能提的不合理,就是3.find --ghost-id /xxxx 获取最后一个找到以上文件的磁盘的id
搜索时需要较多的时间,硬盘沙沙响。呵呵(不知能否改成搜到第一个后立即停止搜索)
不知你改了什么地方,等明天测试一下!!!!!!!
刚才看到了1月4日:理论上多了2个空行,不影响使用。再次感谢!辛苦了!!

[ 本帖最后由 Hwlon 于 2010-1-6 07:19 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-1-5 22:05:24 | 显示全部楼层
说明下

由于这个命令使用者比较少,或者说属于不是很必要的命令,所以不会加入到以后的GRUB4DOS版本中,目前只是为了方便测试。。

以后有空再考虑是否可以使用外部命令的形式来实现。
回复

使用道具 举报

发表于 2010-1-5 22:36:14 | 显示全部楼层
1、参考8#测试了一下ghostid命令,暂未发现什么bug.
2、顺便测试了一下命令行加载内嵌0pe菜单的grldr: chainloader /grldr && boot
    光标闪烁,不能正常运行。无意间拔掉U盘,只见菜单前行,又迅速插上U盘,启动成功。
   这个现象12.23的版本就没有。

[ 本帖最后由 zxw 于 2010-1-5 23:20 编辑 ]
回复

使用道具 举报

发表于 2010-1-6 07:42:08 | 显示全部楼层
chenall:
很遗憾,理论上不应出错的东西,却出错了。换行应是:0D 0A 但只有2个字符的位置,(0A 0A)所以出错了。建议这个地方不要修改,但定要确保该处为00 00  〔或者-- 或者// ,-和/是ghost的连接符〕。
---------------------------------------------------------------------------------------------------------------------------------
{2010-01-04
更新,同步更新到2010-01-03版源码。并调整了0X4FF00字符串,在id后面添加了两个换行符。

http://grub4dos-chenall.googlecode.com/files/grub4dos-0.4.5a-2010-01-04-chenall.rar
http://grub4dos-chenall.googlecode.com/files/grub4dos-0.4.5a-2010-01-04-chenall.zip}

请大家暂时不要使用。1月2日的版本很完美。
----------------------------------------------------------------------------------------------------------------------------------
另外,chenall 为此付出了辛勤的汗水,希望大家能支持他。一键恢复区本来人就少,请大家看完留名。

现在我已经拥有世界上最安全、最方便、最快速的一键恢复,这一切是在g4d和ghost两强的基础上实现的。现在基础使用的命令都已经说明,大家可以很方便的制作自己的一键恢复,所以我觉得没必要将我完成的"System Rescuer"发到论坛上来,因为没技术含量,我也很不好意思。因为最应该感谢的是chenall,请大家支持他。

----------------------------------------------------------------------
说明下

由于这个命令使用者比较少,或者说属于不是很必要的命令,所以不会加入到以后的GRUB4DOS版本中,目前只是为了方便测试。。

以后有空再考虑是否可以使用外部命令的形式来实现。
-----------------------------------------------------------------------------

chenall:

我很理解你的心情。但确实不是你说的这样,这个命令是比较有用的,如果以后的grub4dos不加入这个命令,那我觉得她不会是完美的。没这个命令的版本是最大的遗憾,如果没更好的吸引我的新功能我是不会用新版本的。
-------------------------------------------------------------------------------------------------------------
我们用g4d主要是作为dos的载体,dos主要是用来修复系统,修复系统主要是ghost。
--------------------------------------------------------------------------------------------------------------
说道这里,有人可能会说g4d支持引导多系统等很多功能。但我确定的是如果g4d不能虚拟dos(Windows的地位暂时没人撼动),后果很可怕。具备必要的功能,兼容其他的功能,呵呵。没错的。
----------------------------------
另外,如果新版本确实如此,我也希望chenall能把2001-01-02加入ghostid的源码能送我一份。在此表示感谢。也许在您的指导下我可以维护这个命令的版本。
hwlon@163.com

[ 本帖最后由 Hwlon 于 2010-1-6 11:39 编辑 ]
回复

使用道具 举报

发表于 2010-1-6 09:15:46 | 显示全部楼层
这是一个很大的福音,我们为CHENALL鼓掌。他真是一个难得的优秀程序员!
回复

使用道具 举报

发表于 2010-1-6 10:22:06 | 显示全部楼层

回复 #14 Hwlon 的帖子

支持 Hwlon,也支持 chenall 。

我也认为加入这个命令G4D会更完美。会让G4D的使用者更多,操作更加方便。
回复

使用道具 举报

 楼主| 发表于 2010-1-6 13:13:25 | 显示全部楼层
晕,不是不支持,而且把它做为一个外部命令,这样只要是0.4.5以上的版本GRUB4DOS中都可以使用。也方便维护。

#14
我搞错了,应该是使用0D,DOS是使用0D作为换行的。
新的版本已经上传了,可以再试试。
http://grub4dos-chenall.googleco ... 4.5a-2010-01-06.rar
回复

使用道具 举报

 楼主| 发表于 2010-1-6 13:34:21 | 显示全部楼层
@Hwlon
这里可以下载源码
http://code.google.com/p/grub4dos-chenall/source/checkout
只要再打上2010-01-06.RAR附带的补丁文件就可以了。

其实只要懂得一点C语言你也可以对GRUB4DOS进行修改,就看你想不想做这些事了。
回复

使用道具 举报

发表于 2010-1-6 20:09:18 | 显示全部楼层
chenall :
还是由我来测试吧!本来今天早晨我也想顺便测试一下0D的,因为急着上班,没测试。看到你又改成0D,我就知道脱不了还要测试的,呵呵!其实在dos下要想完美换行也需要0D 0A。如果只是0D相当于空,在dos下显示2个乐符,但可以使用;0A虽成功换行又被认为是与下一空行连接在一起的,所以出错。建议还是用00 00较好。
------------------------------------------------------------------------------------------------------
另外,看到你的确定答复,真的很高兴,以后会经常光顾你的googlecode 网页,下载新版的g4d。我这潜水员潜了很久,呵呵是一瓶子不满半瓶子咣当。我看到你的编程思路详细而又周密,真的很不错。我呢,就这样了吧。如果不是非赶着鸭子上架,我想我这样的水平还是歇歇算了。呵呵

再次感谢!

[ 本帖最后由 Hwlon 于 2010-1-6 20:17 编辑 ]
回复

使用道具 举报

发表于 2010-1-6 20:39:30 | 显示全部楼层
这个功能完善后,将会引发一键恢复工具的半场革命。
期待中。
回复

使用道具 举报

 楼主| 发表于 2010-1-6 21:53:24 | 显示全部楼层
原帖由 Hwlon 于 2010-1-6 20:09 发表
chenall :
还是由我来测试吧!本来今天早晨我也想顺便测试一下0D的,因为急着上班,没测试。看到你又改成0D,我就知道脱不了还要测试的,呵呵!其实在dos下要想完美换行也需要0D 0A。如果只是0D相当于空,在do ...


其实DOS默认是0D换行的。。。。,0D0A是WINDOWS 的风格。

用00 00反而不好,有可能会出错,因为万一这里面原来已经有一些数据,那写入的时候数据就会出错。
使用0D 0D就没关系了,只要DD读取是的5个字符
当只有1:1时后面会有两个回车,
如果是1:10就会读到一个回车,
10:10就不会读到回车了。

不管最终得到几个字符,多余的就是回车换行掉了。

[ 本帖最后由 chenall 于 2010-1-6 21:56 编辑 ]
回复

使用道具 举报

发表于 2010-1-7 06:56:28 | 显示全部楼层
0D 换不了行,不知你测试过没有?0D和00字符 dos下被ghost忽略。但真的怕内存变量处被别的程序赋值,这个我还真没考虑到,虽然现在看是安全的,但从长期发展来看,应该是还是你说的保险!!!!呵呵
回复

使用道具 举报

 楼主| 发表于 2010-1-7 11:34:23 | 显示全部楼层
0D是回车,但不换行,换行符是0A(但在显示的时候可能是都显示成换行的)

还有一点你可能理解错了。。
并不是GHOST忽略0D和00等字符。而是由于DOS批处理来决定的
像你使用的命令
set P=+::--

如果不经修改最终的%P%就是上面的+::--
经过DD写入以后会变成
SET P=1:1XX
注:后面的XX是不可显示的字符。像0D 00之类的。
有些DOS核心碰到00字符会当做是一个语句结束。一般情况下0D会是一个语句结束符。
可能和DOS的版本也有关系吧,我使用MSDOS7.1测试是正常的。
回复

使用道具 举报

发表于 2010-1-7 15:12:44 | 显示全部楼层
chenall :还是你说的比较专业!呵呵!我们就用“0D”(我测试的也正常,在上面已说明)。废话就不多说了,支持你!!!!辛苦了!!!!!!!
回复

使用道具 举报

发表于 2010-1-7 17:32:54 | 显示全部楼层
不知是否支持畸形文件夹 \...\ (显示为~1)?
回复

使用道具 举报

 楼主| 发表于 2010-1-7 17:59:26 | 显示全部楼层
原帖由 gmy 于 2010-1-7 17:32 发表
不知是否支持畸形文件夹 \...\ (显示为~1)?


这个没有必要,因为不一定全部是~1,有可能是~2之类的。反而不好确定。
回复

使用道具 举报

发表于 2010-1-7 19:05:28 | 显示全部楼层
呵呵!g4d支持畸形目录,请按照建立时的格式(文件名)编写g4d菜单命令。不要使用~1,DOS下可以使用~1。比如: Wingho..\

希望大家看完帖子留名,支持 chenall !!!

[ 本帖最后由 Hwlon 于 2010-1-7 19:23 编辑 ]
回复

使用道具 举报

发表于 2010-1-8 09:51:40 | 显示全部楼层
这是好东西啊,也许会引起一键还原软件的技术改革。
回复

使用道具 举报

发表于 2010-1-8 11:18:08 | 显示全部楼层
C先生增加的功能很强大。。。
将来N版把chkpci acpi功能作为外部命令的话,那可不得了。
回复

使用道具 举报

 楼主| 发表于 2010-1-9 00:00:25 | 显示全部楼层
已经更新使用外部命令的GHOSTID.感谢不点....下载http://nufans.net/grub4dos/tinybit/或GRUB4DOS新版下载http://grub4dos-chenall.googleco ... 4.5a-2010-01-08.zipGHOSTID命令带源码下载(不带扩展名的就是可以直接运行的程序)http://grub4dos-chenall.googlecode.com/files/ghostid.zip

[ 本帖最后由 chenall 于 2010-1-9 01:12 编辑 ]

点评

点赞  发表于 2021-10-30 15:33
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-28 20:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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