无忧启动论坛

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

U盘使用GHOST的FORCEUSB参数探秘

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-24 22:59:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为网友需要在U盘使用一键GHOST功能,因为就研究了GHOST的FORCEUSB参数,发现有点意思:

GHOST的版本为11.5,要恢复的克隆的文件名为SYSTEM.UCD,放到NTFS格式U盘的xpl~1\utool目录下。

从BIOS的hard disk, disk boot periority项下设置U盘为第一启动盘,启动后从GRLDR菜单进入DOS,手动运行GHOST,选择disk to image,在磁盘选项处会发现有2个硬盘,第1个是U盘,第2个是内置硬盘。

因为GHOST识别出U盘为第一硬盘,因此,完全可以自动恢复U盘上面的system.ucd文件到内置硬盘第1分区。

当我运行了GHOST.EXE -FORCEUSB后,有趣的事发生了,原先的第1硬盘已经没有了,而多出了第3硬盘,即U盘。这里如果想一键恢复,那么只能是源文件为src=3:1\xpl~1\utool\system.ucd了。退出之后,这个新识别出的U盘及顺序仍然不变。

由此看来:

1. 对于被BIOS识别为硬盘的U盘,在GHOST下也可以识别出来,这时不需要使用-FORCEUSB参数来再次识别;

2. 对于1,如果使用了-FORCEUSB参数再次识别,则因为GHOST接管了USB驱动(有USB2.0驱动如EHCI和USB1.1驱动如UHCI),则原被BIOS识别出的硬盘不复存在,多出的是盘序号为最后的U盘。

3. 对于2和1的区别,应该是有的,加载了USB2.0驱动,GHOST的速度肯定不一样,当然,如果你的主板本身在BIOS里就加载了USB2.0驱动,则不需要使用第2种方法。

4. 有的主板,BIOS不会把U盘识别为硬盘,但可以用USB HDD的方式启动,这个时候,如果运行GHOST,我判断,很可能是GHOST也识别不到这个U盘硬盘,因此不能直接一键恢复。如果想将其识别出来,则必须加FORCEUSB参数。这样的结果同样是U盘处于盘序的最后。就算是GHOST不用FORCEUSB参数识别出这个U盘,那么情形和1一样。

综上所述,使用U盘启动GHOST,来一键恢复U盘上的GHO文件,加FORCEUSB参数是最佳选择。

那么,我们如何来做一个通用的一键GHOST呢?

我想可以这样,使用omnifs或者其它软件来判断系统的硬盘个数,如果U盘为第一硬盘,则使用GHOST加FORCEUSB参数,来将其序号变为硬盘数+1,再开始一键GHOST。如果omnifs没有识别到U盘,则GHOST肯定也识别不到,因为这2个软件都是symantec的作品,驱动肯定都是一个。这种情况,加了FORCEUSB参数后,其U盘序号应该还是硬盘数+1。

因此,我们只要使用omnifs或其它DOS软件判断出系统的硬盘数,一键GHOST时加入FORCEUSB参数,将U盘盘序变为硬盘数+1,就可以开始自动恢复分区过程。

说到这里,有请lianjiang帮忙了,我不知道在DOS下,如何使用omnifs来判断硬盘的个数。

谢谢!



[ 本帖最后由 victor888 于 2009-4-25 21:49 编辑 ]
2#
发表于 2009-4-25 04:14:08 | 只看该作者
实际上部分品牌电脑加此参数后,ghost与omnifs均会死机。
回复

使用道具 举报

3#
发表于 2009-4-25 07:19:14 | 只看该作者
不加载驱动就能识别usb设备的,不建议使用forceusb参数运行omnifs和ghost。
回复

使用道具 举报

4#
发表于 2009-4-25 07:21:23 | 只看该作者
使用 info参数就可以知道硬盘数量。
回复

使用道具 举报

5#
 楼主| 发表于 2009-4-25 09:43:51 | 只看该作者
这个info我是知道的,问题在于DOS下的for命令太弱,我有学习的案例了。谢谢各位。
回复

使用道具 举报

6#
发表于 2009-4-25 10:59:15 | 只看该作者
原帖由 victor888 于 2009-4-25 09:43 发表
这个info我是知道的,问题在于DOS下的for命令太弱,我有学习的案例了。谢谢各位。


既然知道info,确定有几个硬盘还不是很简单的事吗?呵呵。
回复

使用道具 举报

7#
 楼主| 发表于 2009-4-25 13:56:19 | 只看该作者
关键我是要搞个批处理出来,等我弄出来,请你来审。
回复

使用道具 举报

8#
发表于 2009-4-25 18:16:29 | 只看该作者
你的脚本水平,还是见识过的,比我高多了。
回复

使用道具 举报

9#
 楼主| 发表于 2009-4-25 21:43:25 | 只看该作者
没有啊,我还在研究中啊,不知道在DOS下如何获得ONMIFS显示的硬盘数,现在连LMOD都用上了,还是不行。
回复

使用道具 举报

10#
发表于 2009-4-26 09:27:43 | 只看该作者
原帖由 victor888 于 2009-4-25 21:43 发表
没有啊,我还在研究中啊,不知道在DOS下如何获得ONMIFS显示的硬盘数,现在连LMOD都用上了,还是不行。


“不管黑猫白猫,逮住老鼠就是好猫”,呵呵。
回复

使用道具 举报

11#
发表于 2009-4-26 11:25:39 | 只看该作者
用strings,nset,lmod等,或者直接用type find之类应都是可以解决的。
我现在独爱gawk,这是大炮打蚊子,呵呵。
抛砖引玉:一行命令即可。

回复

使用道具 举报

12#
 楼主| 发表于 2009-4-26 20:50:41 | 只看该作者
