U盤啟動(dòng)PE起碼要10分鐘,怎么辦?
本人辦公用的電腦是845GL的,有USBHDD啟動(dòng)項(xiàng),也可以做成U盤啟動(dòng)PE,開始以為PE啟動(dòng)不了,后來看到讀寫指示燈不停地閃,應(yīng)該在讀,等吃了一餐飯回來,哎,你還別說,進(jìn)去了!后來作了統(tǒng)計(jì)啟動(dòng)時(shí)間大概要12分鐘。鏡像為37M,因此推斷U盤的加載速度大體為3M/分,真是不堪忍受! 845的板子Windows 下U盤讀寫速度也不慢,說明還是支持2.0的,大體上是bios不支持吧,如果在DOS中先將其驅(qū)動(dòng)再進(jìn)PE應(yīng)該是可行的。上網(wǎng)一搜,真還有人做成了,無憂啟動(dòng)論壇hytmtet網(wǎng)友有啟動(dòng)方法和做好的文件。載下后趕快試,還是不成功,經(jīng)一步一步查原因是因?yàn)槭褂肈I1000DD.SYS來出U盤的不兼容,換成aspidisk.sys盤是出來了,但后續(xù)命令又出錯(cuò),U盤啟動(dòng)又特別費(fèi)時(shí)間,U盤啟動(dòng)又不能在虛擬機(jī)中調(diào)試,非得一遍一遍重啟機(jī)器不行,人都搞毛了。于是脾氣也上來了,干脆花點(diǎn)時(shí)間徹底搞好。也寫了個(gè)小程序,經(jīng)兩日的安裝調(diào)試,終于能夠在不到1分鐘內(nèi)進(jìn)PE了。不敢獨(dú)享,提出來讓大家省點(diǎn)時(shí)間。 做法是: 1、先做好U盤能啟動(dòng)PE,不會(huì)做U盤啟動(dòng)者參看本人的另一帖: 2、將下述這個(gè)文件下下來后,放到\boot\usb20\下,文件名usb40.gz。 3、再在U盤根目錄下的meu.lst中加入如下內(nèi)容: title WinPE工具(USB20預(yù)安裝版,老機(jī)適用) find --set-root /boot/usb20/usb40.gz map --mem /boot/usb20/usb40.gz (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) 4、在U盤的minipe下放入如下文件并運(yùn)行它,或者直接將硬盤中安裝的毛桃的0911PE拷入本目錄下進(jìn)行測(cè)試。 出現(xiàn)以下拷貝文件過程,一般來講就是成功的,看拷貝鏡像的速度就知道,如果是支持2.0的U盤,加載起來比以前快了10倍都不止。 ![]() 另外,有人說(如neo4026)845GL不支持usb20,這種說法是不對(duì)的,845GL是絕對(duì)支持2.0的,否則不可能有這么大的速度提升,以下是XP的設(shè)備管理中明明是有2.0的。 ![]() 補(bǔ)充:很多網(wǎng)友對(duì)技術(shù)無興趣,想用現(xiàn)成的,花了幾天時(shí)間做了一個(gè)大家伙,可以到 (對(duì)技術(shù)無興趣的,請(qǐng)?zhí)^紅色字內(nèi)容) 一、具體思路(這個(gè)可不是原創(chuàng),感謝hytmtet網(wǎng)友,本來想原創(chuàng),無奈人家已經(jīng)先原創(chuàng)了) 1、用grub菜單方式啟動(dòng)一個(gè)30~50M的DOS鏡像,進(jìn)DOS 2、在純DOS中用usbaspi.sys和aspidisk.sys驅(qū)動(dòng)USB20 3、找到U盤,將PE啟動(dòng)文件拷貝到上述的DOS鏡像A盤 4、再從A盤用grub.exe調(diào)用PE的裝載程序啟動(dòng)PE。 二、PE的啟動(dòng)過程 下面以0911為準(zhǔn)講一下Pe的啟動(dòng)過程: 系統(tǒng)啟動(dòng)控制轉(zhuǎn)入裝載器ldrxpe->ldrxpe查找\minpe\pe文件獲得啟動(dòng)鏡像―>載入啟動(dòng)鏡像啟動(dòng)PE。 以上關(guān)鍵的一點(diǎn)就是ldrxpe中指定了配置文件PE的位置,只要用ultraedit找到minipe\pe,如將之改為mini\pepe,那么啟動(dòng)時(shí)就會(huì)找mini下的pepe文件,再把ldrxpe改個(gè)名稱如myldr等,就在配置文件中指定不同的鏡像來啟動(dòng)不同的PE了。 三、一些預(yù)先約定 鑒于裝載器名稱和配置文件名稱和位置都是可以改的,所以各種PE安裝目錄和裝載器名稱五法八門,有的文件還會(huì)因位置重疊而在安裝時(shí)互相覆蓋。我列了一個(gè)表格,大家看看它們將目錄搞得如何雜亂: 版本裝載器鏡像名稱及位置裝載配置文件名稱和位置winpe.ini文件名稱和位置0418\ldrxpe \maotao\wxpe.is_\winnt.xpe \ 0911\ldrxpe \minipe\wxpe.is_\minipe\pe \minipe\小小強(qiáng)1.3\zjqpe \wxpe\wxpe.im_\wxpe\pe.x\wxpe\ Deepinpe_v2 \ldrxpe \maotao\wxpe.im_\winnt.xpe \extra\ 基于簡(jiǎn)單和規(guī)范的原則也為了后續(xù)的工作能夠增加通用性,先作些約定很有必要: 1、統(tǒng)一以毛桃的0911為準(zhǔn),約定Winpe配置文件和U盤標(biāo)志文件位于U盤\MiniPE下,文件名為“PE”,啟動(dòng)其他的PE均可通過修改這個(gè)文件來實(shí)現(xiàn),這是一個(gè)文本文件,語法也很簡(jiǎn)單。 如小小強(qiáng)的PE如下: [SetupData] BootDevice="ramdisk(0)" BootPath="\WXPE\SYSTEM32\" OsLoadOptions="/minint /fastdetect /rdpath=WXPE\WINPE.IM_" 毛桃0911如下: [SetupData] BootDevice="ramdisk(0)" BootPath="\WXPE\SYSTEM32\" OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=MINIPE\WinPE.IS_" 只要修改其中最后一行,有些是加rdexportascd參數(shù)的,大概意思就是作為CD鏡像,不加代表作軟盤鏡像(我沒有仔細(xì)查閱相關(guān)資料)。 等號(hào)后面的就是指定鏡像的位置,只要改動(dòng)這兩個(gè)參數(shù)就可啟動(dòng)多種PE。 2、統(tǒng)一使用0911的ldrxpe來作為裝載器,即約定在驅(qū)動(dòng)USB20后,統(tǒng)一由grub.exe鏈?zhǔn)窖b入毛桃0911的ldrxpe來啟動(dòng)。 3、無論任何情況,均將PE的設(shè)置文件即Winpe.ini與其鏡像文件放在一起。 基于以上3條,其他各種版本的PE均可以不用安裝,將相關(guān)文件(主要是系統(tǒng)鏡像、外置程序、WinPE.ini文件)拷貝到U盤或硬盤即可。這樣使各種PE可以共存于一個(gè)盤,且使啟動(dòng)文件變得清爽,也不易搞錯(cuò)。 三 先裝載USB20驅(qū)動(dòng)再進(jìn)PE的實(shí)現(xiàn) 有了上述三條約定,我們做啟動(dòng)就方便多了: 1、做一個(gè)40M的軟盤DOS啟動(dòng)鏡像,只要himem、io.sys、command.com、config.sys、autoexec.bat、usbaspi.sys、aspidisk.sys文件,將毛桃0911的ldrxpe文件拷入鏡像,再在鏡像中建一個(gè)MiniPE目錄,并將毛桃0911的MiniPE下的ntcom拷入其中。也可以再將grub.exe文件放到鏡像中,這樣啟動(dòng)時(shí)就不用找這個(gè)文件了。 之所以要一個(gè)40M的鏡像是考慮到PE的系統(tǒng)鏡像都是經(jīng)過壓縮的多數(shù)不超過40M,如果PE系統(tǒng)鏡像超過39M,MEM的A盤是放不下的,要用winimage改它的容量,改100M都是允許的,但要考慮物理內(nèi)存的容量,使用時(shí)請(qǐng)根據(jù)PE鏡像的大小來決定DOS啟動(dòng)鏡像的大小。如小小強(qiáng)的PE可以用30M的啟動(dòng)鏡像,深度的2003內(nèi)核的要40M。如果只有128M內(nèi)存,請(qǐng)使用相對(duì)較小的PE。這也是這個(gè)方法的一個(gè)最大缺點(diǎn),即啟動(dòng)鏡像占去的這些內(nèi)存進(jìn)PE后也是不能使用的(當(dāng)然應(yīng)該還是有辦法釋放的)。 2、做一個(gè)根據(jù)PE文件的設(shè)置將WinPE相關(guān)文件拷入啟動(dòng)后的內(nèi)存模擬A盤中,因?yàn)橐x配置并拷貝文件,筆者寫了個(gè)小程序來做這一工作,編譯后取名為“copype.exe”。當(dāng)然,也可用批處理解決,只是我嫌麻煩,況且也要用一些工具,倒還不如自己專門做一個(gè),用法也很簡(jiǎn)單: copype U:--從U:盤將文件準(zhǔn)備到MEM模擬的A盤。此文件要求放到上述啟動(dòng)鏡像的MiniPE下。 3、做好相關(guān)的config.sys、autoexec.bat和menu.lst文件就可以了,具體如下: config.sys: device=himem.sys /testmem:off device=usbaspi.sys /e /r /norst devicehigh=aspidisk.sys files=20 buffers=30 dos=high,umb lastdrive=z autoexec.bat: @echo off rem 該文件統(tǒng)一以U盤的“\MiniPE\PE”文件(即毛桃的0911的WinPE鏡像定義文件)作為標(biāo)準(zhǔn) rem 它是一個(gè)文本文件,要啟動(dòng)各種PE均可修改這一個(gè)文件即可,因此鏡像和winpe.ini文件可以放到其他目錄。 rem 本文件調(diào)用的“COPYPE”為自編的一個(gè)文件,功能為從當(dāng)前盤的PE讀其中定義的PE鏡像包位置, rem 再從傳遞給它的U盤參數(shù)將文件準(zhǔn)備到軟盤中,實(shí)際上就是準(zhǔn)備存放包的目錄和拷貝winpe.ini文件 cls path a:\ echo Searching USB DEVICE...... set UDrv= set PeFlag=minipe\pe rem 找PeFlag文件就代表找到U盤 if exist z:\%PeFlag% set UDrv=z: IF not "%UDrv%"=="" GOTO ufind if exist y:\%PeFlag% set UDrv=y: IF not "%UDrv%"=="" GOTO ufind if exist x:\%PeFlag% set UDrv=x: IF not "%UDrv%"=="" GOTO ufind if exist w:\%PeFlag% set UDrv=w: IF not "%UDrv%"=="" GOTO ufind if exist v:\%PeFlag% set UDrv=v: IF not "%UDrv%"=="" GOTO ufind if exist u:\%PeFlag% set UDrv=u: IF not "%UDrv%"=="" GOTO ufind if exist t:\%PeFlag% set UDrv=t: IF not "%UDrv%"=="" GOTO ufind if exist s:\%PeFlag% set UDrv=s: IF not "%UDrv%"=="" GOTO ufind if exist r:\%PeFlag% set UDrv=r: IF not "%UDrv%"=="" GOTO ufind if exist q:\%PeFlag% set UDrv=q: IF not "%UDrv%"=="" GOTO ufind if exist p:\%PeFlag% set UDrv=p: IF not "%UDrv%"=="" GOTO ufind if exist o:\%PeFlag% set UDrv=o: IF not "%UDrv%"=="" GOTO ufind if exist n:\%PeFlag% set UDrv=n: IF not "%UDrv%"=="" GOTO ufind if exist m:\%PeFlag% set UDrv=m: IF not "%UDrv%"=="" GOTO ufind if exist l:\%PeFlag% set UDrv=l: IF not "%UDrv%"=="" GOTO ufind if exist k:\%PeFlag% set UDrv=k: IF not "%UDrv%"=="" GOTO ufind if exist j:\%PeFlag% set UDrv=j: IF not "%UDrv%"=="" GOTO ufind if exist i:\%PeFlag% set UDrv=i: IF not "%UDrv%"=="" GOTO ufind if exist h:\%PeFlag% set UDrv=h: IF not "%UDrv%"=="" GOTO ufind if exist g:\%PeFlag% set UDrv=g: IF not "%UDrv%"=="" GOTO ufind if exist f:\%PeFlag% set UDrv=f: IF not "%UDrv%"=="" GOTO ufind if exist e:\%PeFlag% set UDrv=e: IF not "%UDrv%"=="" GOTO ufind if exist d:\%PeFlag% set UDrv=d: IF not "%UDrv%"=="" GOTO ufind if exist c:\%PeFlag% set UDrv=c: IF not "%UDrv%"=="" GOTO ufind if exist b:\%PeFlag% set UDrv=b: IF not "%UDrv%"=="" GOTO ufind if exist a:\%PeFlag% set UDrv=a: IF not "%UDrv%"=="" GOTO ufind GOTO ERR_FindUDrv :ufind a: cd\ if not exist grub.exe copy %UDrv%\boot\grub\grub.exe cd minipe rem 以U盤的minipe中的PE作標(biāo)準(zhǔn)配置位置 copy %UDrv%\minipe\pe rem 準(zhǔn)備PE鏡像和Winpe.ini文件 copype %UDrv% cd\ rem 用grub.exe來鏈?zhǔn)窖b載PE grub.exe --config-file="root (fd0);chainloader (fd0)/ldrxpe" goto end :ERR_FindUDrv cls echo USB Device Not Found. goto end :ERR_CopyFile echo Not found "PE" file! goto END :END 注:雖然有點(diǎn)長(zhǎng),但思路是清晰的,也作了注釋,應(yīng)該很容易讀懂。 ![]() 空間的其他文章:
|
|