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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」
( C! [+ r1 X. p7 O& h本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
0 u: e! ~# A  d, A
' r( I. d8 W' l- ]4 _
, R" }4 R6 C2 C+ N1 i% `5 D$ h沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
/ H2 \: U9 i7 U; h7 J$ Q2 _6 k# `4 R8 H1 n* U; j$ H. D6 X
前緣:; y: e9 A0 ?8 a' Y' X2 w. j4 k

- W. P% @0 a$ O  E5 c; C很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
4 n& }" r3 {! P& @8 A, D1 `: s5 H
, l$ ]/ \3 F8 x  G2 x目標:7 @+ E% ~2 X6 i2 C
( d% }* G- I8 l( k% v& [4 p
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
& k+ U; r$ i. ]8 f3 H- C2 {/ h# _: {6 w6 ?$ B! v: e
技術背景:) W. b, y8 K: C: z2 k) K! |6 p& ^

, Q2 P: M8 s" T- W& q: _其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
, l( ~. C4 `8 l: c/ {7 ?5 Q  r0 X8 f3 |# E2 E- U
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。+ U: ^) q6 W5 U& a  {) j, c' y7 A2 {

" h# r1 J0 B! C- x! G4 Q& D" k5 t因此完成一個操作系統的啟動,
7 ]" ~& v* f8 w- G8 I0 @需要兩個必須的步驟:1、MBR引導;2、OS引導。
  Z4 R! j  W% D/ q
6 ?; y! V5 D4 }4 G- u基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。0 A: @& o! s3 |; U* K
7 h9 t! x9 y) r4 ?) k( @) O9 m5 F
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
) a! C( E8 ]7 d% [' u雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
7 `3 L% u7 C6 T& v6 L) p0 v9 J6 y5 _2 n, M* Z
OS選擇:8 R$ C3 D/ l2 I+ t5 ?

0 d& N* i% V0 H' m8 g/ \& ADOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。2 [  k8 W7 \- G& y
8 p  C) Z( l+ [- O5 y
方案一:NT Loader + AVLDR + Avlgo) u& P+ ^3 d8 t  r: i8 _( }
9 c; `1 J# Z; J/ S# V8 P
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。/ I1 l5 d. ?5 V

' J. ]) f' }$ T* {+ I工具準備:
$ |7 `2 P1 W" N! q' pPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。( I! @0 T* s6 H0 X: h+ |8 A

7 c& {0 f; a  B4 x7 l6 K5 X- J) ?數據準備:! L8 {6 l3 d$ I& L

$ Y; G+ C) s6 `" M, l5 z1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
' |: w; S7 L( g1 Z+ J4 R6 \
( U1 T( l9 D( }) g6 N: s9 K; j. M% i, V7 K& M+ {
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
: e: d' C/ t- {
3 t! y' E7 R3 d# c2 I0 F$ K# j
1 g( o- L+ ?& L7 E1 g6 U) y: I
  _5 |4 s0 c, ?% J7 n3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。) T% ]* p1 o/ o( o. d$ {6 Y. H

% g$ l5 j6 F1 b+ {2 x  O4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。) A! f* b+ J* q4 f( G# n
# u8 L9 g2 x3 ]. C% R
* k  v: w( ~+ f; X
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。" Q' B6 \4 ]% o2 A) u
$ `  ]! G9 A6 S

, o3 J$ }+ }0 D* c+ p
9 Z: G8 T; U5 [5 D開始組裝:
+ f# E' S7 [( q6 L# s3 f! I- P* y1 s! t3 W. \  c% P* F( j
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
* k4 i, G5 j: Q
[boot loader]7 I- E/ q" U" r
timeout=30. @# F' O5 \+ x0 @$ L9 z' |
default=C:\avldr.xpe5 D; N9 ?9 q, f6 X/ z/ Y: B5 s
[operating systems]
+ u1 e: W5 E) B6 LC:\avldr.xpe="Windows PE ByaoMaotao", i7 ], t) d" v. }3 }2 Z. p
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"; p3 m- S- g1 `0 \4 y1 l! F
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
8 t8 d) n  C5 o8 |4 ~5 ~
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。+ N" P- `1 \! I/ I# e4 t$ n

