无忧启动论坛

标题: 关于U盘量产为USB-CDROM和USB-HDD的取舍 [打印本页]

作者: hulongzhuo    时间: 2010-12-24 13:58
标题: 关于U盘量产为USB-CDROM和USB-HDD的取舍
关于U盘量产为USB-CDROM和USB-HDD的取舍

关于U盘量产为USBCD和USBHD的取舍.
说明:
1、一般情况下,U盘的公共区就是量产出USBCDROM后的剩余区域,这个区可以是REMOVABLE(可移动硬盘),也可以是FIXED(固定硬盘),这取决于U盘的主控芯片和量产模式。
2、关于新机器老机器,这是我自己这么叫的,分水岭应该是INETL845/865左右。

===================================================
第一部分:U盘量产为:[USBCDROM]和[USB公共区]/[USB公共区]和[USBCDROM]
1、格式为:前-[USBCDROM],后-[USB公共区]。
启动[USBCDROM]:新机器与老机器都能从[USBCDROM]启动。
启动[USB公共区]:新机器能从[USB公共区]启动,但是老机器不能从[USB公共区]启动。
举例U盘:UP10/UP11/UP12主控的U盘。量产出的[USBCDROM]在前面。
2、格式为:前-[USB公共区],后-[USBCDROM]。
启动[USBCDROM]:新机器能从[USBCDROM]启动,但是老机器不能从[USBCDROM]启动。
启动[USB公共区]:新机器与老机器都能从[USB公共区]启动。
举例U盘:UT165/UT163主控的U盘。量产出的[USBCDROM]在后面。

第一部分总结:
1、新机器,全部可以启动。老机器只可以启动U盘上的第一个区域,这个区域可能是[USBCDROM],也可能是[USB公共区]。
     即:前-[USBCDROM],后-[USB公共区],就无法启动[USB公共区]。前-[USB公共区],后-[USBCDROM],就无法启动[USBCDROM]。
2、要想从[USBCDROM]启动,对于老机器,那么[USBCDROM]在U盘上的位置,直接影响启动是否成功。因为老的主板根本不能识别U盘的第二个区域。所以,要想让老机器成功启动[USBCDROM],[USBCDROM]的位置必须前,[USB公共区]在后。或者,换一种思考方式:老机器只能从U盘的第一个区域启动,这个区域可能是[USBCDROM],也可能是[USB公共区]。

===================================================
第二部分:成功启动[USBCDROM]后,GHOSTXP系统恢复。
1、用EZBOOT先启动1.44MB的IMG文件,之后进入DOS,加载USB驱动。
1-1、GHO文件在[USBCDROM]。就是量产时候的ISO里面。
DOS命令:
---------------------------------------------------
     devload.com RAMFD.SYS
     devload.com USBASPI.SYS /v /e /norst
     devload.com USBCD.SYS
---------------------------------------------------
1-2、GHO文件在[USB公共区]。[USBCDROM]以外的剩余区域。
DOS命令:
---------------------------------------------------
     devload.com RAMFD.SYS
     devload.com USBASPI.SYS /v /e /norst
     devload.com ASPIDISK.SYS
---------------------------------------------------
2、用GRUB先映射2.88MB的IMG文件为(fd0),然后启动,之后进入DOS,加载USB驱动。
GRUB命令:
---------------------------------------------------
     find --set-root /cdroot/ghost.img
     map --mem /cdroot/ghost.img (fd0)
     map --hook
     chainloader (fd0)+1
     rootnoverify (fd0)
---------------------------------------------------
2-1、GHO文件在[USBCDROM]。就是量产时候的ISO里面。
DOS命令:
---------------------------------------------------
     devload.com USBASPI.SYS /v /e /norst
     devload.com USBCD.SYS
---------------------------------------------------
2-2、GHO文件在[USB公共区]。[USBCDROM]以外的剩余区域。
DOS命令:
---------------------------------------------------
     devload.com USBASPI.SYS /v /e /norst
     devload.com ASPIDISK.SYS
---------------------------------------------------

