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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」( C8 k8 ~: t! F4 \. g+ q
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html, K0 g4 a9 J$ X" @9 e+ X
1 `' I' m( {: ^& t/ D0 J( G' i! T9 D1 A

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

5 q& O& h$ U4 y- X* dMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
' D, b; q( I2 g! b1 X
; ?* G  n' k. D; p  @工具準備:
# {5 d; }8 b7 U$ V. RPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
4 |( x- e) g, @+ R3 ^. S
; M: I% _" D0 c0 t! D7 G- n' N數據準備:+ A/ L. O3 E' Q6 L3 O

5 f$ B" v) M% f  s  X& w, o1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。8 y/ f) }8 Q: m3 P7 }1 U1 x
  `" W; C5 g. ?4 Q$ K& m
. K/ e) a5 |: r/ m- I
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。6 p6 \) [% F) I, s4 x& m' U+ A8 F

# b$ B* U* j8 F0 I3 V
9 d+ S) V- K7 G) c( l  W4 G5 Q9 b! R. a
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
" l  U9 s1 t# K# O
/ w' E. }* s) m8 W2 R4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
$ @" v5 R6 T- z) F% C4 ~# n8 v1 n: `2 \4 i0 t, f
5 v8 P: c: R% ?! v7 `
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
, ^5 ~9 {& ~8 A0 L' D6 C3 ?/ O$ E4 U: f
/ |" _& v2 V! R6 I5 y* ^1 Z  A8 L
. u7 d7 P- e# L3 _
開始組裝:
, n0 K* Z( }# E; S# u' p4 ]3 s4 o, B* n% Y' c! v
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
0 H% q: k9 K7 b. I8 u4 l
[boot loader]0 T2 z/ a6 t$ S8 s' q: \. Y4 R
timeout=30' W, n( [: o3 X
default=C:\avldr.xpe# D$ ?# ~, l0 k! t% v$ F; X  t
[operating systems]& {8 Z! Z  Z2 Z1 N' P
C:\avldr.xpe="Windows PE ByaoMaotao"
) k$ s, `  I; E. D, a1 zC:\avldr.bin="MS-DOS 7.1 form USB-HDD"
* y- p2 z1 m. n/ n: F+ N0 AC:\avldr.dos="MS-DOS 7.1 from USB-FDD"

. @2 s3 l  s8 K) i( f# x完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
& O8 f. E  i' m' T. M3 L, ~
5 P: p4 ]5 b! y這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。% x- Z2 b- l8 \3 l# ~! E5 H* e7 Z
7 p, ?: P7 E! k) i) H- R  o& W
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。$ C) ^6 L7 F3 y5 @