嘿嘿,研究了一下午,搞定了。不得不说纯DOS下太烦了,变量不能运算。
tw /ns /np>nul
cls
echo off
echo ==============================================================================
echo   1-手动运行GHOST(推荐)
echo ==============================================================================
echo   2-强烈注意,在克隆前要进行数据备份,选此项后会立即将镜像克隆到第一硬盘第一
echo     分区,原有数据都会丢失;对于双硬盘和笔记本电脑不建议选用此项!
echo ==============================================================================
echo   3-退出到DOS
echo ==============================================================================
choice /C:123 "请输入你的选择:"
if errorlevel 3 goto 3
if errorlevel 2 goto 2
if errorlevel 1 goto 1

:1
goto manualghost

:2
goto autoghost

:3
goto end

:autoghost
ghost -dd
find /C "UBOOT" GHSTSTAT.TXT|lmod /L* [$3]|lmod set usb=[]>a.bat
call a.bat

if %usb% == 5 ghost.exe -clone,mode=prestore,src=1:1\xpl~1\utool\system.ucd:1,dst=2:1 -sure -fx -rb

if %usb% == 0 ghost.exe -clone,mode=prestore,src=2:1\xpl~1\utool\system.ucd:1,dst=1:1 -forceusb -sure -fx -rb

if errorlevel 1 ghost.exe -clone,mode=prestore,src=3:1\xpl~1\utool\system.ucd:1,dst=1:1 -sure -fx -rb

if errorlevel 1 ghost.exe -clone,mode=prestore,src=4:1\xpl~1\utool\system.ucd:1,dst=1:1 -sure -fx -rb

goto end

:manualghost
ctmouse >nul
ghost.exe
goto end

:end
回复

使用道具 举报

13#
 楼主| 发表于 2009-4-26 20:52:00 | 只看该作者
我放弃了omnifs.exe因为这个东西太大了。
tfind也放弃了,因为/e参数不起作用,如果起作用,则是最好的方式了。
回复

使用道具 举报

14#
发表于 2009-5-1 01:00:31 | 只看该作者
lianjiang 和 v版的都很劲。。。
回复

使用道具 举报

15#
发表于 2009-5-1 17:49:33 | 只看该作者
原帖由 victor888 于 2009-4-26 20:52 发表
我放弃了omnifs.exe因为这个东西太大了。
tfind也放弃了,因为/e参数不起作用,如果起作用,则是最好的方式了。

那如果不用OMNIFS。EXE该用什么方式实现呢?
回复

使用道具 举报

16#
发表于 2009-8-27 12:57:44 | 只看该作者
期待出成果。呵呵,试了好多U盘dos下一键恢复都不理想
回复

使用道具 举报

17#
发表于 2009-8-30 18:59:21 | 只看该作者
确实存在不使用-forceusb无法读到U盘的情况,我今天就碰到了,加了该参数后也识别到了U盘,盘顺序放在最后。
这里想提几个问题,希望知道的朋友可以告知。
1\如果不加该参数识别到了U盘,默认为第一硬盘,接着是本地硬盘。如果此时我用-forceusb参数,原为第一硬盘的U盘消失。那是不是原来的本地硬盘变成第一硬盘了,恢复时应该改成1:1,U盘上的ghost镜像应该为2:1呢。
2\如果启动时没法识别到U盘,但我加载了USB2.0驱动后,不用-forceusb参数,而是用devload之类的加载,有没有可能会使得ghost在没加-forceusb的情况下识别到U盘?因为我在加载时卡死了,所以没办法验证。
3\如果我即用devload之类的USB2.0驱动加载了,又在ghost时使用了-forceusb参数,会有什么影响。并问下这个-forceusb是不是是usb2.0的驱动

由于不管是devload加载USB2.0还是-forceusb加载USB驱动,都存在一定机率的卡死现像。对于U盘一键还原。V大的方法不错,即通过硬盘数来判断是否加载usb2.0,但你的那个要求过于严格,有没有谁能提供一个简单的方法。
4\对于多硬盘,有没有比较安全的方法也使用一键ghost,如果在BIOS里设置主从硬盘错误,很容易导致误格数据盘的情况,那有没有好点的方法呢。
回复

使用道具 举报

18#
发表于 2009-8-30 19:51:55 | 只看该作者
对于多硬盘,要想确保一键无误,只能通过分区信息来自己确认。
回复

使用道具 举报

19#
 楼主| 发表于 2009-9-7 14:32:02 | 只看该作者
才看到17楼的问题。

1. 加了forceusb参数,内置硬盘的序号也不会变的。当然多USB存储设备会复杂一些。
2. devload是用来加载驱动文件的,你指的是USBASPI.SYS,这个驱动如果成功加载,则GHOST不加forceusb参数,则不管系统是不是识别出U盘,GHOST肯定是识别不到的,因为此时的U盘已经被虚拟为SCSI设备。这个参数和USBASPI.SYS是既生瑜何生亮的事,如果USBASPI.SYS成功加载,那么直接GHOST就可以了,不需要加这个参数了。
3. 如果USBASPI.SYS驱动成功,GHOST就不要加这个参数了,因为,你加了,结果有可能死掉或者新识别出的U盘盘符失效。
4. 多硬盘,老兄,还是手动GHOST吧,弄不好会哭的。
回复

使用道具 举报

20#
发表于 2009-9-8 12:10:55 | 只看该作者
不知道为什么,11.5版的GHOST在恢复时,恢复完成后退出界面时会出现错误信息,无法自动重启。
回复

使用道具 举报

21#
发表于 2023-7-24 21:22:49 | 只看该作者
xiexielouzhu
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 08:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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