第二部分总结:
1、USBAPSI的三个参数,如下:
     devload.com USBASPI.SYS /v /e /norst   --->USB EHCI控制器
     devload.com USBASPI.SYS /v /o /norst   --->USB OHCI控制器
     devload.com USBASPI.SYS /v /u /norst   --->USB UHCI控制器
并不是所有的机器都能用devload.com USBASPI.SYS /v /e /norst的。有的机器要用 /o 或者 /u 才能驱动。
2、不管是GHO文件放在哪,都要进入DOS加载USB驱动。
GHO文件放在[USBCDROM],则要加载USBCD.SYS。放在[USB公共区],则要加载ASPIDISK.SYS
而且对于USBASPI.SYS的驱动加载,需要根据机器的不同而变换三种不同的参数。即:/e /o /u,比较麻烦。
3、我自己的一点个人观点:要驱动USB,要启动的img文件,建议做成半自动模式,最好不要做成全自动模式,否则有的时候死机可能都不知道死在哪。知道哪出问题的人不方便下手去改,不知道哪出问题的人干看着没辙。
另外,我始终觉得DOS下驱动USB是个麻烦事,不容易做到通用。

===================================================
第三部分:关于量产后[USB公共区]。
[USB公共区]有两种,一种是REMOVABLE(可移动硬盘),一种是FIXED(固定硬盘)。这两种不一样(废话)。
1、REMOVABLE(可移动硬盘)
启动后,在不同的机器上,这个区域可能是FD0,也可能是HD0。主板识别不一样。有的主板自动识别USB-HDD还是USB-FDD等,就是说他自动去判断是哪类设备,用户把能去指定是哪类。
例如:MSI P35 NEO2-FR 会把REMOVABLE(可移动硬盘)识别为FD0,EPOX nForce2会把REMOVABLE(可移动硬盘)识别为HD0。
2、FIXED(固定硬盘)
启动后,这个区域是HD0。这个基本上都是识别为HD0。我的MSI P35 NEO2-FR和EPOX nForce2都识别为HD0。
1、识别为FD0和HD0有什么影响
NTLDR引导方式需要读BOOT.INI文件后然后启动对应项,这时候FD0和HD0的差别就看出来了。
如果U盘内有Windows XP Embedded系统的话,在识别为FD0的情况下,是无法启动U盘上的系统的,而是直接启动HD0上的系统(通常就是你的C盘)。
boot.ini
---------------------------------------------------
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
---------------------------------------------------
如果U盘别识别为FD0的话,那么multi(0)disk(0)rdisk(0)partition(1)这个所指的不是U盘,而是硬盘上的第一分区。
3、[USB公共区]的磁盘格式,也会导致[USB公共区]启动是否成功。这和上面说到的REMOVABLE(可移动硬盘)和FIXED(固定硬盘)有联系。具体我现在记不清楚什么情况了,看总结吧。

第三部分总结:
1、REMOVABLE(可移动硬盘)和FIXED(固定硬盘)兼容性最强的是:FIXED(固定硬盘)
2、磁盘格式兼容性最强的是:FAT
3、最强兼容性:FIXED(固定硬盘)FAT格式的U盘。

===================================================
第四部分:兼容性最强的方式---NTLDR+[FIXED+FAT]
第三部分已经说过,[USB公共区]兼容性最强的方式是把U盘量产成FIXED,并且磁盘格式为FAT。这种组合强就强最无论在新机器还是老机器上都可以启动,并且识别为HD0。
通过NTLDR+[GRUB+SYSLINUX+MSDOS...]的组合,可以实现多种启动。
1、启动GHOST恢复系统
以NTLDR+GRUB组合为例(其他组合也可以实现),恢复GHO文件。很简单,顺序如下:
NTLDR启动--->读取BOOT.INI--->引导GRLDR--->启动IMG文件--->进入DOS--->直接启动GHOST.EXE。
进入DOS后,不用加载USB驱动,什么驱动都不用。GHOST启动后会识别U盘。GRUB中U盘为:hd(0,0)。
GHOST.EXE放到GRUB启动的IMG文件中(需要2880KB的IMG)。
2、启动Win PE和Windows XP Embedded系统
这个我这里不说了,这个几乎到了地球人都知道的程度了。和在物理硬盘(通常为C:)上的安装方式一样,先编辑BOOT.INI文件,然后放入相关文件。
3、安装操作系统,也可以实现。类似硬盘方式安装,2个$符号的文件夹那种。

