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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」( U. `. `( E! f! Q0 ^0 P. M
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html2 b, o% X1 g$ A: c! t3 y+ K3 Z
0 L* A+ x& i2 \6 F
9 `! R! w7 W2 Y5 R
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
# u5 Z4 B- O6 k0 S8 t" Z, V! @3 [) U# ~0 v) d* b' J( U, ]% n* \
前緣:
6 B# B. p. Z+ }( O# f, `" T# p- ?+ h: ]( u1 T
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。1 l& e( m7 K+ \. ?& \& u

7 S$ I/ M. G' v. r7 p. v目標:( m% p. z0 @! R
% ]$ A$ u; c8 L2 r* w" y
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!' A* d4 A" f8 J& h' l6 Q

# A! t" d" V" A( L. w! n* N+ `技術背景:4 v& {& {7 T7 [; B4 K' k+ O

, Z1 u* f2 S2 d: d& ]4 d其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。# }. ^5 T3 i. K1 E

; R; k/ a, p3 n8 i$ N首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。' L' l+ h) o6 q$ A
. Q  Z2 T- J, @) m
因此完成一個操作系統的啟動,0 {5 G! W! U0 }  a3 M
需要兩個必須的步驟:1、MBR引導;2、OS引導。6 e7 q5 |& c9 ?: f1 x  n

