找回密碼
 註冊
搜索
查看: 4271|回復: 0

三套方案制作DOS/WinPE雙啟動U盤製作詳解

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」% j. k+ O' l9 Q( m4 o+ I6 k
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html; E! e+ Y( T% J( X4 |: U
: `& \4 b2 @/ k8 \$ Y8 |* g
. P* @( p- T) m' n$ I
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。0 Y( M6 z$ g' c& x; d

) Y! J8 H: O8 T/ a前緣:6 y2 s; @3 `$ {6 M3 B1 D
3 Z2 \* `0 s/ p: M) s
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
7 Z- h. r+ S" F9 }4 _3 Q& r( r  i6 x% q: [/ @
目標:
( x1 V) v  q- D; @: L5 e% w0 P3 A& Y3 v% }
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!7 d2 A& C$ ^3 c

5 h9 o) }, A  o) m" F* s. c$ O4 {技術背景:6 \! X! o! C, D" f, t

( t4 u. i$ g* G& j其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
6 \5 `8 \6 p( J1 Q# k5 e; Q  c* @$ d8 F" h' Z
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。5 r* x2 V# \$ E5 p9 P

  Z" x. F) a; ?$ J" T2 @3 \因此完成一個操作系統的啟動,! z7 Y% t! j1 ~; V$ {) e
需要兩個必須的步驟:1、MBR引導;2、OS引導。$ q' @: K0 F% \: W+ S
( \6 a# F2 h: D( Z& [, {
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
$ P7 E( a3 n) B6 \. A9 [
! z. v' C" }+ V對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。7 s9 `2 X7 ~5 U& Z; X% ?
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。" P4 u: q8 k3 _; m9 A
8 P' p, [. D1 R  P
OS選擇:
& _3 f. D- }5 |. y$ ^8 ?" p; ^) P# P0 n! P
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
$ l& A% ]7 O9 U' p/ Q- {: x5 p3 m' ~
方案一:NT Loader + AVLDR + Avlgo
$ u! q  B5 J/ l3 T  d7 U9 N, L, a& v5 R; M, E6 Q$ ]: }
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
" J+ o8 |  l8 y* }; k% o2 s2 N& k& h. y
工具準備:
1 n) w0 ^7 _/ U0 LPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
; I" ]3 F4 k8 H: v
2 D7 A9 j* n0 N. ~4 {數據準備:: h! U2 t0 O' k3 g0 E  z

! _! o* g8 h0 n. ^' t1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
) ?* c0 N/ D; K9 _5 J8 h1 b. g% r; X" Y/ g$ o

- }$ L6 S# F* N0 z8 P8 u0 L2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
1 v3 O' V, X% @9 K6 z$ A. M' }; Q5 J; Y" ?
) a0 e/ _. ]  j! O' \
* ?/ s4 V& Y$ ]+ a. I
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
0 R4 i. _7 e7 u  u/ h
6 q) t9 ?7 i- m1 c; c4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
5 ~: R/ }' m+ z, u7 b2 W  W* @7 n3 i
+ H2 A! }3 L$ z5 y- A7 v: s
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
3 V5 `6 n* g: V0 g& s0 J5 |8 b+ B, u0 o0 ~8 r* B

0 v  e* P7 _  E8 r/ B0 M7 [% r
9 g5 k" y& O: l' z4 O1 X1 {2 y開始組裝:
5 n1 K" p) G( e6 ^& `$ X* d; I. N# z' j6 d9 S- }; q) v
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:# r7 p; D! s& n
[boot loader]8 j" R3 P( ^/ [* D
timeout=30- E/ t5 x+ B& s7 K: q8 S
default=C:\avldr.xpe
) e0 k7 \! k3 D" I1 t: `2 Q[operating systems]
0 t0 `: _; v# B1 \' g1 a$ TC:\avldr.xpe="Windows PE ByaoMaotao"+ N- K5 r2 u% ^7 g  f
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
- m1 S: d+ m3 J3 \C:\avldr.dos="MS-DOS 7.1 from USB-FDD"

! ~$ E; `3 c  A7 M$ |3 i9 V" I完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。9 s- Y% a$ {. y

