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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」* q9 w: p4 x% l) E5 {8 k  s, g
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
: z) h  z( J4 O" z0 j6 ~! z, O
" R4 D. Q2 o. Y
2 I) z$ I5 O: ~6 z沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。% f0 p* {/ b/ x

' @4 B. y  ^; U前緣:
' G7 q3 d* }, s# d5 ~( n# s! G  I7 a. g, y6 p5 B) y
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
# G0 C/ c" E. ?7 l( B6 O2 c8 s% T" D8 [: K* T# C
目標:
3 ?5 M  ]6 c/ p( m4 e3 D; Q! x  n3 W4 K+ ^) O: i
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!: u% t$ U- w5 b4 d1 H" p3 V! B0 w
( ?2 e/ H! G! H7 K' }" }  q
技術背景:: z0 [) V5 N0 I$ K
3 c; Y" G) u* a! b2 t
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。3 B# Z; h9 Y7 P8 A9 r) w4 f& c
5 }1 F0 H6 Z( b, J/ |8 Z. [3 o
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。$ S6 J4 ]  h  s8 y9 }
5 z% H  E: `0 K& i# v1 |# U
因此完成一個操作系統的啟動,
9 i6 A4 J  u) L  K需要兩個必須的步驟:1、MBR引導;2、OS引導。; I6 s6 E) u; t, i, n" e

  ?2 c/ S% J7 S4 a( }6 j( s- D基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
9 [) x. t4 v4 Q' S$ W7 f, o5 Z% X* [  G% N8 C) Y$ a+ B. O1 \  o) W  E
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
8 X3 P. Z" H% `& v. X$ T/ R雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。( |0 n5 I. n5 d9 c  w3 S$ @" Y
/ ]: W7 a9 e3 H2 g0 ^+ J! y
OS選擇:
6 |8 @' h1 Q, ~% V' s  z8 i9 i/ ~1 d
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
8 F# b0 y- B/ N! v8 a3 s. \9 S
: A% `9 y' e/ n0 i( w方案一:NT Loader + AVLDR + Avlgo' ^: |/ |; ?) V2 v( L8 j
: h; N/ y  @1 ?6 Q; }
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。- }6 |9 q$ X) n! k$ T

% q0 S7 H8 R" b9 q# ?- X' W4 d工具準備:; s8 ~# N$ G2 [5 T! ^1 S  L  u
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
7 {" M/ @* _$ M$ n; [' ], B& l+ d. \: K  C0 D: w
數據準備:
+ K6 E. b7 d9 r' r% I, i( `5 i$ R$ p! H' B$ T- ^
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
" S* ?5 C: o+ S- Y/ L/ R- n. w* o
7 t% J' N# n1 a3 A3 @/ B% V
* s7 F5 m: N3 ]8 _. R8 F2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。7 t0 ]* c, N5 |) D
9 J' Q6 V% b( x7 k