. {7 H/ N8 V& C2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。; ?# j0 Q. t4 `: o7 M
7 }. M5 r" B4 t* F- S
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環境下。6 x" s: b+ y& X8 ~3 ]  h0 |
  b; g2 E7 @2 v8 u: O' L/ T8 F
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
$ i7 h- `' |3 r; Z  Z  ]* r( s
6 A" C( s. U# T  d0 x3 z6、把前面生成的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環境下。
& t2 t% v' f' J5 a
$ V! }; A9 Q" t# W+ m* O7、把前面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環境下。
5 e6 [, S* f# |0 z: @# M3 B9 @7 k" Y. [
" l7 |  j, q) Z4 D- m6 @6 A  w至此DOS/WinPE雙啟動系統維護U盤製作成功。# d& x5 r' {' r& }+ K9 a* v3 K

$ E' G. H6 [% H6 B方案二:NT Loader + Grub4DOS
9 H2 d: N! ?4 P! [6 U; U" F7 f+ N/ P9 r' i
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。, ~. z' f" N/ E& n5 R
; m. W7 d+ u4 A' J; u$ W
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
/ N' V* z: P) t  h# z7 V# S2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
, v  }& N, |/ s3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:# y# @% H$ F, O: b0 {& U% r( C
[boot loader]+ o1 k; p! U- V& {! D2 h
timeout=0
3 p- |( l" w: Y0 |1 ^0 ldefault=C:\grldr/ A( x5 m" g) z5 g
[operating systems]2 C: L( T! S3 W& ?; r# A
C:\grldr="Boot Menu"

0 i1 j6 {% f* u* ^Boot.ini菜單各個項目的含義請對照方案一的說明。+ @- q( x6 Y: d- w' D2 z$ O

; N8 k- B7 t  j9 h3 U& {4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。; m! R. e. m  c2 _% M

4 V% k6 G; m( E, j5 o5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
9 d  ]2 _' A" ^1 D0 i
, n7 z4 v, C8 |; F/ m6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
' A/ Q5 o9 I  l+ n$ P0 u3 ?) }1 r) `& T2 G$ E% ]1 Y  h
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:0 V5 q# C' }9 h+ K: b5 ~! a
timeout 303 s+ J9 P8 e- Q
default 0, X- k. l% s6 e# p" E2 D
splashimage /boot/splash.gz
; l% U$ O  @: n  }. m* qforeground ffff00: Z2 F9 V8 Y$ v# }  X
fontfile /boot/fonts.gz1 i' f" t9 Y- |2 Z' s) Y) q
title 啟動 WindowsPE
1 l2 J& C0 S" Qfind --set-root /grubidx.txt
. s3 r9 U3 }2 Y2 p/ F& Z3 {chainloader /ldrxpe
# |: }: W# a9 [& s1 v: l; ^7 ~title 啟動 MS-DOS 7.1( a# b, [3 y# {! a1 F
find --set-root /grubidx.txt
9 G. g3 b( F: G" H5 Imap --mem /boot/dos.ima (fd0)( j" Q1 [* t* [' s
map --hook
' v4 O, E1 F6 z* e. T) O( s+ lchainloader (fd0)+1. e* M6 u1 v; S4 ]6 F! D- U. l9 l
rootnoverify (fd0)
0 z2 I5 J/ c( _4 h. X! M2 f3 F: u
做完這些,U盤就可以啟動了。7 C. Y1 r. d- j% {) j5 d
$ Q! R+ A  K' i/ R
菜單項目說明:) {3 U7 r& O5 Q. I8 `2 d0 y
8 s2 R$ F& t* d' A; V& ?
第一行設置等待30秒的等待時間;, {) l4 J) \/ F9 F6 b* Q$ b1 g
( {& u* y! o# F
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
  }' h2 \+ m# x5 C3 @, j; ?, Y' a. t! M+ y: b4 i" i
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
$ u4 L  C/ n9 |
/ N- T: ?' X: w/ l) N# i1 [foreground項設置啟動菜單文字顏色為亮黃色;6 \- b' b- ]2 E7 H) z
$ l. b/ H) {3 S* v  J  K( e& T/ [
fontfile項設置中文字體文件為/boot/fonts.gz; w8 ^: w6 j) i0 i$ J
- W, `7 d4 r- ^" s) P0 D6 K' l! P
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
: z5 I* o1 T9 T* M. B
$ B4 x% u/ h1 D: s  l# |; Cfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。( }* t) x2 [; H+ ^+ q2 |- {
' {# w4 ?6 ~9 h9 M* s& Y% J! }
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。. e' h) z* M0 B( g3 S

8 ~: @& E5 F+ v9 ^map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.7 E3 ?+ {+ e; ]5 x) M# K

0 H: i0 T( @; N/ ^) U, Tmap --hook是讓裝入的軟盤鏡像立即加載生效。
/ a6 z" b/ m8 N" v
; O4 g# V; ?* q' K8 o0 h2 s: ^  N/ Trootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
$ S6 p  [. ]7 W1 A
! Q: z; f* P7 y本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
: W2 h& \* [! `3 L6 g2 u) q  e1 {

" w  L: S1 c* @6 S1 u6 S# I方案三:MS-DOS 7.1 + Grub4DOS0 {" A: A2 |* w1 s0 b2 H

/ A& Q& \7 j& L% U本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
6 e/ [  l% O/ }
8 Q# ^& {, q/ i& o1 o本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
$ c4 h/ m# H- U  o) W( @9 r; `2 @, f: e
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
: C: B, o1 E) A4 |2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。, L- F. q' m( D- R4 v' k- ]8 Q
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。3 [1 n/ Z, L3 P3 ]/ w) o7 K, {3 u2 ~
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
/ }4 Z: m! m6 U3 C9 s! s% |1 l! S4 w5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
! B% D2 j% t( H5 p6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:; S3 k6 s' c# c( D5 ]9 u% Z
timeout 0, S5 n, F+ K, r' n7 Z
default 0
1 g' d+ [) R9 K, kfontfile /fonts.gz
, W7 I1 H; y# l4 wtitle 啟動 WindowsPE
4 ]0 X: x3 _9 u4 o8 T4 Ifind --set-root /grubidx.txt
+ W; g' G/ [, v! r* j; l1 l0 Xchainloader /ldrxpe
' L; n0 |2 ?  O$ I
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。* v+ r: |; D/ A7 ~6 H

. V  Y2 J( V' |7 K( N8 `8 |7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
& d2 h+ g3 h* W8 k& i4 c1 W9 R6 W- E3 v  ?" @
grub) [3 k" U4 D' T
3 U" p* s! I5 U, _1 M6 g! d6 N
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
" n% i; A5 s& U2 q7 P9 e5 z8 H. R" E4 S8 }$ n
Config.sys內容:
2 q; K3 ~! g1 ?; L+ O1 `7 N
[MENU]
# W* R. e2 S% sMENUITEM=1,XMS without CD-ROM support/ W! I9 p" v) A- ^! p9 a
MENUITEM=2,XMS with CD-ROM support
( I4 Q, q( l9 w4 v6 Y2 s& {9 S+ fMENUITEM=3,XMS and EMS; [9 _% G: [# r/ ]8 |4 C( Y  }
MENUITEM=4,DOS real mode(no XMS,no EMS)
* P! ^/ \6 v7 _0 Q+ u9 `MENUITEM=5,Windows PE
+ X1 ]/ `9 [; I. H4 eMENUDEFAULT=5,30
7 H& b7 n  B6 {) V3 [. B[1]
; h  ^8 ^( @- s8 }# V2 V6 IDEVICE=\HIMEM.SYS /TESTMEM:OFF
* s# S4 I5 g1 t9 d; R0 z; W0 mDEVICE=\EMM386.EXE NOEMS
' r, V- g6 ]3 m# GINCLUDE=PUB
5 q1 n8 h7 H0 U( ^: m. f) m[2]
% [' @7 y0 ^! E. l, K- {DEVICE=\HIMEM.SYS /TESTMEM:OFF
  N. X$ g! r6 A/ E  cDEVICE=\EMM386.EXE NOEMS
2 L( y7 G% m* j& X. MDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD0016 Q7 E# f; T! }1 j
INCLUDE=PUB. w3 r/ v, Q1 J- x2 a- }
[3]
0 j: C5 n0 K: d4 ], cDEVICE=\HIMEM.SYS /TESTMEM:OFF
1 y6 M. G; m5 K. m+ v1 N6 H- t' yDEVICE=\EMM386.EXE RAM% c( r6 m' k) C! Z
INCLUDE=PUB
7 ~$ @1 m9 y3 l. m6 o' {[PUB]" i( K: V3 r# l# k4 M7 z
DOS=HIGH,UMB" Z8 J3 L# r/ D. L
FILES=302 q  r+ l" \% V
BUFFERS=20
4 e& K5 C# t0 L+ H4 {4 y' sSTACKS=9,256% d: [* J  s/ T$ c' y
LASTDRIVE=Z
, W# R+ D, C, J[4]
; ?- M2 y4 Z) yFILES=10
1 x, V3 |  ], L* a/ Z5 YBUFFERS=109 K9 m  t: ^$ c/ [; b' ~$ S4 q
LASTDRIVE=Z" {" q4 l7 T" a* g7 g4 X% Z. M
[5]
1 E" |) G- S" m! jAutoexec.bat內容:
0 S" n/ N% U, J  l* l7 B@ECHO OFF
0 S7 o, V5 u! `( BPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM- n% F4 B; O' t! \! ~: D: o
GOTO %CONFIG%
2 x* S1 q+ i0 [$ [0 i: ?:19 G. u9 T& c1 B( Z" }1 z: k5 h6 C
GOTO COMMON
" s* [" W* x8 j9 ^/ j' P:2
5 i6 `$ m* u  H$ L/ P0 l. `LH \SHSUCDX.COM /D:SSCD001
5 A+ K4 k) D) V5 [! EGOTO COMMON
3 L2 Q- w- z1 q% O/ }, W:3
9 T* ]2 z. d9 K6 eGOTO COMMON
/ q: |: Q  k" p+ v# f, G:43 a; s: `9 E' K( W1 l; y8 Q8 f4 X
GOTO END
1 Q- F! W" a) L. E( s* O  h! y:5
4 c. f- v; f2 X6 CGRUB
* S8 w  h. q' n  |+ ]" H3 R4 ~:COMMON2 D- c, H, E- \1 j- v0 I
LH \SMARTDRV.EXE /X
8 `( O& N/ i) k+ q$ B1 X: E" k@ECHO Install mouse driver?
9 g$ F/ R% W2 ^8 ]\CHOICE /C:YN Yes,No /T:N,6) f( Y, F. Z! e* s" p+ {2 ?
IF ERRORLEVEL 2 GOTO END
; a" \5 t% |2 |LH \MOUSE.COM$ z, c8 Q" u8 w1 W6 P9 P4 H
:END
" ]0 A5 T. q5 J1 `0 F8 V2 u5 D

1 C1 M5 q9 n. B: P* \  h% V1 ?按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
! U( h. f! r# P: l% r) o9 S! x
- `( n5 o0 R4 r8 L* ?2 E, d9 O感謝5free和david_ge的幫助!
4 W& ^2 c0 ^3 B- l0 }  h( V( g. J9 e/ c% s4 C
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
; w2 h2 x3 z7 d% E* R9 i3 l1 J4 t  {" {
http://bbs.wuyou.com/viewthread.php?tid=94087
0 x% U  A' F: t' I( s3 J+ yhttp://maotao.u.winzheng.com/
$ a* ]2 I8 j9 J2 m" Q& r3 h7 Q( s$ P  P4 R% n) W# e. X
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
, @. k: ]5 p# H/ q/ f& E  S/ E. [
' `; r) A+ p; C; X, n& y# f5 M2 L最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。: `# I5 o; x1 L7 Y
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
* E/ F4 ~4 q' i9 H2 ~
' f, x6 w5 C6 s* }4 t- I目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

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

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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