|
轉載請註明出自「 Zuluck!- 運氣論壇!」8 Q% _$ o7 ?2 A! b
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html! Y( W) \+ T y0 p1 v1 U" E; F- Y$ l
6 J" b) }0 `5 E4 c. [
7 g- S* N( C& e
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
! x8 }$ o [& f0 q) J# O7 ~6 w- t+ W6 J
前緣:" J, g; J3 U2 {: t
5 W2 T' A9 \* E4 X& X, }* p1 G很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。7 p0 a; e, [2 d2 n7 `7 G
) E/ q( r3 f2 t
目標:4 F- P& a2 H5 y) L5 L0 _
( X7 i( u8 n; h- d; T" Q) G+ @對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
, ?" v$ K% G; _/ }3 U' b7 ^8 Y7 i" u, U0 E- _4 f
技術背景:
2 m+ f3 ?' b$ F. f; v- \" g7 z3 J2 d6 B6 q. d/ p: Z8 a- H) V
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
3 u1 H+ t: V0 l8 l9 Z `3 g* O1 D3 h/ w7 q" S$ F2 D: m
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
! F5 F ~% C9 H8 J1 W- ^) x) R+ g! I+ @
因此完成一個操作系統的啟動,. K- d. P3 R; c: o
需要兩個必須的步驟:1、MBR引導;2、OS引導。 F$ D6 M* u' c
\) p- z1 t& b+ f$ c/ `! A, `
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。: T! N {2 n+ j1 L5 V( s
5 ~1 _% a" s) x* P& q
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。2 J/ ^1 O/ o; E( X0 q' u+ T
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。6 Y/ t. [* v7 u* o2 e: o
. g; w1 k9 N* k
OS選擇:
$ ]3 h1 v6 A' P8 e$ O) ~( n1 ]4 W/ z- J) O5 G3 B6 D
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
: `& E; e0 |7 z& K1 d& b9 f/ q
+ ~0 h* T4 l |( B方案一:NT Loader + AVLDR + Avlgo2 {# P) d' ]3 W9 R
3 S6 ~7 m2 Y- G1 `; C$ t1 b# g: l4 V2 X
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。7 {1 E4 @2 h, h' `) f
" K8 L0 x' Y. o$ H3 ~& n* k: S- r: w
工具準備:' W8 V- p/ O J3 s. p
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。+ S2 C: w' q. g2 Q. L
! e2 P$ d4 b% G數據準備:, a+ \* N& _2 p5 C+ i, Y. g e
! X) v5 X) q! i( F/ A- Y
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
; t- d" ^! I. e: U* K
" I" E! N$ n2 H7 ?
5 h2 \; P0 q- k# T$ e' A/ l2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
& V9 b5 B Y: u1 ~1 T! _! W
+ q+ f5 n! c6 V8 { U3 @/ n
! p8 P+ Y P1 z$ t- R0 Q4 G4 A$ S& x( r
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。* G* ?, e/ w0 H8 E- H( x
+ }" i! z; ?! o" G; @- ]
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。 w, B5 u$ a- Z! ~
5 X6 s! d M8 s( X7 H5 ^8 I
X& J6 x0 a- R5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
8 c% x0 D* Q, [; h% I; B( T7 E. U$ O. `/ C1 @7 \
4 ?; g5 P: _/ j5 A$ ]
6 X5 \+ N% l' o$ `8 P! Y, Q" m7 [開始組裝:
; A8 C- B, \5 s- n5 R; ^- S( x
8 m3 e( }6 X- f: ] ?& Q8 p/ ]1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
* Z. I; n5 h& N- V x: W[boot loader]+ [7 s9 m. r, S& c6 O& X
timeout=30# p% c8 W# }0 I
default=C:\avldr.xpe
3 \0 ]3 h/ ]6 P8 w[operating systems]% [- Y# @& S- j( ?( M2 `' |
C:\avldr.xpe="Windows PE ByaoMaotao"( L- e! u) G6 s
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
1 q; R. W- P: P; K& X) ]! AC:\avldr.dos="MS-DOS 7.1 from USB-FDD" / U0 m5 T& J0 p/ g: V0 ~8 M
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。* ? Q; m# t6 C+ N
7 O4 A+ n% w8 _8 G5 d( ?$ u# {
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。4 v- o* T. D9 Q9 J: Q3 S
6 S4 |' R6 W& d$ B
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。' ]) \! e0 [ S1 s: J! x8 t
4 Y, _: T* ]) y0 }& J% b
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。+ q3 w3 I! @6 c! e2 {
7 E+ X5 c- `; U+ b% v! ~- W3、把下載到的老毛桃WinPE的ISO文件解壓縮到一個臨時文件夾,把其中「WINPE安裝」文件夾裡面的AVLDR.XPE拷貝到U盤的根目錄,把 「WXPE」文件夾下的 SETUPLDR.BIN 也拷貝到U盤根目錄並改文件名為 LDRXPE。把臨時文件夾裡面的 WINNT.XPE、WINPE.IS_、和「外置程序」文件夾都拷貝到 U 盤的根目錄下。做完這一步,U盤就可以引導到WinPE下了。如果啟動的時候選第一項「Windows PE ByaoMaotao」,系統將依照NTLDR------>avldr.xpe------>winnt.xpe------>winpe.is_這個順序鏈把電腦啟動到Windows PE環境下。3 a1 T$ _# `: y2 L k- s: ?8 ^
* |/ R5 j# K8 ~+ H% m5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
5 o6 W* _5 ]( c$ {
; T2 c1 B4 M$ S, D/ v6、把前面生成的Avldr.bin和Avlgo.sys兩個文件拷貝到U盤根目錄,對照Boot.ini文件可知,這兩個文件是對應於菜單中第二行 for USB-HDD模式。如果啟動的時候選擇第二項「MS-DOS 7.1 form USB-HDD」,系統將依照NTLDR------>avldr.bin------>avlgo.sys------> DOS.ima這個順序鏈把電腦啟動到MS-DOS環境下。
" _% E% V1 `# f8 ` |8 x
" h( l' z& ~% j/ D, U$ P+ e7、把前面UltraEdit編輯生成的Avldr.dos和Avdos.sys兩個文件拷貝到U盤根目錄,對照Boot.ini文件可知,這兩個文件是對應於菜單中第三行 for USB-FDD模式。如果啟動的時候選擇第三項「MS-DOS 7.1 form USB-FDD」,系統將依照NTLDR------>avldr.dos------>avdos.sys------> DOS.ima這個順序鏈把電腦啟動到MS-DOS環境下。3 ^! t% G8 V$ h1 X) `) f* \0 ?
) J4 y1 h$ j* Q$ {至此DOS/WinPE雙啟動系統維護U盤製作成功。
. `: ?) S: f2 Q v* Q$ l3 s+ [ ]- z! E, A2 q
方案二:NT Loader + Grub4DOS
% {" X ]+ X4 J/ j0 h/ y$ G' _$ Y
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。# }1 c5 q5 m5 F0 P1 c1 n( n3 @
) y- Z s* k, t% Z3 G
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
k) h: p# m6 T3 c, X* R2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
1 R. k# x9 j8 i% Q5 O# N& J; R8 j* f3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:' i- W/ K6 \# `% S3 W- {! A K- `' h
[boot loader]
* u3 P2 Q0 V p; E9 etimeout=0, |& ]$ h, z& ]& J1 |7 O* q
default=C:\grldr4 q7 B- ~ d( ~; j, `
[operating systems]5 l" S2 W2 q- v, j$ t
C:\grldr="Boot Menu"
! Z0 p Y$ G) V) L/ JBoot.ini菜單各個項目的含義請對照方案一的說明。% i8 i6 Q0 U1 R* n# y9 S1 I9 J
' k8 t3 P0 P4 H- D* A; \: C, W4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。/ i* N& U9 {( f; ?0 ~
8 c$ T! Z/ U' e; y" \) a
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。, a: C) W$ {6 N3 e: h1 \/ S& `
6 E3 Q( p" o! D4 m3 F( E5 k. y; \
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。1 n. f/ r) p( [. J
6 M, f. g/ g3 {" Z q
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:% c$ C* s. Z+ c
timeout 30
: W2 a9 `2 _: T7 X7 F# \9 @" Edefault 0
; ?* s1 E% @4 t) a. _1 msplashimage /boot/splash.gz
3 r! \& u3 K& _5 @5 @foreground ffff00$ E( s# k, C$ b" ?5 w$ s/ u
fontfile /boot/fonts.gz
- O* |3 l8 a# Y) Vtitle 啟動 WindowsPE
# G( N, b, ]/ z: ^ \1 vfind --set-root /grubidx.txt9 E: c1 d; i/ z) @0 q: q
chainloader /ldrxpe% t: c% F* r4 n- N4 s5 ]
title 啟動 MS-DOS 7.1% `, I s6 a2 _% f
find --set-root /grubidx.txt2 F7 v3 _8 ^. h0 d; T6 \! z
map --mem /boot/dos.ima (fd0)! l. ^& A2 O7 }4 s
map --hook
4 T4 [3 O2 e3 {, }) l+ vchainloader (fd0)+17 V/ `: ]' p M
rootnoverify (fd0) 5 I8 U" G1 O- l5 b/ {! i
做完這些,U盤就可以啟動了。
' `* A: e" m9 C* ?7 n o, t! C5 L! u$ k& Y
菜單項目說明:
2 r8 k& J0 _1 {3 c' E
1 u4 s/ b; c9 ?8 H6 P/ {7 B" j2 a2 d第一行設置等待30秒的等待時間;7 E/ X7 ~/ g% J2 I
# n6 m! n* l0 H: e) E- G7 `5 i% J第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;& d8 s( J) a- H+ o9 f1 D7 Y- i5 [
) }6 c: D2 P. K$ o
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
8 B p6 H* A- ?# b" C/ \. h8 ]% W5 c) L6 S
foreground項設置啟動菜單文字顏色為亮黃色;% q, R) e' ?6 C% z2 y7 u- v
/ r- U& j6 _6 ~* c) i
fontfile項設置中文字體文件為/boot/fonts.gz9 s; C$ G# y( K
$ x% _: U* d" b# a下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;; _! M A! |% W; R% ]2 @; b/ z
; C. E3 L, t& j' yfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。+ l5 a4 Z5 n2 z( [
, Y" w/ ~( X- o! e/ Rchainloader /ldrxpe就是啟動WinPE的XPE鏡像。+ c0 R0 l' Z1 |! ?$ s
+ i* t5 }9 E. b1 N! Wmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.+ A9 o2 [( q# R: f6 w9 D
9 e) i( h- }( q2 _$ y7 B
map --hook是讓裝入的軟盤鏡像立即加載生效。
# k' G3 z3 o( ~& O# H' o7 p4 w$ `6 B4 u. Y- @2 { H* k/ U
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
! O6 w( Y9 S1 o: W" w% ]0 P
- k" ]7 N; K. W' ?4 B5 q7 J本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
/ s. g* e( Z0 P" q+ j# |$ ~7 N/ T) \% c( f U
, q! M% K @4 }0 e2 H. l1 S1 |' X
方案三:MS-DOS 7.1 + Grub4DOS
' e; }( }* b0 j. Q8 K) t; }# e$ v3 ]/ Z
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。9 S/ I$ f3 s; p+ c* `
4 m: P2 c; y# E
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。6 A) H! y( X, N
7 K5 ^) k- x! _3 [2 X1 t* a$ A1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。- a5 N' s7 T! t/ B: d
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。$ q, v9 `2 ^" S; o
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。; ^! [" D0 S" k( W0 v3 W" U! r5 v
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
. U* L6 Y+ S7 i8 l) o6 |5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
4 V; Q, F" f2 s2 E6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:: S# Q2 W @. J( U, \6 A' s" B
timeout 0
4 V* ~3 e) I/ \default 0
% [0 L% p6 G' ~6 U$ n5 x3 }4 D5 Lfontfile /fonts.gz0 s+ x; F1 g' C( \
title 啟動 WindowsPE Q8 I# z# L3 d* U6 O9 S
find --set-root /grubidx.txt
" A! \7 x3 w, X' b$ r7 ~. T3 hchainloader /ldrxpe + O9 ^( i% f0 A
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。( a" z7 `. ?' c
+ u2 d; f% m& f' h* B1 \7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:& [( R: O- U, G/ o/ |
% S- f/ ], a& o% y1 E/ [. ggrub1 b# k/ U6 L4 M/ z
* y9 n) O# k7 ~9 K
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。# ^1 `: H& H9 c
' y$ e$ C! k5 g1 ?" [Config.sys內容:
Z* r6 Z4 E1 ]( U[MENU]* |4 R9 X0 M) L8 c
MENUITEM=1,XMS without CD-ROM support7 A4 o) U. z$ g0 b& ?
MENUITEM=2,XMS with CD-ROM support k, `, v, \! S& T5 q& |7 O. A
MENUITEM=3,XMS and EMS
?, ^1 _% j* U- ~MENUITEM=4,DOS real mode(no XMS,no EMS)
- H5 Z# C7 L0 R+ A2 s( S& hMENUITEM=5,Windows PE
2 ?0 S* \: K) ^/ |. w' \4 jMENUDEFAULT=5,30
! C4 E6 }# P. ?! d- c5 E% ~[1]
+ ~9 W5 O8 H& G& g6 P" C CDEVICE=\HIMEM.SYS /TESTMEM:OFF
: V* ~3 J$ k7 g6 n4 ]) Q2 gDEVICE=\EMM386.EXE NOEMS
1 Q+ j4 q; s; P3 a, @3 }) h3 TINCLUDE=PUB6 }/ Z! t# G+ v5 k: i, Y! F
[2]
) k3 P1 u+ j! eDEVICE=\HIMEM.SYS /TESTMEM:OFF5 C: q' Z, |& i0 Q. A1 p( U0 K
DEVICE=\EMM386.EXE NOEMS+ `* W2 h( W/ L
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
& |0 U) ` m7 j* n9 f4 DINCLUDE=PUB
% X6 r+ j* w2 U0 a0 M0 {' ^* `[3]" N; j5 Q6 f' n8 K5 H
DEVICE=\HIMEM.SYS /TESTMEM:OFF- x0 U1 e6 M9 f3 t- v8 N
DEVICE=\EMM386.EXE RAM
" Y8 Q5 Z# f# U5 C1 UINCLUDE=PUB. H6 G# O6 @9 l6 r
[PUB]
7 z7 C/ W$ F0 a/ ~' q! EDOS=HIGH,UMB& y b( M- D7 x& c3 j6 b
FILES=30' S# H$ @# l" Q
BUFFERS=20
; C# S5 x7 x( \$ {" A" h4 tSTACKS=9,2561 K0 o2 D- a* i. a2 z* V) l) ^( G
LASTDRIVE=Z
6 O, E: o: E: A4 z7 I: U, J" v[4]
" Q/ q* Z. O8 i5 m5 d) VFILES=10- E" o$ p- o- d7 Y J' {
BUFFERS=10
8 }: Q l) e8 U ?3 hLASTDRIVE=Z
1 _: H. C# y# N J" A4 ?[5]; F$ O4 N9 D1 Z9 w
Autoexec.bat內容:% u. u, V: L+ g5 @0 L2 p7 X
@ECHO OFF3 w6 L B% {9 [& s- n, M6 l) R
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
. Q4 B. m4 h1 e6 A; n! I: M% V. kGOTO %CONFIG%
4 k `" v) l. L7 c0 u9 |:1
" p: n; F/ `( X8 B6 L7 j* O' WGOTO COMMON
4 J$ q2 E- b h8 I1 @' X8 Q5 X:2
* f8 P7 X' ^/ V6 M1 {LH \SHSUCDX.COM /D:SSCD0014 p c" d7 l s8 ]5 J
GOTO COMMON
% q/ R$ A4 M3 ]( w9 _3 N% ]% k:33 ~! K( X- A1 H f8 s. e% B
GOTO COMMON
* I- d5 [" O" m" Y:4
9 G4 W" _- h5 k$ p! }" `3 ^/ H7 BGOTO END
) M7 k# B1 A y5 O7 `/ u:5$ S: J$ p: g o4 O, ~" \& z
GRUB
: h: ^" W$ M5 O:COMMON
: ^, W. {" R6 X7 VLH \SMARTDRV.EXE /X
) _) J- v3 l$ P+ c, U@ECHO Install mouse driver?
8 d$ L0 h$ q7 W% G: ?6 o\CHOICE /C:YN Yes,No /T:N,6, d& x7 G% t, _& [0 C5 ?
IF ERRORLEVEL 2 GOTO END
( r+ e3 F$ z& KLH \MOUSE.COM
4 g0 T( D1 R: W! b:END
4 \2 q7 {: O# t. u( D! M) \: s, o& e# U; z z- }
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。 j. V! f' J4 K/ u1 ?4 P/ {
4 Y+ q2 v2 _" u7 y8 K( f" q2 h感謝5free和david_ge的幫助!
6 W( s* s3 z: r7 ^1 c7 t9 }4 g1 m- e
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:5 u+ K3 A: w, h2 v" T5 c' }; ^* o
+ `9 |2 c6 d& Y4 X6 d; r' p3 [5 |2 thttp://bbs.wuyou.com/viewthread.php?tid=94087
' X! \3 H( l8 ]8 Q9 [http://maotao.u.winzheng.com/0 @; k& {9 G7 i& }8 I* }% q
! S5 J* L& C% u. i' a4 G附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
7 L- L7 \# N7 J3 \% y8 n2 J5 [
9 w5 f3 Q6 W* [; X+ ?3 U: V3 b最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
, ~4 f: L( }- g8 b後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
6 v' Z* i2 A" n) C
( _# ]1 o* i) u; F- r$ ~% I5 Q目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|