6 I9 F# b. C; ^& p7 p" s這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。0 U( e5 r* ~. ^% \' B
* S, n$ ^' U; w2 ]. G! s) B6 w
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
# b5 u4 B; D7 Y9 l: j3 c3 Q0 w* X- J3 M) H( [) B
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
# R) ]$ e7 P9 M( n* F, Q0 ?
; q' z( Z. h3 u- _3 g6 ?. G3、把下載到的老毛桃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環境下。# P% C* i4 p; G9 }
! g  {3 Q! n3 C+ o& B' q% v0 \
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。9 C8 [: V6 @. H( S3 q$ I

# @9 O6 n  A( x/ P+ `3 n6、把前面生成的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環境下。
, N# `8 l4 {$ g4 m* q% H6 v% c% U
7、把前面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環境下。
9 n2 o+ {% k- b/ P# L% N1 W3 d
# U5 o/ ]( Q% H7 |至此DOS/WinPE雙啟動系統維護U盤製作成功。+ y7 h( N& R! Y! V) _6 H
) [9 G9 j* Q3 {$ o
方案二:NT Loader + Grub4DOS
. y5 I& O2 h* m0 o0 B5 {
3 x3 m3 L9 a2 M- L4 ]" G6 _因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。$ K5 q: X) R% a8 |/ y, b
, I2 F% J  M+ s* r1 ~
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
* p& I" I7 B/ y9 a* X' V2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。, R, J/ _+ _+ q' i
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
# ~) W- Z; }2 n1 j
[boot loader]8 v; S0 B: ^) x2 g3 X: y, _1 Y8 q' F
timeout=0
" M6 @3 v: H; T( Sdefault=C:\grldr
& u/ T- G7 V" E& Y; O; p+ d! Z  f; A[operating systems]' t+ M' Q! f# O& D6 U% B, M$ O" U4 |
C:\grldr="Boot Menu"
0 K% ~1 `. t, F
Boot.ini菜單各個項目的含義請對照方案一的說明。* u+ z4 V* d7 f; [7 ]8 s5 O

3 y5 d. D# b4 I7 I4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。6 K$ o+ c- n" G) e. H8 y, ^% J

& m) R* \. x) P, l: l7 Q5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。9 H' b2 n2 ?7 P. g2 Z5 N% ^
+ Q* S' h- W$ X5 d0 x3 Z/ x
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
* y5 [( `$ U# P) b$ V
" W& h8 z- Y+ i" K0 N7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
; p# H( s' Q" Z' _& q" A
timeout 30+ X4 e7 @' N% }  b- N3 P  h( Y$ s, O
default 0- K. H0 [6 s1 a
splashimage /boot/splash.gz
6 z1 P+ T4 ^7 x) F5 ^- Cforeground ffff00
% h+ A6 E0 ~, l8 P1 e; qfontfile /boot/fonts.gz
& b3 t7 V: z' o+ btitle 啟動 WindowsPE
. h+ ~6 ~' |+ u2 O8 m) u& lfind --set-root /grubidx.txt7 u2 i) u* ?' G- q* V! c
chainloader /ldrxpe
% H" V* T2 J1 ititle 啟動 MS-DOS 7.1  S" q2 H0 S9 H5 P0 b/ y( Z
find --set-root /grubidx.txt
+ \. G6 M9 ~4 h/ S2 Vmap --mem /boot/dos.ima (fd0)% G# ?7 V! W; @
map --hook
& f" [  I. {' W1 Fchainloader (fd0)+15 c+ V0 P* P, m4 O' i) `/ e
rootnoverify (fd0)

' }' o' C+ z  R; i做完這些,U盤就可以啟動了。9 ^, S' ?7 {" U. p+ Z, ?2 R3 p+ i
. N  f8 r3 Q! ?! ^! v9 Z
菜單項目說明:
( M+ P+ @7 g4 R; M! ~4 H$ A% N8 b, e* n0 z4 ^' O) x# u
第一行設置等待30秒的等待時間;
$ f8 Y- k+ C5 l/ W
- e2 J1 ~- v  q% A; m0 @, ?第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;. h0 J4 `- K$ e; m
5 C% w( A1 f* E  W# l4 |  s
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
. }/ U3 c7 [4 y/ S
2 ~8 K: |) v: h: r( i: j# g5 @  xforeground項設置啟動菜單文字顏色為亮黃色;
% @+ M3 U1 L- F. |. h' |  k/ G, i4 p2 s5 {% W
fontfile項設置中文字體文件為/boot/fonts.gz, R, n$ g1 P; [$ n9 q) K
- x, u1 Q! Q! c
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;* l: h1 {" r7 J+ ~$ j& D) `

+ x" u- L; d. lfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
+ A/ X$ c  u2 q' f4 r7 c* B3 n7 Q) A/ h
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
$ G* {) ]$ @. R, p8 j
1 F) y3 `: D# N  R, Emap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.) M* D) L5 p& D- a
+ W- ]4 l, K) c
map --hook是讓裝入的軟盤鏡像立即加載生效。- s5 x4 Z: z8 m: l: `' T
: T1 L6 w4 g, G8 M  G  M
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。7 L# c0 \% C) T7 l( a
7 h  n+ i" J% `
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
3 R% f6 P6 b: y1 w5 |( h: t2 ?. H; F3 G. q! I0 J
5 S! u1 v( E# j1 I3 w
方案三:MS-DOS 7.1 + Grub4DOS8 X& A: e5 _- d+ _

. b4 n  _! l( ^- W本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
, d% ~# ^$ c6 ?  E# h* s) s4 y; ^! F$ l! k" k5 m$ f
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
; I7 z# Y1 j' }) A( E# P: V8 c% n6 U+ |, A/ B  I
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。. y  m% j9 f6 I7 G" K
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
' w" G4 U/ @7 [+ P. I* o3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。0 f+ }( V# J; x) A, {6 p
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。6 P. F  H& p- j2 p2 I6 K
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。! @/ M6 w) c) ?# h4 @) D! U3 F" ~
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
  Q* S& o- m) @
timeout 0
( a/ T% d  {( t0 v, y! B1 Gdefault 0
' @  T+ Z3 ^5 x+ x& Z7 ^4 v; hfontfile /fonts.gz5 d0 }- Q! H* ?; `* X) Z  M$ \/ L
title 啟動 WindowsPE2 _2 l/ A, f- |0 ]8 F$ B' |4 K/ A
find --set-root /grubidx.txt
4 e# s6 k& T, N: v$ E! A3 \chainloader /ldrxpe

' |& J( c, Y7 @  v+ M( q在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
0 T: \7 M& v5 L4 [7 }1 r6 s; y* P* M. m5 h
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:$ x! K0 p9 [2 u5 P

- a5 n- L9 ]7 p! |$ d* W" z# b: egrub/ E; l( l. S" b, }2 A

' r- |5 {" G/ Z- t' l這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
) B7 P+ E' u  a' ~( O  }' p% J9 B8 g6 Y+ ?
Config.sys內容:8 A$ ~6 K& d" E: W6 v
[MENU]. v/ K+ N. i+ s. n4 Z9 Q
MENUITEM=1,XMS without CD-ROM support' g" |( l7 s& J' x  G. |% N+ Z
MENUITEM=2,XMS with CD-ROM support
% }3 i5 i1 M2 R- E9 D  _MENUITEM=3,XMS and EMS, ]. n$ f2 b' v2 e
MENUITEM=4,DOS real mode(no XMS,no EMS)
& N& J8 S7 t* \3 ~) B* X: NMENUITEM=5,Windows PE2 J' Z7 ^$ f3 S4 x5 k6 G
MENUDEFAULT=5,30
1 Q+ ^: G5 f8 E; i! z5 b- q[1]/ L8 t: t- q6 @* [
DEVICE=\HIMEM.SYS /TESTMEM:OFF. C/ M# @" T9 U, E" ~$ `
DEVICE=\EMM386.EXE NOEMS
; W% i- m! u4 `8 A2 ?5 a$ b1 e! A. vINCLUDE=PUB
; b7 _4 I' a8 X[2]5 r! x% m0 P2 r, h" h
DEVICE=\HIMEM.SYS /TESTMEM:OFF2 ?/ n) C% j/ S2 f4 H
DEVICE=\EMM386.EXE NOEMS
3 z  ?. P9 W7 H) Q" X" \DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
$ K4 _6 N, u) ]" G7 ^5 s) _INCLUDE=PUB
  A5 m- E0 @9 c: h[3]' _& V8 q( a: R0 U
DEVICE=\HIMEM.SYS /TESTMEM:OFF: l& p1 i4 |2 K) h
DEVICE=\EMM386.EXE RAM
" z  c, n" u! C5 p7 A# [6 }- O, iINCLUDE=PUB
4 u0 R& o. W. F6 ~6 A8 |[PUB]
, w" e, ?- I* h, X, n6 QDOS=HIGH,UMB2 D! Q5 F  m0 E3 X" W$ q0 `
FILES=30
3 o6 Z5 l5 g: X( |9 q! r) Y) _8 H- wBUFFERS=20
0 g7 F9 i7 N# Z' m. k: v& LSTACKS=9,256
$ u/ q0 D" w- ]) KLASTDRIVE=Z
( a8 U' a5 E4 V9 \[4]
6 y) j" F: i' rFILES=10/ B: i) j  |6 g
BUFFERS=10; t* @1 U. F) j5 e7 N
LASTDRIVE=Z' [% P8 R* Q! q$ s
[5]+ d1 ~; d2 b8 K6 @  l5 |9 Z
Autoexec.bat內容:
$ ?* p7 A) N2 r& F& k! {@ECHO OFF
- j2 v7 d. T& ]8 L& ePATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM4 ?& [4 {: ?0 I3 v% H4 _% Y% S
GOTO %CONFIG%& K8 X1 V- n  Y6 B# n  F3 S, n
:1$ t# ^0 b% s8 d; c0 A
GOTO COMMON: H' n: m" w/ H* ~  R
:2
! m- A' ~' u; n$ C& YLH \SHSUCDX.COM /D:SSCD0017 W4 z, |1 J) [/ V  v; Z
GOTO COMMON" ?; Y+ G- G' G+ h+ o( F' S
:35 U& j9 i2 \- }  i
GOTO COMMON: j* Y. t5 J6 c% O, p+ ]
:47 a/ K' ?2 G) j2 U6 U# c
GOTO END
. p7 `4 a( t% I* S& i- p:5
- S4 N4 ?& {# Q8 T/ a/ V" K6 GGRUB
: A0 v8 K. M4 c, p( G! W:COMMON
" a* Y. y  K( U* u2 P" R% nLH \SMARTDRV.EXE /X
! W+ W9 g2 }7 j@ECHO Install mouse driver?
0 F4 N6 w6 H  [% Y\CHOICE /C:YN Yes,No /T:N,6
9 E+ C* Z  `6 [+ R$ XIF ERRORLEVEL 2 GOTO END
" m# m5 G' P/ i' A! n# G9 sLH \MOUSE.COM1 T) l9 [( j$ \+ t  a, u
:END

/ d4 g) R9 ?4 X2 n# ]
6 c+ s* `: f8 J& T( ^按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。! Q# k4 ~: J( F+ [" }5 _  B

6 l, W0 @1 g( ~7 K1 r感謝5free和david_ge的幫助!
2 S* v: R. p. [$ V7 N: @  R2 m) |' `4 h5 Z) h; u
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
- `6 V* u8 I! r5 t
9 a$ b  ^+ u% q- u7 fhttp://bbs.wuyou.com/viewthread.php?tid=94087" s! N/ t2 W+ H% B& R
http://maotao.u.winzheng.com/7 N, N, |1 J, ^
- q6 {* }5 q2 r0 P
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。/ }; i( \- d. z  K1 ~) {
; l* V( `! b- k3 K! U+ Q6 v; m- g
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。* L4 }& i% i; r( |5 P" k
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
7 v4 n* X2 T" w2 R2 W9 O7 C
0 a6 g4 ~0 v# C8 y3 [0 s目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|小黑屋|歡迎光臨 Julybee Club

GMT+8, 23-11-2024 06:11 , Processed in 0.160774 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表