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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」/ L# L: V$ ?) s( p+ {# w
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
; s* u! i% A6 E$ u
9 ?+ i$ ~# s2 w8 g
% W/ W) S8 x4 K0 ^0 ]$ R+ ]# M0 _沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
0 s5 D- ^' i6 ~7 }1 e' Q* B2 z# h& A
前緣:/ d% i8 ~* w+ s' ~6 z
, S2 r! v1 _7 c# a. g
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。5 Z5 w# c7 Y: j- L6 T' A
7 Q0 J5 i& E9 h
目標:2 o/ f6 a  n  ~4 C8 H( q4 H

' e6 w  }% h' _- W, H7 N對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!. f3 z. Z, }' Y
: t. i3 W8 n$ d
技術背景:
6 B/ E, k% d5 [; D5 B2 _4 T: R
& {" f# N6 h5 e' u# N2 R% B其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
! v& y  }& h7 o- E9 j8 z
' [' e) }$ z; G首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。+ x% b' i" }8 w! p6 a9 H$ h, \

' ~; U% S8 b. P) O  a因此完成一個操作系統的啟動,9 p- B; C' ~. n- W. d
需要兩個必須的步驟:1、MBR引導;2、OS引導。' b; d: g0 _  |* [1 r3 I* l5 i" o
% F& u1 u  c; h) ], s
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
4 ^& s# X( j+ d6 ~7 {4 _) p4 s- z3 @0 A; Y3 T
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
- j: L4 s: C9 j2 u雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。! c! v  j% T& ]: R* h3 H8 ~

8 b% p! {: s& J, {, d3 POS選擇:
* I5 G5 D+ Z9 s# `1 }8 Y" `4 [! W' ~* S- [/ \% e
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。, c% w+ ^4 Z: A& k+ H

( ^' }: k$ W" N+ T7 w  _# w' ]方案一:NT Loader + AVLDR + Avlgo
9 B+ R) [1 S$ X% I$ Y; @
! H; w+ @) R& o+ a! UMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。- I' e$ f* y2 D0 T& A
+ u6 s$ D8 X. [+ q$ E# N
工具準備:
; I/ ]6 [) e# S# NPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
5 I0 L- u; s0 T7 ?" W! e% x
1 i4 }* _0 g; R: E3 c數據準備:& Y0 \2 x* ]. o& p! Q6 F
6 Y# w! X$ O+ ~/ P2 g% `: E0 |) t
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
8 j( i& d; h1 f) i* J5 k: ~  }: n
5 P7 E! d+ X8 S. \: @
+ m; V5 D$ E' z  f2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。: G5 ~! ]; H6 k% S- F

