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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」( Q8 {4 C2 U2 p, {) g
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html" k% `9 Y8 p, k. o  }' |7 h1 |) V
- I7 q3 O8 ^8 C+ o* t4 _/ ]9 M

- ?& @% N6 N2 Z* L. h1 q* X. m沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
8 j4 A/ {2 P" a8 h9 U+ I9 l% d( `' ]0 w1 ~) u
前緣:
# \  N: F$ ?$ j9 y% g
( y$ l3 Q( Y' K# d. k+ r很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。* {$ h2 K, g! S" e" o* N
# v) W7 g8 x; Z$ y8 T2 K  _
目標:( P* n0 R- o! J' c8 N) }& o! u
' z& G; ~3 K& }( I' @3 U
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
4 Z: S* @7 M; a+ ^0 O7 \5 `6 X' @  K$ [6 G
技術背景:/ h1 i- q4 b2 b( i# z
( @( u* e! \, ~! W
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
. ], ~) g& n' o5 Q, W3 S) `0 y: K0 e4 @& O) @2 w6 \) B
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
4 K1 ~$ L; `5 J* R" F9 w- W1 p; X. }8 y4 a
因此完成一個操作系統的啟動,) M# N+ R% E0 E5 @4 `
需要兩個必須的步驟:1、MBR引導;2、OS引導。
8 b$ E- e/ t! f, {
) q: }' ]2 N& m- k' s! o6 f- j; M2 M基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
8 ?: [/ m" R9 V% O
8 p$ i$ w6 q) t) j2 e: ^對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。& Z0 N5 I/ V$ F( Z7 W! V$ l
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。' N- {' X" `1 l; f. ~" E8 c
  ]( a; O& F5 P9 _+ {2 m
OS選擇:4 M* `9 Y. F' K+ E% P# {
3 M2 x" b2 r- x! o/ c
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。, T3 s4 ~2 q7 J' G$ g

5 V2 |( @3 @- Q; ?( i5 x6 n方案一:NT Loader + AVLDR + Avlgo
2 o1 T/ M2 S* p* t# H* J+ Z+ o5 ^6 H* u0 g0 ^
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。" b. \/ i! L+ @6 s( v- I

7 R& Z" F9 ^8 Z8 n( T, O7 ~+ z工具準備:3 M# f5 u) t8 o: @
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。: ^8 M" v- e: J( |: {

- _$ @4 U5 L2 t數據準備:
6 [1 O/ F9 W$ \' O: r6 J  x! F% ^# d+ k8 l& O3 q
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。/ f" a- q* v0 ]3 v+ y( p' y
7 O3 [- y2 I0 F
# E* e1 U* X4 @* ?7 U7 A  `( t
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。  Z, r$ D8 z" I' A; S

" k; Z, n3 Q0 F- ^
/ g8 B& g! X/ I6 U/ U# q1 [
$ @6 Z& C% w% m$ c; V* R* Y( Z3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
7 d& c2 C( t' x  X. p' A5 |1 K4 Y! k$ X4 q* ~3 v% ^7 G, c
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
* ~& J( [2 Z' V* P
1 ?" f6 Y# s) ~( }  }; v6 I7 j9 w8 v5 c+ a
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。: S2 [& z( Z% V/ W/ p
% V. d6 d* ]# G- S3 h9 W% l

; }+ H3 n' x) F; b2 e: ^% ]  N6 O) a$ U5 I. g
開始組裝:, q& I- p4 c; k
& A4 G; Z5 T8 c& o
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:# P, S2 T/ ~) c( {; W
[boot loader]4 F6 y# ^2 w  K7 g9 }, M
timeout=30
' Y2 v; }1 q7 }5 ]3 \default=C:\avldr.xpe
) N1 t9 i4 b3 f2 s4 F3 _6 \9 Y[operating systems]4 E, \1 T- I, _* U* D
C:\avldr.xpe="Windows PE ByaoMaotao"
. m. y, \- P, qC:\avldr.bin="MS-DOS 7.1 form USB-HDD", h" T4 g8 E! l& C5 t6 m" z; U8 D( t; j
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
  h8 w) G5 N8 Y3 l
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。3 Y' w" Y7 r- u9 B2 e" X  A' B3 l( n

' h3 ]. F* e+ t/ y這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
$ {& _6 G, p% s8 G# }1 [" `
' A: R1 a2 S5 v- o+ c; f[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
1 w; O" b0 S) f$ j3 K- ^
, Z9 ^7 p! Z3 t, b2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。7 K- z- [& }2 _1 ^3 |$ f" |
& @  I- Y0 N& u" m* M2 G' o, f! T* F
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環境下。
, K5 {' D  t) z* f( o
$ {0 X: p: r& T7 O4 |7 o5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
7 U; n; l" ?+ O& ]7 e2 I! d( }! q+ q% y* V+ Q' g$ O5 e
6、把前面生成的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環境下。
' |/ ?, a# a3 o- C, P! k
: S2 B0 o9 X5 J6 d- {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環境下。
/ V; k9 g4 ^. f$ x0 U$ O
  R: N3 a" Q( ^1 f7 D; y. R至此DOS/WinPE雙啟動系統維護U盤製作成功。' T  Y7 F" B2 M
# H5 O) B0 S* f
方案二:NT Loader + Grub4DOS9 ]7 I& ?( y0 h. i3 ~) L

3 T" p! C' G, l  K" T因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。: s( T4 D7 A. z. j8 I3 p

" b$ `6 f# w6 U3 ~- ?9 j0 F1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。7 H8 ?/ l  [- ~& {5 c3 D* L# _
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。4 I6 m+ p6 z8 P
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:6 B9 G) j3 H' [/ p5 K6 T" R
[boot loader]
" g% k5 `/ D8 H2 z$ Z3 Mtimeout=06 j& g% i# e" [
default=C:\grldr4 b. M3 S3 C- H: }) v) A
[operating systems]
& t: M) |7 l# p# HC:\grldr="Boot Menu"
5 k4 @! @- d# l& K8 b, u
Boot.ini菜單各個項目的含義請對照方案一的說明。
2 t2 h( @/ X/ ?) p3 q; _8 I; \' e. p. N+ \
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。, F, }! ~1 y1 z. K! i' C

7 X  X8 h2 q4 B5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。; p4 ~+ f3 c4 p# |6 b4 D

) a0 M% R' l" J9 I0 z5 `6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。- ^7 O% x  _, F' b5 x; ]5 w' x
% @! z/ Q4 X, v# e- B# _. M
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:! y6 E: _( f, A6 ]# b
timeout 303 p% m# N; ~. t9 r+ Z4 `2 t
default 0
9 e# f% i" {' m2 b1 ~splashimage /boot/splash.gz
7 V* V4 Q/ k) e. [8 g, bforeground ffff00
; o( x+ v# ?, x& n1 O( ofontfile /boot/fonts.gz
* G$ G+ k7 u/ z7 p, ^7 f: mtitle 啟動 WindowsPE
  ]) b; t; d( N9 Z: ~3 n* [find --set-root /grubidx.txt2 Z- S  H" c1 \; M9 C5 ?7 X( k
chainloader /ldrxpe
& M! j1 U3 A( F, P2 stitle 啟動 MS-DOS 7.1
4 ^  v* ]/ @; d4 Ifind --set-root /grubidx.txt) e9 D9 N9 Y6 R
map --mem /boot/dos.ima (fd0)" A  P, ^2 W& \& E1 i
map --hook
# ^2 |5 ?4 A4 b! _* @" Schainloader (fd0)+1* I' [; a8 \- T* _9 F
rootnoverify (fd0)

. ]( D* L* {# e; I, T( `+ p做完這些,U盤就可以啟動了。
. N$ E! [0 X) {; E5 h1 ~8 q) z$ |& Y( ~* ?8 W3 j: I0 a( B
菜單項目說明:4 ^; Y. m( |/ e2 ?

0 W" B+ N5 s% p* H) Q第一行設置等待30秒的等待時間;3 n  `4 _- k& s% h  B/ `

4 F- K: C( P4 V* ~( ]' x) L, H( _第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;8 x7 H& L1 s+ g* Q! B

2 |# _4 g8 @9 F' A- W! j7 ^/ Nsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
, m! J9 h2 R% K9 z
: ^/ [) Z! x2 S7 O) b) M  ]  @foreground項設置啟動菜單文字顏色為亮黃色;1 e- u7 |1 x  k+ g9 t# n8 E1 j! v

; `7 G/ Q: U; l$ W& hfontfile項設置中文字體文件為/boot/fonts.gz6 b9 N0 V7 t( E1 \( w# h
( j( |- n9 Y: s5 U1 Y8 y6 m( W: `
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
- P" ~7 G: A# h  \. h+ ~3 a
* C; p% c. Y  U; @6 w" |find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
& G# R2 H- r( q( z1 q
/ M8 A. m+ G  Rchainloader /ldrxpe就是啟動WinPE的XPE鏡像。
# o! ^. B( h' t, N0 V9 d6 q1 P( `* @
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.- W+ G# V8 W8 e1 a5 ^
7 w6 f) q* r. P+ \  y
map --hook是讓裝入的軟盤鏡像立即加載生效。
6 o0 D& i' w9 v
9 z* {5 f8 w8 o: Y8 H2 W/ [rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
1 I% Q8 {( m& P) R
: W2 x& S7 F* v! u# R7 c本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。1 r) {1 N& A7 F# Y

2 ?$ a" t! K( v% Q" v4 O4 A$ A
' u4 H# b6 j% O, L8 @6 e方案三:MS-DOS 7.1 + Grub4DOS/ s2 i1 V4 R6 n3 X: j

. s5 ]. m; x* G! a6 h本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
5 \! Q, F2 Z6 b
/ k% g& E! P/ v! X* a9 o# |本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
0 N# Q0 h6 z% i5 |0 ^8 T4 B* k0 x6 E: n- p& C- q% Z. p0 u) V
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。' w& I/ {% ]5 H0 F. ]
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
. S) P* o  s" J3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
' b& v, o8 Y. @4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。. j  }9 d4 \* B1 |: y1 B) J
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
% m% u2 t# a, t; @1 W. [$ T& D6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
$ f( `, i+ k1 D5 F" `
timeout 0
. D' P: R! ?, s: c# H* ldefault 0
% D# i4 l. n5 z$ V( ?1 Tfontfile /fonts.gz2 a" p, \/ l  {! b" \- E
title 啟動 WindowsPE8 R1 ?$ `9 @# L% T7 T( t$ g
find --set-root /grubidx.txt
" N) u( B1 K- V; w) wchainloader /ldrxpe

) {* o$ B, c! e% t  w在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。* y  _, J7 A: h% B( Y9 t
3 |( s. p% u& S0 g0 Q
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:: ~: v- N: }9 }" ?8 }; t- b9 N
9 v9 {$ L7 l  h' p
grub
$ k0 p! _* y: O# D5 X% C
- S. U) A6 l% V) ^8 t這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。2 v- C% a& L$ R$ T' H
# [' o+ o3 f7 W
Config.sys內容:
% G3 W4 H9 @# B1 B& u. g7 a
[MENU]) C( y- i$ F, i, S3 e$ ^
MENUITEM=1,XMS without CD-ROM support3 \3 B' x( \" I, p1 F3 K+ U
MENUITEM=2,XMS with CD-ROM support
7 X# N8 \/ s6 JMENUITEM=3,XMS and EMS. t1 g+ M; y. c1 _
MENUITEM=4,DOS real mode(no XMS,no EMS)) J; ]3 B3 s+ E* Y: x+ {6 F8 W; Y4 ?
MENUITEM=5,Windows PE
3 z4 D  M( C% U; FMENUDEFAULT=5,30
, J: Y& Y2 L0 h+ j, E[1]
/ h6 {* c8 @0 e5 u; a5 RDEVICE=\HIMEM.SYS /TESTMEM:OFF
- i% _3 \# I' O9 _, GDEVICE=\EMM386.EXE NOEMS% \" Z5 _* U! p. F4 u$ n8 |
INCLUDE=PUB
7 c* Q7 E+ f0 e* N6 X! w" E[2]
; Q' Z5 Z  P! B+ aDEVICE=\HIMEM.SYS /TESTMEM:OFF1 q4 D$ l8 x$ r/ E) T  U
DEVICE=\EMM386.EXE NOEMS
6 c- }/ K+ J5 I9 l( [4 aDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001  b. y' l& k$ J
INCLUDE=PUB) L( i/ [' A4 H, }2 Q3 s
[3]
1 M  N0 A3 W) W5 L6 }) K, ?DEVICE=\HIMEM.SYS /TESTMEM:OFF
9 L- k5 K1 p, W5 _5 D. f( ^DEVICE=\EMM386.EXE RAM
! }- T6 v0 _1 G% j0 uINCLUDE=PUB. i: q1 W6 y( b: x: @2 _2 |) b* L* e
[PUB]6 Z+ j. u/ x. a% d4 L) w. A% w
DOS=HIGH,UMB9 A8 M8 b7 a2 l9 U# B
FILES=30
  v6 [. E2 d. C& P+ ]* _2 ZBUFFERS=20) x  K% H! _2 n4 j8 l
STACKS=9,256
5 c9 ?6 I! s" v$ {  U! F( ~) W  CLASTDRIVE=Z" W* W2 R6 t0 w
[4]
1 |- E: v6 l: c  a* WFILES=103 u  W0 ^0 Y! [  W
BUFFERS=107 n' T1 \' S) ^" g$ A& P* t
LASTDRIVE=Z
. f1 t9 G. J8 u( Z6 _, u[5]
* q- G+ y. ^5 W6 e2 S! WAutoexec.bat內容:4 @0 d% S$ v" W' h) C
@ECHO OFF
9 O! W4 \) m% _8 x+ O$ C7 WPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM" D6 R( E! u  @5 |( o1 D/ ~
GOTO %CONFIG%
4 ?% I4 Q' [7 G( L& _:1
" m! H9 R: U  |2 P, ^; RGOTO COMMON* e. P4 m/ e! @* _; K$ g
:21 S$ X* w3 U5 ^0 `: c
LH \SHSUCDX.COM /D:SSCD001
- J: Y2 B( c+ QGOTO COMMON* P* I0 v. {( y" ^& y7 \  ^
:38 G8 c; a1 r0 }
GOTO COMMON
. u) Q/ Y# w( ?7 |:40 f/ t5 J' S& y+ L" O4 x
GOTO END
9 e8 e. s; I, Y% \& o:53 x. l, {1 B/ ?9 n5 Z
GRUB
' S5 `+ U3 t" e:COMMON% A8 A9 Q9 ^0 u- W/ y
LH \SMARTDRV.EXE /X
# F/ k1 o. G2 z) P9 Y6 B* p@ECHO Install mouse driver?: \4 J! q. I1 {, \( K( Y& q1 `
\CHOICE /C:YN Yes,No /T:N,6, K7 S) y1 F( \7 e: S! a
IF ERRORLEVEL 2 GOTO END, v9 j5 Z# c5 i0 |) p% G
LH \MOUSE.COM
( a* E7 y$ f9 v3 t0 z) V: w: A+ Y" U:END
- Z  c3 W5 w% s' k: U2 D

) p9 G' F) {4 E; h$ R3 Z按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。: z. {& {( A* k4 O

- `% g' j8 t# m0 k2 V9 @感謝5free和david_ge的幫助!
0 T! [% k$ c2 \! d4 N# Z
' t" }* g/ i/ H3 w) l2 H% U本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
6 l7 @7 B5 L7 U( k  T  V5 e% j9 [5 p: I+ U  c9 X5 q9 F2 E
http://bbs.wuyou.com/viewthread.php?tid=94087
0 |  w! t' X" A. O5 |, }$ {  chttp://maotao.u.winzheng.com/* V+ S* q0 E& K7 |
# N8 F9 R0 o. T- a
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。7 m! w% J+ W" W) p2 y8 t! R
& N$ Q7 N. t* [, U. N1 |! x5 n
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。. ]$ ?: v; v& I' C6 l: b) [- r* G
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
$ A+ t; \1 I; U
9 E! G  t7 P+ V& S$ F" j/ h目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 23-10-2026 21:28 , Processed in 0.220440 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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