1 t2 E0 @, Q( ]/ L這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。& m1 J+ F$ d- N/ ~- L. O0 t5 P

( ^& T0 k. V+ `# K- {# a7 g% E[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
" X" m, K$ ^6 A8 t+ ~& z& D; ]: A2 w. j- H& G1 @; J
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
9 G7 X/ R4 @2 ?4 y. W4 i1 Z/ x1 Q  _" H5 d7 h% D
3、把下載到的老毛桃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環境下。8 x# S( \  k! V3 W

1 b4 ~: z; `# Y& ~0 |* D5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
) e8 Q4 g1 G' K' L0 k- B0 E
2 w$ V# u  K# P3 U' U1 r8 r6、把前面生成的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環境下。
% `, j3 D. j; I& V( B3 H0 v- u5 j; D9 T% ~: S
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環境下。* b6 S4 s7 v7 s" A

* ?- [8 S. R' a& f至此DOS/WinPE雙啟動系統維護U盤製作成功。
3 U$ [( X; l# p1 y# z! U' k/ z* J( b9 w* L' i
方案二:NT Loader + Grub4DOS
$ J; o" K# ]6 S3 ~+ g0 u2 @) W  n/ D9 ?2 B( q/ O( j
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。/ C0 f: r! E4 x) v
2 n4 n- u9 C4 T- a2 F
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
9 \- Z8 g# u+ P2 i! G( b2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。* d9 V- G+ J- w+ _
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:& |" l. I% O) u6 z
[boot loader]
5 r# k- X) E) d7 x* A% rtimeout=0- t! [  k% S4 e& y6 D0 L
default=C:\grldr- Y  p2 H3 ~( W+ [( z
[operating systems]
" r& x; E& I- ]+ `C:\grldr="Boot Menu"
: I( h  Q3 X, I: b1 i" |& A
Boot.ini菜單各個項目的含義請對照方案一的說明。
8 }' i; q% I$ |
4 Q$ J5 M0 G; {4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
& S! K% ?* J) ^# \
9 Z5 Y4 B0 l4 y5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。: z' V4 {9 Z2 r+ |& y
2 O( z3 k5 \3 O1 Z. Z
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。# C& v; T  X! A/ N" L. ^: Z4 f

$ Q0 J& Y! n  K1 J: Q' |# e' K/ K( V7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
% T5 x' O3 ?" ]+ U$ l, T
timeout 30% l* T$ B( A% B) x* e1 l$ P0 }
default 08 L, S+ b2 E# O1 n% B0 E" d1 Y
splashimage /boot/splash.gz
' N2 u2 [( ?$ T6 cforeground ffff004 r% N- l; j! b* i
fontfile /boot/fonts.gz7 p* D. ~, _9 f# }! P. q6 \
title 啟動 WindowsPE- [" T# o- _  P( M
find --set-root /grubidx.txt$ b3 M9 h/ _4 F1 [# Y
chainloader /ldrxpe# v1 Y* |, x$ |! f2 ?
title 啟動 MS-DOS 7.1
( E4 a2 S. o* X$ j. ?$ E* [" x& g5 qfind --set-root /grubidx.txt
6 U  H3 J0 ]! S: S6 z% [map --mem /boot/dos.ima (fd0)% L) d  |3 F6 q
map --hook3 C! G/ w& x7 z# J! ?
chainloader (fd0)+1
7 d6 F$ I. U  X  mrootnoverify (fd0)
& E: _0 N8 V8 l
做完這些,U盤就可以啟動了。
5 k5 K% o( |" z
; Z1 U! E. n! e$ e! Z' f& a菜單項目說明:4 \% ^2 I# V5 s1 Q
/ \! o/ Q7 M* Z1 l' J3 ~$ p2 Q  v
第一行設置等待30秒的等待時間;
# {' u8 k  q3 ^, l+ f: |4 \
3 q+ O1 k; X: U0 x+ h5 d% s第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
2 ^- j4 d! D+ `+ j
& n2 h6 g6 o# e* F/ Q7 M2 ]splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;' n9 G; q- N, _, g4 E( C
( w9 z0 {, j. x2 a6 u  g4 U
foreground項設置啟動菜單文字顏色為亮黃色;
% f# J# O3 n+ B. c
2 r8 {! }$ j6 R+ |& _fontfile項設置中文字體文件為/boot/fonts.gz" i' y$ _0 O- M0 ?. z
7 D. ^# l" x. G* M6 K" K
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
# l' x7 p) e3 j/ U8 T; ?4 |! H
; i& ^) \: f$ w- a; N" l; ]2 Jfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。; B& e" W4 v" K  G
, Z- i# \% T  [' M+ O& z: C
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
( E0 \# Z  w% p. R
7 \( p# e0 X2 A/ O* S/ o5 Dmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
0 z# S1 L1 ^1 p; v" u9 p
/ f, a" E3 W. W" @$ f1 o5 Q" vmap --hook是讓裝入的軟盤鏡像立即加載生效。/ N2 s5 f$ ~4 ]
& L% H! u5 r- r1 Y
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。6 ~. \% w4 _' K- ?8 ~5 |# h. n
3 W3 V$ N/ R3 T$ O
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。7 J, i( v  p# s' a8 P6 t2 z( v

' c8 H9 s5 P* u+ }' z- v5 F/ U* o: w1 i; Q0 }  J
方案三:MS-DOS 7.1 + Grub4DOS
# H' Q4 l& v  E$ X& P3 W4 C  b+ R6 }/ |1 J8 p" [
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
) u2 T& u2 \  N: e8 a6 J8 w- F! s% b; n( B# |1 Q: P
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
: t6 x9 {8 M; v
/ r0 T+ `, ~) @1 f& |5 a$ B5 ]1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
* @5 n7 X  a; F1 k2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
' J- H, K8 k( L) U: a3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
$ j+ X. l6 f3 Z4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。6 j" D  |! f& p, f4 U
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。, f, L' z! A  O( w( I
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:  m. |$ Z+ `& ^% b/ T4 z: I
timeout 0
# O/ M  k- `' X( [7 t4 H/ Idefault 0
/ j, ?" V% j5 o! X: w& [fontfile /fonts.gz
) G$ p# e- D# t8 ltitle 啟動 WindowsPE, @3 E- X7 x7 d1 ]7 X. N* M9 L
find --set-root /grubidx.txt4 P/ v. }$ }: v
chainloader /ldrxpe