===================================================
最后总结:
我觉得USBCD(量产出的USBCDROM)格式没有USBHD(量产或用其他工具该成FIXED格式,并且磁盘格式为FAT32格式)格式兼容性强。
尤其体现在GHOST恢复系统这方面,操作太麻烦,不确定因素太多。但在安装操作系统方面,USBCD要比USBHD方便。当然,USBHD也可以安装操作系统。
USBCDROM的优缺点:
1、GHOST恢复系统时,始终离不开DOS下加载USB驱动,这个会根据机器不同,USB加载的参数会随时变化。不容易控制(不是不能控制)。
2、U盘主控不一样量产出的USBCDROM位置不一样,导致老机器有可能启动不了,原因就是老机器不能识别在U盘后面区域的USBCDROM。
3、USBCDROMM区域写保护,不受病毒感染。
4、安装操作系统方便。并且安装源是一个不可写的CDROM(ISO)。
FIXED格式(磁盘格式为FAT格式)的优缺点:
1、新机器老机器都识别为HD0,GHOST恢复GHO文件,不用加载DOS下的USB驱动。
2、U盘主控不同,有些主控无法把U盘量产为FIXED格式。
3、保护方面比较差(U盘自带写保护除外),容易受毒。
4、安装操作系统也可以,但是安装源为直接放到U盘上,类似于硬盘方式安装操作系统。


实例操作:
===================================================

实例操作:UT165量产USBHDD(FIXED+FAT)
建议UT165/UT163主控的U盘做成此格式,因为UT165/UT163主控的优势在于可以量产一个FIXED的USBHDD,并且这个 USBHDD区域在U盘的前面,群联的弄不出来。其他主控的U盘,凡是能量产出FIXED格式的,并且USBHDD区域在U盘前面的,也都可以采用下面的方法。

以下的内容前提是:U盘必须为FIXED。下面的不试用与REMOVABLE的U盘。
1、在量产工具的第一个标签页,找REMOVABLE,改为:FIXED。
2、在量产工具的第三个标签页,输入第一个分区的容量,输入容量要小于或者等于2G,我输入的1536MB(1.5G)。并且在磁盘格式选项中选择FAT(不是FA32)。
3、剩余空间如果你还想量产个USBCDROM或者第二分区什么的,可随意。然后点OK,就可以开始量产了。
提醒:后面的区域量产成什么也无法解决部分主版只识别第一个区域的问题,可能启动不了,呵呵。想起来《集结号》里面谷子地的那句台词:“算什么你哥也活不了”
4、量产完成后,在VM里面把挂载的第一硬盘设置为刚量产出的1.5G的那个区,然后用MS-DOS启动盘启动后,输入:SYS C:
之后这个1.5G的USBHDD就可以直接启动到MS-DOS了,可以在VM里启动一下看看。
假设1.5G区的盘符为 U:
5、在U:\下可以看到MS-DOS启动文件。一共三个:COMMAND.COM,IO.SYS,MSDOS.SYS。你也可以添加CONFIG.SYS和AUTOEXEC.BAT还有其他你需要的DOS程序。
6、提取启动扇区。可以用MKBT来提取,提取后保存的文件,直接保存到U:\下。U:\msdos.bin。(如有需要,也可以保存到别处)
命令:mkbt.exe -x -c U: U:\msdos.bin
7、写入NT引导,可以用VISTA里面提供的BOOTSECT.EXE工具。
命令:BOOTSECT.EXE /nt52 U:
8、从系统复制ntldr,NTDETECT.COM,bootfont.bin,boot.ini到U:。
此时,U:\下至少有8个文件:
MS-DDOS文件一共三个:COMMAND.COM,IO.SYS,MSDOS.SYS
NTLDR引导文件一共四个:ntldr,NTDETECT.COM,bootfont.bin,boot.ini
MS-DOS启动扇区文件:msdos.bin
8、修改BOOT.INI,增加一行 C:\msdos.bin="MS DOS 7.1"
boot.ini
---------------------------------------------------
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\msdos.bin="MS DOS 7.1"
---------------------------------------------------
9、完成。MS-DOS部分你也可以添加CONFIG.SYS和AUTOEXEC.BAT还有其他你需要的DOS程序。另外,你也可以添加GRUB/SYSLINUX等引导管理器。