1 {! [2 g, e7 J4 A/ X* k0 R基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。4 C5 _- g; u; a# w2 P* x1 ]4 k
# m- R, g/ h7 {
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
4 ]* n" \9 Z" q2 t雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。3 Z; {4 M5 V4 r+ K
( k. n& q7 k+ H* Z/ @8 i8 S
OS選擇:9 `) R+ J- v6 S7 s. n' u
4 _" x0 b- D( N3 Y6 y
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。, j5 ~' Q9 v% m0 T4 S
" F  ^/ Q' t$ S
方案一:NT Loader + AVLDR + Avlgo
& j. g4 E# i8 X6 G
( }2 Q/ z7 I( n7 aMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。; u9 [8 j- p4 Z( c9 w4 W
/ {$ O$ j) J4 M/ |( }8 z  J* U
工具準備:: R- t! t1 ^$ H# Y, K# P. J7 o
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
% v+ V/ z3 ]3 A: M6 R% q$ h: G; A$ L% Y: l) K' O
數據準備:
9 a% q( N6 N" a) I# k; g
" N& D8 ?4 ?2 C6 u  K1 u+ ^, Q1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
0 j3 ?5 ^$ Z% {% ~" c1 A) y
; `( W- {2 z% c4 n( y( X, T- _6 f& O' u
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
9 t1 E8 u/ E: A9 j8 Z2 z$ V
' v* U" t2 I) P. A: k; \
" Q0 K# Q+ x! e. h7 ~+ v: z
8 R, f) X3 x. I3 h3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。! |3 M! g7 b$ u' y) m
( }1 Q4 F3 O, B/ K* Q6 M6 S  B5 R9 Z5 U
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。- }  t' v) W! B% F0 p
! Z4 N4 N6 c# @1 d: A- {
) f& Z8 M2 p8 n: j6 R. L
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
- [$ y1 M( d% [. Q  N0 Y6 ?, x" T. }% Z: f1 p6 k6 [6 N0 @

+ x" C/ ~. U3 [9 m8 x4 Y: O, [/ C0 R9 ]7 I# U) O- G; o8 C) k' k
開始組裝:$ Y5 ~. p4 P7 {6 ?1 J2 B4 s

! \* K+ e; V7 n1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:- p! G9 b# B$ j0 ]4 u
[boot loader]" P  N1 O6 e" h$ D# @. {4 d
timeout=30
* E4 o7 e1 [6 J, l# ldefault=C:\avldr.xpe
7 Q% S+ A3 {; [# b  ~- Y; O[operating systems]
( h+ J, h2 y8 l0 m. ]' s, TC:\avldr.xpe="Windows PE ByaoMaotao". f; T/ k3 B+ K0 P7 y
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
8 i' c. B7 |9 n. c* q& Z* J8 GC:\avldr.dos="MS-DOS 7.1 from USB-FDD"

+ H" j& W, E& U' \; {完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
  S' `- p, U! v/ }% {6 G8 a
9 ?5 i0 J/ `: s0 E這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。. J2 P# r; F! O0 p+ `

- f9 I- W, K( ]3 n& M[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
: y+ D" @9 d# d3 s3 `4 e+ U+ G7 c
/ r& U) p5 v6 V' ^# U# ^2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
! I, C/ L2 {/ |1 k  [/ D
# {5 _# o% p2 |1 {, e3 q0 ]% D3、把下載到的老毛桃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環境下。
0 S& S. S7 o  Y* B" I4 N
& u7 ~4 D+ A- L, V1 C3 G0 z5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
) N6 H2 N% W# U# k% o/ y
6 y0 c% E" T& R4 Z5 z, B3 G' x6、把前面生成的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環境下。: |( Q3 K  M& k. a7 Q3 h3 h

; x6 W7 R$ g' z1 ]7 F4 |* C7、把前面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環境下。
$ h# {6 P2 c" i  k0 d
9 E2 u, D4 ^/ E& _+ N% o* G- i: x! v至此DOS/WinPE雙啟動系統維護U盤製作成功。+ H; K( O5 L. C  B7 S- |) m
  Y7 I/ S7 N; G  S0 O& w, o
方案二:NT Loader + Grub4DOS0 h# {4 E; j' ^: n$ ?7 S' o3 \
4 C0 y; Q+ r4 c* I. h
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。6 E, k' V8 _9 k2 {) S4 _
5 o: r; ]0 {, c. g
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
) }5 C! }( x# R- O0 ~2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
" @* R) r7 m3 Q: M! z4 S1 p  h3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:" G8 d& @+ q) t) U
[boot loader]; I7 z/ E$ p, W3 b! e1 M5 G/ \9 C
timeout=0; M* _0 O$ H" [7 Q
default=C:\grldr
! z- k2 {8 L0 b4 q. T[operating systems]/ {5 p1 @+ Z4 J/ ~/ o3 Y( ?5 t4 e  Y" l
C:\grldr="Boot Menu"

4 b' z/ s: b2 c' U1 F* [Boot.ini菜單各個項目的含義請對照方案一的說明。
5 L( \% v: G1 f9 l. _- L
8 L8 w) ]- Y1 g: [! y+ Z4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
1 o, [; g7 C5 m" q1 h* q7 a- |$ U8 C/ X9 Y. R; {! N
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。4 Y; B) M0 q  A& m
8 n/ p6 a8 @$ ~$ r" [! ]
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。8 i. P  e# b& w3 C0 H

1 E  R+ P/ ~- z; |7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
+ e* g5 c  k  h- m: X5 }
timeout 30& j/ N, g/ G# B
default 0" u0 }1 |. t6 y2 ^% b
splashimage /boot/splash.gz0 h( r" u) V8 C* L) W
foreground ffff00
+ `) K9 b, n$ _0 _fontfile /boot/fonts.gz; V! R; b) s# a8 ^5 J2 i, _
title 啟動 WindowsPE. y$ i' d# x' \9 X) o
find --set-root /grubidx.txt
& k* u: p/ ^* V$ O" g* S, Ochainloader /ldrxpe
  u, Q, C5 U5 \  Ftitle 啟動 MS-DOS 7.16 x7 W% t6 b0 S) E3 o
find --set-root /grubidx.txt; _/ F6 o! `7 `, S$ X% ?8 Q
map --mem /boot/dos.ima (fd0)2 v0 H* m& H3 R$ t
map --hook
  {2 ]: M8 [% D3 h  k2 Ochainloader (fd0)+13 w6 A: E! H& }
rootnoverify (fd0)

! d" ^4 ~. b- c' z做完這些,U盤就可以啟動了。% Y+ u0 r* x; Q+ x2 U
3 L; o) [; _. v8 T( x; l" I
菜單項目說明:
& a, n1 t: \2 S- E/ p4 ~: |: i5 y$ U
第一行設置等待30秒的等待時間;3 G# D+ [: l2 s  }9 n% A9 c2 t
* ^) c$ t  x1 u% ~
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
& j4 o$ A" z& G+ g5 p$ {! ]
* b. r" k5 k+ Bsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;) t* e0 c: R# J5 i+ l; g2 f
9 P: P- K( |' u& r
foreground項設置啟動菜單文字顏色為亮黃色;% M% L. N1 f+ h5 W" ?7 x( V3 U% e+ h

; I2 a, D0 [) s( yfontfile項設置中文字體文件為/boot/fonts.gz/ j# d( |* l2 A3 A1 W0 p9 V" V
0 Y" @6 N8 e# Z  w( C' Q# k( D- J
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;8 Z3 C1 N* c! Y' P) S
* |  U1 c5 A% B2 @
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。& A2 i& l# z+ J. Z2 i9 E5 S

& X$ M" P& l6 x1 a* ^. Kchainloader /ldrxpe就是啟動WinPE的XPE鏡像。2 i0 Q) Z& |" x) f) F+ W

$ Z) h7 A# M  ]6 U" \' bmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.' A- w" v8 e" v
5 J: y6 g- J8 ^$ i8 c
map --hook是讓裝入的軟盤鏡像立即加載生效。
5 {" m. K+ F. Y! r) u3 K  k
* f" |: g% _. z3 _' brootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。; M: i* F; _  e' o0 c. }0 N

% A  `( ]6 _, A: _9 s' E$ F7 i本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
3 }5 L% T& R2 \/ Z2 J' N
! t: w+ ~2 @5 y' @& p( T
5 K, V) b) h( y* b方案三:MS-DOS 7.1 + Grub4DOS; W+ H' a" R% u

9 w* {( Y- B( R! H% @本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。7 M: U/ C' \+ o; |

; N3 [  W  O5 g0 P/ ?, I1 ?本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
+ t2 Z. [2 j& `, |& p7 b6 |; F& b0 u* w8 L
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。: i, q% ^1 p; T( N5 A" H8 J
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。& o+ H8 {( J, L- i. f/ p5 ]
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。' X* W7 R' p: j" c/ c% R+ R
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
+ ~7 |# k0 K3 E5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
5 j$ `# H% `( d1 P- w6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
+ Q5 N2 V6 [; ^
timeout 0  D( X: o8 |7 G4 a0 n  S  v
default 0
  I4 M8 K1 R5 K) e0 G* v$ ?3 u/ W) rfontfile /fonts.gz
- m0 R# n" p5 d7 V" f( p  ktitle 啟動 WindowsPE; k' x" C" ~7 m$ f1 _
find --set-root /grubidx.txt
" @$ D( Q5 M$ xchainloader /ldrxpe

: C) U+ N. [* [9 w在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
: l& o8 }& B% }1 k) F; ]+ L* E/ ]7 W0 s2 ?/ m
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:" J% w% S# f( a0 n+ B
* z% ^8 A' S/ q
grub
& {2 q7 ~0 u3 J- c, \2 g. S5 `  f
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
& O' \' H( z8 w  F2 X: M2 l( z5 j5 q3 Y" m* N. }
Config.sys內容:4 g/ X1 K3 s  d5 C' e0 w
[MENU]" a- Q2 h7 h, _. R4 K; ^
MENUITEM=1,XMS without CD-ROM support* ~1 B. Z0 E. k$ h2 g. z
MENUITEM=2,XMS with CD-ROM support1 w* }" N6 c! E3 _2 A$ k* [" J4 K
MENUITEM=3,XMS and EMS
9 G$ W! C! O! KMENUITEM=4,DOS real mode(no XMS,no EMS)# R: Y, j1 S- s) H) W
MENUITEM=5,Windows PE  k. Y4 k2 ]& k3 c' }
MENUDEFAULT=5,30
" V; b- ?3 T3 G1 ^0 h- G[1]
( y# d% H" q( ^DEVICE=\HIMEM.SYS /TESTMEM:OFF" m: _0 t) k, u0 H' U2 G
DEVICE=\EMM386.EXE NOEMS3 B: c3 r* A4 ~: d& e- l+ k7 V
INCLUDE=PUB# d4 i0 l. W: O8 \, F$ s
[2]* }% Q' b5 g5 t( n. z. {1 x5 @
DEVICE=\HIMEM.SYS /TESTMEM:OFF
6 q, ^& W% n3 h6 B) E4 kDEVICE=\EMM386.EXE NOEMS  e/ G# h$ N$ B5 ~" `# N6 h
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001- ^. E! d8 h' v2 G4 ~8 c
INCLUDE=PUB4 V" N/ g( }( L$ L% c, k
[3]
: ]0 p0 T% O0 d8 `DEVICE=\HIMEM.SYS /TESTMEM:OFF6 `7 h' V! O" R
DEVICE=\EMM386.EXE RAM! v9 T; F: [! F8 t1 `
INCLUDE=PUB
) q7 L5 }2 R) t+ b[PUB]& S4 V% G& m4 B  Q1 S$ C. o
DOS=HIGH,UMB1 Z0 {5 C( j# D5 |1 B
FILES=30
+ \" K, p' \/ `; @9 rBUFFERS=20
+ r7 i  o3 h+ @6 h; J8 aSTACKS=9,256& F' U) }# |& ^+ c$ y( e0 X
LASTDRIVE=Z
" T+ s6 C5 i& P4 H( l[4]
( w3 u7 B$ V; rFILES=10; [) H* U$ t+ h1 ?
BUFFERS=102 ?8 p8 v' o# b6 c& v, h
LASTDRIVE=Z
0 V+ q, t0 m" E1 M* e; ^' Y, P[5]& d; h+ H& V5 g! J* _
Autoexec.bat內容:! x. u- W, K  r9 E; J  I! Z- _2 \& {
@ECHO OFF
6 K$ r+ U8 K( S% g! m- OPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM# L% y% `) W$ @
GOTO %CONFIG%! l' a% m0 N0 U& w: g( Y& X0 A
:1
! k- C+ P. K, b1 y5 {% sGOTO COMMON
5 N  o& L$ N# X& X2 j:2
. U+ F6 ]8 @8 }3 P, u, iLH \SHSUCDX.COM /D:SSCD001. c- T4 s5 j4 E: Z' D! E, A( T% ?( R
GOTO COMMON) n: Q( y5 @( x. w) x
:3* [$ o: s4 Z/ O
GOTO COMMON
2 Q; Q4 v# _' j7 L:4
3 H9 b6 u. Y' Z" y, H) ?4 x8 \GOTO END
3 Z8 ]8 s2 o5 p) h8 h:56 r' h4 E4 @+ j1 U! x1 m
GRUB8 t) |: ?9 A8 @2 z! n3 P
:COMMON
" b0 U& u2 T5 E7 k9 U! p9 }' TLH \SMARTDRV.EXE /X
3 h: W# g; e% b+ ~2 J* a( m@ECHO Install mouse driver?6 _6 m6 [0 W5 v8 v1 R" }+ x
\CHOICE /C:YN Yes,No /T:N,6# q3 X. a3 _4 }) R+ M: Z0 L' m
IF ERRORLEVEL 2 GOTO END7 S# I; T! V* s2 j" M8 p; Z1 x; J
LH \MOUSE.COM
8 C* v4 S& q5 Y; P:END

/ O% ]5 \3 n. F% A: \1 ~8 K! P; W9 M* `- P) l: B/ y1 B) o
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
  M; M# r- b- S4 n# Z
  ?* }" V9 C/ c6 i9 w感謝5free和david_ge的幫助!
# `2 J$ j' B1 v, l5 r
4 K  }9 ~! z$ E本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:2 f) A  V4 D$ ^) B2 C1 B

8 q( D" V1 i+ x; K" lhttp://bbs.wuyou.com/viewthread.php?tid=94087
' G- n$ s0 `1 R# f& h. T& qhttp://maotao.u.winzheng.com/
/ ]' R) I: }" K0 l) ]% f, J2 m! j3 ]& X; t! u' z
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
) f) c' v9 g( Z1 T$ Z  ~* ~  d, i: o' }8 L
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
- U& h* W% U( C  P# m後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。" S! |# j& {6 d7 f( t

9 p8 l+ Y0 y( Y% F; z目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 8-6-2025 17:37 , Processed in 0.172024 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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