$ `0 ~& W1 A3 Y9 H0 [. ~( _/ a在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
6 h. ~- S( g( o- o; W& t, q2 [5 J, M) [& K
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:; F8 N. p, c5 n
5 J& ?/ \' i+ b. s8 Z' \
grub
: [0 d# E! l3 X
9 t" I- |, S8 k7 D這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
  f( D! i0 Y+ g+ J7 p# D' {( D6 M' L
Config.sys內容:  ?5 U/ e% p5 Y+ a6 X  a+ R5 `" C
[MENU]
* V! ~# _% \. @1 R2 i0 v0 JMENUITEM=1,XMS without CD-ROM support0 u& \7 O4 E# q- g
MENUITEM=2,XMS with CD-ROM support
5 X, Z8 u. c# P: ~# _MENUITEM=3,XMS and EMS
9 h7 J* ~5 S- k; n; g' h2 ^MENUITEM=4,DOS real mode(no XMS,no EMS)
& H6 ^" a9 Z  G  uMENUITEM=5,Windows PE5 s1 h1 X& `3 N# ^5 I( V- u; Z
MENUDEFAULT=5,30# }8 k& M+ M. A0 j
[1]
. m5 m8 B, _% P  ?8 sDEVICE=\HIMEM.SYS /TESTMEM:OFF9 J7 z  v4 J! I' u
DEVICE=\EMM386.EXE NOEMS7 K$ Y9 y! h; S# P( y( m
INCLUDE=PUB  l: c1 e& p/ p6 F
[2]/ O" f! \3 p( `+ ?) X4 j% g" T6 e, |$ b
DEVICE=\HIMEM.SYS /TESTMEM:OFF; H, G! f. X$ \  r
DEVICE=\EMM386.EXE NOEMS
1 q2 Y, X! s4 d  x5 yDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
8 Y' i/ X5 I, S$ y* q' `  TINCLUDE=PUB6 S+ @% Z3 A4 F! p6 @" ~+ I
[3]
/ L3 @2 m* ]6 o4 u" y$ U' Q4 zDEVICE=\HIMEM.SYS /TESTMEM:OFF. L0 \# n( C4 h/ w0 H- d+ ]5 |
DEVICE=\EMM386.EXE RAM& B3 y# g" r' i3 J
INCLUDE=PUB+ @) b) V$ c5 A# t
[PUB]
, p* N0 _3 J, ?) p. H% H! x7 R5 IDOS=HIGH,UMB+ u, b0 T% u0 y: Z( ]1 R
FILES=30
4 q3 U5 r+ B& E- n2 {8 G% i% sBUFFERS=20% e, S% I0 O- H
STACKS=9,256
# b9 ^2 i' W3 I" DLASTDRIVE=Z
, g$ Y- g* @# d5 @  o$ l; \1 m1 \- Y[4]
* n4 i: l! g1 Z2 G" H& n2 E# q* TFILES=10
9 ?% y; f2 @2 i$ ZBUFFERS=10
3 B. f' b9 R+ |9 A+ G5 `4 O% DLASTDRIVE=Z
( j/ t0 s! d1 a% Z4 l[5]
4 S% V& E# w5 M- R. l8 l& tAutoexec.bat內容:( q( q' E0 e5 s5 a
@ECHO OFF
" `' K$ N9 y' R  o3 X- D7 MPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM  z& D- D9 k4 A0 w6 i- V
GOTO %CONFIG%
2 B. W" U0 A0 w1 r$ a+ m  Z+ `:1! X9 a( s/ V7 _/ L  E; e
GOTO COMMON% X# a, l. R; W7 y
:2
  {! m. g. T' B( L5 A0 ~- K/ ?+ fLH \SHSUCDX.COM /D:SSCD001
2 ?4 a& ^$ ^  J# aGOTO COMMON) Q: R8 |- ~6 J/ ?, H$ i1 {( _% ]$ a
:3
% V5 w% |1 [# v# ^, R) U& HGOTO COMMON1 M+ u$ D* h6 |' v5 K: v5 \
:4# r( T, m# W6 s
GOTO END3 [+ y$ W, a3 [1 O6 a8 a
:5$ v9 e; |5 w6 K7 Z5 L" Y0 f0 I
GRUB( T4 M- r: Q; e+ h" @! U
:COMMON% R( _4 f# l4 e1 D$ f
LH \SMARTDRV.EXE /X
( Q' F5 ^) W1 W2 W) R@ECHO Install mouse driver?- {8 G5 `" |  S# J) S  f  H! \
\CHOICE /C:YN Yes,No /T:N,6
) _# v% I) f: W/ q5 DIF ERRORLEVEL 2 GOTO END
- S6 B1 q$ ?$ z8 S7 X* gLH \MOUSE.COM/ Y9 u- [, e" i' ~+ q6 y, N
:END

- k" M6 d; W4 e* g; a; w3 Z8 D  f2 y  x; Q2 r9 u( r
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
# t  r' Y; x5 H! H( x, w% V- X1 i% J1 t" p: Y& L
感謝5free和david_ge的幫助!: d  m& h# j, c( v* }4 ?0 l
1 g$ B* a) M5 S  m+ k
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
, w" r) b4 @2 ]9 W/ k. L8 ^9 k: N6 |
9 m, Y  m, R0 T. u; ~http://bbs.wuyou.com/viewthread.php?tid=94087
* g4 T+ N$ R" C$ ^' Z! L0 L# fhttp://maotao.u.winzheng.com/
, n& _$ P6 a+ N7 k2 r8 b, `) c6 n% t6 \# s! L
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
- @! r# o# R! C# K4 P2 n
. V" w' e, q$ L4 m9 a' H5 b/ ?/ o最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
2 q2 {; p4 ?) R) k, y, @( w後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。, `& H4 {: C+ R
& V2 z  v! F2 |2 Q# Z
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 30-1-2026 22:32 , Processed in 0.583997 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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