6 X0 z7 [8 r" I/ s: N! E$ @
6 O$ }$ b  H) n2 V
5 }) I' c" d. y3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
. c5 G) W, D( D" i0 ^+ z$ U$ K
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
6 C1 _! v/ T) W7 |3 E( P' U
. \8 a$ Z' e( ]/ N3 q, \9 _2 T; }5 M8 C# f
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。  a6 i1 Z' D! ~/ w; }. ~
. v+ H/ i( M* U, D: `
( d0 }- Q! M, l6 e
2 Y6 B: u: e2 C  S- r8 U
開始組裝:
( W0 o( X4 a( k% p% q7 F5 O3 Q
: N  q" o; Z% E2 f5 z1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:' ^* P  z$ ^4 n0 r8 ]3 j# U$ F
[boot loader]
9 c1 U' ^& M) l; |& K( Ytimeout=30
, V2 l' r3 m. z2 x8 I) rdefault=C:\avldr.xpe
% L) U7 l3 z5 O& o[operating systems]
$ ~- Q) ^4 ~( J2 oC:\avldr.xpe="Windows PE ByaoMaotao"$ W. z: t: ]. W8 U/ Q) `3 `
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"1 F& a- X- {8 W5 T! D
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
' K+ e  R7 V% S3 Q( c/ S
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。- `) J3 m+ M; J  ~

1 ?# \7 g/ `1 h+ q$ ^# B這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
  l+ o4 Y' x" ?+ M6 |, `; m! H1 F5 q4 j- J0 Y
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
) U/ n$ [8 {* [+ C: N8 x
, A! d  o+ u: M* |4 F2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。0 q/ u/ j3 I4 _0 W' Y3 {" o
2 a5 h' y& T4 R+ U. z
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 o$ t& U, B) J+ x# R* W8 P
3 @4 d# n1 g( \* p( j( O) d2 E7 M) a5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
( `, ?8 ]( m, Q
+ |8 E5 B3 q& n% _+ P5 o6、把前面生成的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環境下。+ G* [+ G6 z% N, `3 Y
3 a$ _& ]7 D  G# E% _5 r4 N
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環境下。: C4 t  K8 s# Q

! X" d- g2 `$ g* L/ G# g; b# ^至此DOS/WinPE雙啟動系統維護U盤製作成功。
/ Y' @% x9 ?  y+ g
( C; t: e3 H, G方案二:NT Loader + Grub4DOS4 {5 {$ _. a4 n$ }$ ]2 L
6 J. x+ M1 S( v3 Y. w
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。- E! K. b" [% k, [! @5 ^* D

: K4 e. k( E3 ?: H3 S' n% J1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。# q6 u8 C( C" H/ `2 V6 P
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。; |6 i/ ]) P4 E9 O8 F
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
( S" H  y5 t" V) ?/ A- M
[boot loader]2 k& F5 d8 i& K$ S5 \+ Z
timeout=06 O, r3 s( _( {- W
default=C:\grldr
7 N. x- w) v4 k9 m[operating systems]
/ A( d$ z( r( a: \6 x2 Z6 V9 cC:\grldr="Boot Menu"
* f9 q# R' s! a
Boot.ini菜單各個項目的含義請對照方案一的說明。( \, @- i# i- u2 J3 s
) c( w) w6 A- Y8 @9 A% u) X, s0 ^3 Y
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
8 ]0 w5 B" `' D
3 o% w: L7 s. G  @+ T8 b- p& p5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
! U9 h6 V  H1 ?- g* X3 ]. n- g2 r
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
1 p+ d4 q8 ~; T. i, m, B3 h
  r1 x; U3 U* P/ u' V! Z3 \. i  ^7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
. q, p% B. ~5 ~# d* O0 _/ ]; y8 W9 J
timeout 30
% b5 h8 X7 R0 l$ G/ y3 [8 _  Y& @default 0
$ s$ M0 X  M8 B7 f4 I1 Ssplashimage /boot/splash.gz( i' A3 }+ h1 V
foreground ffff00
. ?: Z. o6 z2 ^! b- x, Wfontfile /boot/fonts.gz/ K" Q$ N2 V( b( m  f
title 啟動 WindowsPE+ @2 t0 w& W. T" l' F
find --set-root /grubidx.txt* P4 @7 k! W, I7 S
chainloader /ldrxpe
9 V) I5 A: u, ]  B* O7 \2 `title 啟動 MS-DOS 7.13 C6 V& _+ L9 f3 f) }
find --set-root /grubidx.txt/ q* ^! v7 A) n, c
map --mem /boot/dos.ima (fd0)* r! |) y1 U$ E3 @) O# x' r4 \
map --hook
/ Z! ]5 N" Q4 ^  l: T0 x6 f" T9 echainloader (fd0)+1) R& T+ f" Y5 }* T. {
rootnoverify (fd0)
! ~+ L: O/ ^4 Y9 @2 P% S. C7 I
做完這些,U盤就可以啟動了。
2 M4 \& _8 ^8 X8 h; b0 W# w( \) v* }% n# a
菜單項目說明:
- J4 e# ^0 w$ h  V
: i3 T" K0 b- r+ {8 L" C) w  J第一行設置等待30秒的等待時間;, c8 Z( `3 Y% d. V& w/ w  @  y
) @' L3 R9 }! j0 t
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
" c4 I0 N5 K: g. Q4 Q4 w
) y5 V2 Y1 r$ Z6 I5 Hsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;2 _8 N) _0 y1 O: G# p" F* P; \2 n
8 U3 G+ ?$ A/ H- [
foreground項設置啟動菜單文字顏色為亮黃色;" x/ \. z- [6 {
( p! l  N% B! F' Q5 @
fontfile項設置中文字體文件為/boot/fonts.gz% _) I% g+ w4 M4 p2 P+ ?% d

2 t- G& ^' ^4 p  w下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;3 ]1 D# Z" o2 [9 U- u8 m4 }6 K
% I" W0 |2 k! ^
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。  D+ ^  f7 b  p; r; L) `8 G1 f

; W6 C' ]% E5 qchainloader /ldrxpe就是啟動WinPE的XPE鏡像。. t* g8 p% f/ S& c) W4 b1 u
- C8 B5 }3 n9 `! N3 k7 s
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
3 b: E( @& V4 V) _8 q3 Q, g3 P0 _2 S0 l& _! d! @- @( |
map --hook是讓裝入的軟盤鏡像立即加載生效。$ T, Q& a) L9 N$ i5 O; ]9 `
: D# ~+ v8 P# B* W! ]8 s8 l/ _+ p
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
1 p( \$ ?. t: J& \" y! D4 W3 R4 K) ^
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。% H0 d7 U) V7 L! `* w
1 ]7 Q& i6 w1 [* {. n  K% W8 S. g6 B
. ], V; C! Y+ \& }& P
方案三:MS-DOS 7.1 + Grub4DOS
$ A1 u* e" \6 a! N2 z. L- _4 P1 c8 ^$ p9 M' F
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
' y* Y, k7 ~) W- d  k7 e! V/ \$ U5 q1 ~, H+ s
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。9 r/ [+ g; j# T: M

. R( y0 h' j: {( z/ E" ?8 G3 J' n1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。! q7 {9 Y6 p" h5 {% b1 X0 ~
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
2 \! Y) I9 T+ _2 e% P3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
# r; a- h  B# `- D5 @( L) W4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。1 ]0 I$ T* c) y
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
6 }4 W" ~( u6 H6 ]9 T" `6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
  h" C! |8 `2 f8 R0 a8 }# E6 F' z
