无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 11159|回复: 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 09:43:51 | 显示全部楼层
这个info我是知道的,问题在于DOS下的for命令太弱,我有学习的案例了。谢谢各位。
回复

使用道具 举报

3#
 楼主| 发表于 2009-4-25 13:56:19 | 显示全部楼层
关键我是要搞个批处理出来,等我弄出来,请你来审。
回复

使用道具 举报

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

使用道具 举报

5#
 楼主| 发表于 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
回复

使用道具 举报

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

使用道具 举报

7#
 楼主| 发表于 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吧,弄不好会哭的。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-5-8 01:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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