6 d- k' Y  Z8 Y0 \. S. ^4 R* H
% T" R. e' l9 N  b% n3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
+ Q: A2 q( r6 k0 M
8 G% r8 C0 ?$ j3 G4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。  `9 a0 l; l9 o- s2 e
8 R) l: s' V. S0 C, C

0 o1 O8 G4 l* V% n+ |5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
6 C; h/ n  M6 x( U! \
( Z1 L& V: G5 O' `8 p! v4 f
  P- S- G8 H. q9 L
" z7 `* ]$ O- Q8 R; V開始組裝:
6 d; l2 h( Q" ~& i$ @& y( Q  N4 |6 G9 s  ?
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
+ v1 r; d: i3 y! q
[boot loader]
+ t- ]! `) d! jtimeout=300 U9 N5 h$ B& i" k8 }% E4 k
default=C:\avldr.xpe
% q( e- \- J, d# o( N  `[operating systems]) Y7 R7 c" H# ~  t: \& Y: U: J
C:\avldr.xpe="Windows PE ByaoMaotao"8 K; Z7 V1 J& J+ X- w, s- I
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
1 \9 o" e! c. S+ zC:\avldr.dos="MS-DOS 7.1 from USB-FDD"
) G1 p. g- O7 m9 |
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
8 z8 D( k  |( p; p" h0 @0 d3 b( j4 N. A0 v
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。* ?; M* u: C- ^/ q0 ?5 i
$ j5 U+ I% W! O& {7 x  f7 P% r
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。) b: O: T% ?+ Y! n3 U$ \
) e2 [1 e5 g( C  w& o
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
8 a& o* W+ t: z& I$ A8 n4 w4 C2 C7 @
! M+ ?4 ?3 J" j! z5 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環境下。
, w8 }' b: X5 {- S* ~) i8 f- J3 Y! d$ R9 K
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。' A. u6 Z, j2 m7 i8 q
  A1 K3 c( D$ w! G
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環境下。
- z- F/ ]3 o, N. j% h
+ S( G# c- S& S. z; M, y4 f/ l7、把前面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環境下。
' j) ?8 ^4 `# R8 K. E" S9 H' d' I- T
至此DOS/WinPE雙啟動系統維護U盤製作成功。
6 k# S- R% M* d9 L; n3 ~- c2 c2 ^& |+ y" U& t! u- n# X( J+ |3 T
方案二:NT Loader + Grub4DOS
5 k  H% W) A. w5 m8 q7 @9 X+ L3 v4 [7 x8 g" Q( O
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。( F' \+ ]3 o8 b1 l7 ~
( n3 y9 _) b4 v. G
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
" {2 Y0 l  r) l3 L2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。& x& b! l/ o: S
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:7 ^: Q" L4 Y# ~/ H0 z( e& r4 d! ~
[boot loader]* Q5 t" A! L2 n* t
timeout=00 `3 j5 E9 Z. ], \% W1 p+ }
default=C:\grldr3 I! d% b+ B6 s; ^- s
[operating systems]
4 V- _" Y7 E; T' K5 M$ FC:\grldr="Boot Menu"
, s" ], g% \- \! @7 \# p
Boot.ini菜單各個項目的含義請對照方案一的說明。
. d8 d! r6 O. E1 V: j: T' Y1 i
1 ~0 o, o1 L% R% G) G( }! k4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
1 _  d  I0 ?7 H& H& x! k( r/ Q& t& J# `" E8 w
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。: F; g: c  H# r+ {8 u6 w; d! b

  P9 _: j, O; W" q# B6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。$ T( ^  s: U8 f2 a' q3 X
4 Y( q5 u( B" x1 \3 b
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
- v/ T  J0 I# {* w
timeout 30" _9 l* e) F! i6 F
default 0
: s, X. K- ^) y' _" s9 T: `splashimage /boot/splash.gz
) d8 l* Z# V- Rforeground ffff008 ^: @$ p# y" R7 B, Y
fontfile /boot/fonts.gz
* x+ S# r0 B0 D1 b2 N3 W$ Btitle 啟動 WindowsPE) f! f5 z8 }* z
find --set-root /grubidx.txt* w; L3 L% t- t1 \
chainloader /ldrxpe
4 l/ ^  D5 j' A9 @7 D9 F8 G8 Ytitle 啟動 MS-DOS 7.1
9 {" E) M: L9 V( d* T' k2 Ffind --set-root /grubidx.txt6 S. d# J, r' Z7 s- K# l4 b) q& T# g% E
map --mem /boot/dos.ima (fd0)$ l+ _2 r% L. y; Q- A, @! B. s% j
map --hook9 u" W' g' w: P! b& X
chainloader (fd0)+1, W0 W6 x5 F& Q3 T. n+ a  G
rootnoverify (fd0)

# w7 C# Z% c9 M) b: H做完這些,U盤就可以啟動了。- U% a1 z5 C' K: L% H. P

4 N$ f  `4 H# @菜單項目說明:1 B/ [: ]" s% j

5 S: b' u, Y4 ^第一行設置等待30秒的等待時間;
6 H7 {* F) G  b3 r, t+ w+ F; R! X! A. I$ ~6 W3 J' o/ `
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;( K. v  e, _2 @3 F) ?9 z7 x- ^9 J$ s
1 O( _5 f6 J* K/ A6 J
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;1 ~+ C- {9 u/ @* ?' o! l" l  ^0 s

6 R2 Z/ }6 o9 C( q3 S, Eforeground項設置啟動菜單文字顏色為亮黃色;- B) x" m# d9 H. p- u5 n

% {* h5 D8 _" Ufontfile項設置中文字體文件為/boot/fonts.gz
% i' I' H# V; A$ ^1 Z5 y+ I' E' S1 Z8 P( t# |* V) t
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
) C0 r1 {: U' t- Y& e
4 v* K  Q; y- A# p4 wfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
7 w- l' z, t; d! O4 q8 H, b* M/ M& f
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。, e3 J1 P' _8 v& C6 u- i/ I

" s" L9 [; z- jmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.  F0 P3 u# _9 P* Z( o3 F
. q- A$ v6 n$ d# |5 F$ h
map --hook是讓裝入的軟盤鏡像立即加載生效。
8 X  _" W8 s; e/ |* [" W
/ u& z: ]5 O( G$ f! lrootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。  [& X4 P6 ?  n) _4 X

+ @/ X- J2 Q; v! h: L! ^/ d" c: f) ~本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
4 R9 S- i# \- z9 y7 L, q- W6 k4 B  B( H% G' U+ R# h

7 |% A6 ]1 g6 q# p& P- {, O% p方案三:MS-DOS 7.1 + Grub4DOS
0 b+ d/ k6 p; L9 K
+ ^- E7 [5 x9 v1 t0 E本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。1 F) `. _/ r+ j- Z' R6 A9 U2 k: F) z

  E# T6 C) O  }4 q0 K' P! h9 }本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
& Y$ B, a, y2 |4 a* D0 O  `
. f. w* N. o8 l$ g$ y1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
2 h- i* L* a8 R/ E' B6 J2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
# U' R0 d( W9 e; H) q( g3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
" l* z! u# a) h$ _5 D1 j# X' o+ E4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
  r) d, m/ ?, L# |- p4 i: ?5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
8 d8 G+ ~% z) F( x( k# E8 w. {1 J5 J6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:" ^9 i* [8 [! N, X' N( Y
timeout 0
( y4 L, E2 D' e' G: K8 ?2 rdefault 0  _  j3 L( I; ?9 l3 m: E+ w
fontfile /fonts.gz* r5 h1 _& c; z( A5 n& ]
title 啟動 WindowsPE3 s! F, F' j; Q: O3 y
find --set-root /grubidx.txt
) U3 a- c* B# l; K$ I$ u: _' O: xchainloader /ldrxpe
& q* A7 p4 S( N% {9 ^
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
# [- |  m5 B5 B- e/ `* q8 B9 H. r) W8 r- ]
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
& _: c. s$ `7 Y& Y' h. \, t8 a1 r4 q6 [; }* b
grub# X3 U6 @4 Z4 H7 A+ ?

( n; {6 s/ V; x這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
; S% D! j# Y2 }% E0 a
  v9 V: R$ m5 I' F3 UConfig.sys內容:
$ E7 c0 [3 u) D4 T" R' ?
[MENU]
8 {  \+ B( }: Y5 ]& |MENUITEM=1,XMS without CD-ROM support7 Q/ E9 y" c5 a+ ^9 U
MENUITEM=2,XMS with CD-ROM support* _' b/ V* _" ]* k6 s  e1 |+ Q
MENUITEM=3,XMS and EMS8 p" {% i6 \$ N0 L& W, G0 x$ q, j2 W
MENUITEM=4,DOS real mode(no XMS,no EMS)
8 U# t+ O* B/ _) ^MENUITEM=5,Windows PE
* s* g% P9 T' a! m) |4 P. QMENUDEFAULT=5,30, G/ Y; g& V5 t) F5 ~/ }
[1]. t6 I$ H- H+ e9 A1 e. T+ d: V1 S
DEVICE=\HIMEM.SYS /TESTMEM:OFF+ {7 G5 R, Z: p. B7 u+ v
DEVICE=\EMM386.EXE NOEMS
% v% C: \, C& L  k" RINCLUDE=PUB' ~2 g9 k; \  X: L" L/ S' l  w
[2]
; e- [5 Z) K/ b  vDEVICE=\HIMEM.SYS /TESTMEM:OFF0 ?. M- q2 m3 Y) P4 _4 L( u
DEVICE=\EMM386.EXE NOEMS! W5 `$ F2 c0 J% s: W
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
* I1 R5 \8 f' ?( i8 i) ]1 ?INCLUDE=PUB
9 t8 V' Y  K5 h4 j2 {[3]
6 H$ v3 j1 {/ e$ V7 y: \& uDEVICE=\HIMEM.SYS /TESTMEM:OFF7 I' |5 R4 Y! e
DEVICE=\EMM386.EXE RAM+ h! E9 o& F  o7 J; U: b: _  j
INCLUDE=PUB
' y9 s, {8 s; c0 y( p# r$ y[PUB]. w. ~# _: k5 e' [' C
DOS=HIGH,UMB1 L( y: @* `; D3 t9 x
FILES=30
$ E( O4 c* Q- i! }BUFFERS=20
) \* e/ M# n/ p! ]STACKS=9,256
8 U8 K0 I) P' B1 u0 N, G! iLASTDRIVE=Z
: c' o' Q7 ^3 J" s$ C/ h[4]
0 A, t( f; u& K! y2 S  C9 QFILES=10% F/ c2 c# U" N. b
BUFFERS=10
7 n% d! B5 x: N2 ~7 g- ^2 ~LASTDRIVE=Z
6 A! q1 V- ^4 x( L* N$ i( O$ D[5]- Z' _- m( T/ e) S' J% F$ J
Autoexec.bat內容:
, M# ~; U- q, C- O& O@ECHO OFF
" R# }( Q4 A8 q; P+ a+ I+ d# tPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM( a2 w# V5 X& w. t
GOTO %CONFIG%
# p4 ~" F/ R9 y" z" \:1
) L# T) x! t% HGOTO COMMON
5 J: G8 `0 H5 n) b:2; {! O, V9 h' ~- j" ~
LH \SHSUCDX.COM /D:SSCD001
0 H' r& m* z8 V( O6 h* e3 KGOTO COMMON* ~# B2 b1 d! C6 z1 m& V" |2 z1 b
:3
# c& E8 t, ?1 i: G; A6 j  \" OGOTO COMMON
! Z) |: M& @  m0 L:4) l* h3 R& S& o1 r7 A( X, j  y# E
GOTO END
: T+ x6 ?4 B: c2 f7 h: I& S- a:5
) s: J6 ~5 v, O' W) Q- q* OGRUB
' R7 ~4 N: O" f$ E" ^. \:COMMON* D/ Y1 q' N# i% F3 t3 q- S1 A" N8 U0 q7 N
LH \SMARTDRV.EXE /X. ?  b; Y( M& Y8 I8 n0 \
@ECHO Install mouse driver?
; D- }9 d, b9 V  {* _\CHOICE /C:YN Yes,No /T:N,6
. `! U7 v: w; P5 b6 G0 xIF ERRORLEVEL 2 GOTO END# J' {5 V1 i/ u+ r% a
LH \MOUSE.COM
* Y2 K' }4 n9 M) F3 S:END

% h; H; [# l5 w0 ~7 j# Q  J
: z( l2 a3 D% A- [按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
1 `; `1 w$ r; r5 Y2 _) n
; H8 U1 I/ G7 O3 T6 g2 C' O感謝5free和david_ge的幫助!
7 w* m/ a4 f6 o' H; Y3 U! n  A" r1 e" h) M7 x) Z8 W
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:: @8 H' [+ A3 N

3 y5 ]: |& h3 D. ghttp://bbs.wuyou.com/viewthread.php?tid=94087; y' n  x2 O2 g  U( n
http://maotao.u.winzheng.com/
$ o; f0 I6 @4 D4 _' g. ^! N' p* X8 a
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。; E+ F( O% C# ~: F% E' ]

4 r, T, E& ]- }最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
2 J- h, R  Z6 p; V後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。5 [9 N# \  L4 }8 i7 z! f; m5 e
7 \6 K9 G  ^* [0 G# Y2 |
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 23-10-2026 21:00 , Processed in 0.167979 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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