补充:
至于为什么第一个区的容量要选择小于2G,这是因为之后要选择FAT磁盘格式,FAT磁盘格式最大支持2G,否则,不能直接启动到MS-DOS。就是说2G以上容量的FAT磁盘格式分区,无法直接启动到MS-DOS。
如果要想直接启动到MS-DOS(不是通过GRUB/SYSLINUX等工具启动一个1.44/2.88的软盘镜像*.IMG/IMA文件来进入MS-DOS),两种选择:
1、容量小于2G,选择FAT格式。
2、容量大于2G,选择FAT32格式。
但是,如果选择FAT32格式,可能会出现在有些机器上无法启动的情况。
如果不想直接启动到MS-DOS,只想通过GRUB/SYSLINUX等工具启动一个1.44/2.88的软盘镜像*.IMG/IMA文件来进入MS- DOS,那么磁盘格式选FAT/FAT32都可以,容量也可以不调整。但是,还是老问题,如果选择FAT32格式,可能会出现在有些机器上无法启动的情况。
作者: 穿云鹤    时间: 2010-12-24 16:53
学习了。谢谢你的教材。
作者: gggccc44    时间: 2010-12-25 00:40
懒得看了,字太小。。。。。。。。
作者: 2010jin5594665    时间: 2010-12-25 17:16
学习了,谢谢你的分享
作者: woshi_1001    时间: 2010-12-25 20:39
实在不太有耐性看完,太长了, 大致看明白了点。
作者: 2010fengyun    时间: 2010-12-26 00:24
基本看完,要测试的东西太多了。USB-CDROM,我没有做过,一直就用FBINST,感觉还不错!
作者: dongbao1206    时间: 2010-12-26 17:54
总结的很好,我就出现过usb-cdrom无法启动的情况,主板较老了。
作者: hongqipiao    时间: 2010-12-27 19:53
学习了,谢谢你的分享
作者: 2010kokopig    时间: 2010-12-28 16:39
太长了,看不下去了呵呵,不过还是顶一下呵呵
作者: 2010xiao_xie    时间: 2010-12-30 12:08
不错   可以学习一下
作者: bo96559    时间: 2010-12-30 13:59
量产成USB-CD-ROM后再将剩下的可移动分区UD 成USB-HDD就能很好的解决问题了!
作者: 2010ojm    时间: 2010-12-30 21:49
有点看不懂,,,不过还是要谢谢楼主的分享~~~~~~
作者: 2011zhangxx168    时间: 2011-5-2 12:47
ipnu学习了,谢谢楼主。
作者: Qoo記    时间: 2011-5-2 20:54
原來主要是舊機支援
我裝都是w7
不會支援舊機了
作者: 2011tywerty    时间: 2011-12-5 16:54
不错   可以学习一下
作者: zqjiang    时间: 2011-12-5 21:41
我的u盘 群联主控 不能 格式为:前-[USB公共区],后-[USBCDROM]。

只能前-[USBCDROM后]。-[USB公共区],
作者: dbtxzzc    时间: 2011-12-7 13:12
原帖由 dongbao1206 于 2010-12-26 17:54 发表
总结的很好,我就出现过usb-cdrom无法启动的情况,主板较老了。

有同感,以我的装机经验来看就是无法启动,兼容还是不够HDD好
作者: zhs509    时间: 2011-12-7 13:20
哈哈  都可以保留啊。。。

新版grub4dos增加了个功能,启动下一设备(居然usbhdd成功启动usbcdrom)

添加菜单"启动下一设备"即可启动bios顺序下的下一个启动设备了。。。

title 启动下一设备
boot -1
作者: abc1963    时间: 2011-12-7 22:01
顶下楼主,看的头晕晕的没看完。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3