timeout 0
- |- X% [- k/ R$ X1 [% idefault 03 |: D8 r3 V* [. ~* i
fontfile /fonts.gz1 A  h8 j& r' h9 S
title 啟動 WindowsPE
, @/ x2 n4 k. K( x: F4 mfind --set-root /grubidx.txt
7 A9 t, R; _' j* D& f' u+ k, E; achainloader /ldrxpe

  S& s" i; l+ ?) S) p1 i在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
3 m3 S5 u1 \4 Q/ n& m) z/ O) M. m, }. v* T, b  w
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
: ?/ w# `+ S) c& ?& k
3 y7 j, `6 M. ]grub
$ H! ]/ q' X! b
! \' J. H+ X* Q9 y, N& {$ W這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。# k1 g7 t# o5 L. _$ K, A
4 Z' L4 U6 M# c; H
Config.sys內容:1 L# M! Z, ~3 v
[MENU]
1 V* [3 v& ^" Z: N1 K0 @0 tMENUITEM=1,XMS without CD-ROM support
  d" T* F8 J+ y  U7 t, ]% yMENUITEM=2,XMS with CD-ROM support
0 D, C4 Q4 a0 Q8 k- H  \9 h* U0 ]MENUITEM=3,XMS and EMS
: `2 I4 X7 F& _3 H$ a+ E; W  b9 BMENUITEM=4,DOS real mode(no XMS,no EMS)
! Y5 P: [5 J2 ]4 mMENUITEM=5,Windows PE  H$ |9 }2 p: ^& P( B6 z4 b3 o
MENUDEFAULT=5,30
' [- G' Y+ G. |, d# b) R/ I) S[1]
" _' ?7 |7 J0 y3 x) lDEVICE=\HIMEM.SYS /TESTMEM:OFF0 d& I) W# G( b
DEVICE=\EMM386.EXE NOEMS/ x. h5 ]/ N# B6 a- d" F
INCLUDE=PUB& U7 s: `+ U: S. y" n+ y
[2], K- j6 [1 A, p
DEVICE=\HIMEM.SYS /TESTMEM:OFF
, B) R* K8 r" ^# aDEVICE=\EMM386.EXE NOEMS
5 P0 ?* r  @) ]' X+ R& F) I) I4 NDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
8 O: p' |3 o2 z/ \/ ~7 XINCLUDE=PUB# C1 c# O3 O8 o
[3]9 D. p7 w4 t+ x
DEVICE=\HIMEM.SYS /TESTMEM:OFF( P3 }' A' ~4 P! S
DEVICE=\EMM386.EXE RAM$ G- k( p! ?0 W6 W) @
INCLUDE=PUB- T5 p1 N8 g! w
[PUB]
$ l# R  A/ a8 U/ ^DOS=HIGH,UMB  w& U# l! m: L2 p
FILES=300 M6 X: E9 H6 a6 G9 X( z1 a4 R( a
BUFFERS=20# f: B9 x( ^! v3 f
STACKS=9,256: ~% j$ A$ V" k# A
LASTDRIVE=Z, Q! h- v2 r: c4 M5 G( w+ \
[4]( j. T3 z, G% Z4 G' M
FILES=10& f% ]: Q" L; t  _$ Q8 b. Y
BUFFERS=10
& z: }5 \: c+ ?4 n& x* ~4 {& bLASTDRIVE=Z* ?' |$ A1 A9 P8 |; W
[5]; |( o* j; {, w- `9 Y& J9 [
Autoexec.bat內容:
1 s; y0 S& p1 o0 I; k) o@ECHO OFF  s9 u3 v& h, v& [
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
& F# u9 l% {0 R3 {GOTO %CONFIG%
  ?2 T+ ?+ u' o% N: I1 s8 j1 r:1$ x# Z; R( p7 V# I# _- q! A
GOTO COMMON0 p1 a& z$ s3 w% D) p1 k; z  I; \6 T
:2- L/ x" u, |% B- `: {, E/ k$ ^
LH \SHSUCDX.COM /D:SSCD001
: y( n6 d/ ^) j: Q; {0 l# @GOTO COMMON6 z$ `( K8 v6 ?& @! N/ A
:3
9 D4 X- A& h) Z" s+ P4 yGOTO COMMON
; L+ Z7 b. n! c:4/ d9 }0 E- r3 g5 J. F9 J
GOTO END# T- E' b; R" d* C% `( z6 K; \
:5
8 ^0 @9 x8 F0 E* T& w/ Z) fGRUB: f; G6 j, @" M# P/ o9 `+ O  c
:COMMON
" Z& h% z8 ]+ e' mLH \SMARTDRV.EXE /X
; f- p* ^0 b, Q; J2 ~8 b: l@ECHO Install mouse driver?. T* y( t. W+ U/ o- v& ?) u& g
\CHOICE /C:YN Yes,No /T:N,6* H/ s. P5 `) O
IF ERRORLEVEL 2 GOTO END  l6 P8 X  x3 G$ |
LH \MOUSE.COM
" \3 Q% Z+ R2 h! G5 v$ s:END

  H1 @/ E. z7 t2 s4 @7 R' W  I0 _& r% m+ e7 V9 w" D7 G; e- z& T
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
/ \8 ^, Y$ \1 m+ @  M5 _
1 J  R9 ?- f( g+ c" Y& b感謝5free和david_ge的幫助!
9 a* T% i- K) W/ ^, C+ N3 }# q) R; t/ f) K8 v  S6 P' R) Y$ r* C! E6 t
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:% v4 S! t& [) `. J/ K
4 J8 h9 ?9 z8 p% \8 }% o  J
http://bbs.wuyou.com/viewthread.php?tid=94087$ i7 z* x$ y0 L; J" s1 O
http://maotao.u.winzheng.com/
+ d6 ~! S$ |  M  K! t  p8 @0 A0 I2 k1 S% g" t* F) \1 t) t
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。2 Z! ~7 q" k1 z$ s( W  D6 }
5 i9 K5 @, l! s" h- d! K3 Z# ]
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
6 m. K4 i6 O. U; r; t# A+ b7 D- g後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
, q& ^; d/ i2 _$ z& }5 \5 r
1 R3 j" J+ |* D! Y$ H% i目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 31-8-2026 02:34 , Processed in 0.189463 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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