|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」2 h* N' L5 ?' {$ T7 q' D
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
9 U/ P- _% A# R/ H* ?
* R- x$ J1 y4 k8 B- g) n
# _0 V( C, V+ y沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。% g5 U& ?/ W3 Z* r
; B7 b7 `! a6 ]( W8 D# y
前緣:" l! b& R7 a1 s& m: z. s
" k/ O8 s, _; v) r4 ~2 s0 k* |5 Z
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
9 s3 d/ Y, `( B, |5 S# k! d# U( w6 M" ?. u' x% l% w6 K0 d
目標:+ q$ A5 q/ N4 F4 Q% k) [; q+ \
) S5 D9 i: I! T q. G- u7 Z9 R1 v" H
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
" Q% I% ]* f) r/ J+ {9 ]
( c- O2 x+ E+ B" a技術背景:
4 d; [ l& u; R2 }# _" j* Z9 w* z: W" m2 H
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。0 { O& f. F( B2 N0 [* h
) B }5 h' Q0 e5 Z0 V$ B首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
- G9 |" p0 Q: Y# Z6 f. S; r
4 F' K& }, H% |1 S0 j& G$ R因此完成一個操作系統的啟動,0 M, W; }( V3 U, l- i# j# P
需要兩個必須的步驟:1、MBR引導;2、OS引導。
( {3 [1 D6 P8 F$ U/ a; Z9 ~" ^& Q5 o. o+ B1 @. o0 |# D) h: a2 A
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。: W9 o( q$ D8 U, n
' V; o: W6 [8 a4 S" f
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。. V2 a8 I" G4 \+ ?% R% K4 o7 `& w
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
8 J0 @( S6 S6 o# ?& V/ G1 H2 ^% w/ J4 t! U; Q& ~) x
OS選擇:
5 \: K4 ] g, l- S
0 p& c- F! z$ h& XDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
2 ^2 q# ^; q* p* L5 {: N, P8 O6 t# s! `1 ^1 s3 u
方案一:NT Loader + AVLDR + Avlgo
* t, u: ?! E$ X5 p2 Q, p/ G8 J% [8 ^: o' {8 h8 S& p
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。9 e$ m. a9 f. ~! f" _
& ]0 N% a, r. C4 T$ r8 ^2 h- N; K9 y
工具準備:
( o8 d; l" o( i8 L% kPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
" ^7 g1 O9 h6 N9 Z# I
* x4 Q2 `6 l/ v4 N7 [, n- E數據準備:
5 U. U6 e" p7 G( A! q+ Y, {2 n! Z, `6 L1 F _' D; D: ]
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
+ ~1 }) n: q; X- Z# ?& z7 Y
' u2 n6 G% \% a5 E% }8 ~- u; Z% l0 ^+ S2 M- Q4 ^' E% L
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。5 h0 i; Q" @+ t `; O0 x' d
+ Y' G9 @9 u& w- L- B
8 |% l- v+ {; _& P7 u0 {
9 V/ v ?" M k. J: R
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
+ Y, x* R& H) O1 L, A/ d+ J9 c4 i/ Y" X2 B/ @
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。( h; ^0 {( W2 x% f8 F0 x
3 d$ S$ f" m) r: U+ z
& J$ h7 I$ \0 u t9 e5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
9 P* L( n% P, T- |( f" m+ e. W' y! {3 F" v7 d
, B' _3 p4 e* X, p6 E6 G2 D& b9 p6 D% j
開始組裝:
7 ]; E* p3 k- d' A! G3 I) N0 }8 L5 S
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
1 A. } Y& {6 t- U' K% w, p/ M" K; }[boot loader], ]0 Z8 p( p3 t( O) A- P0 q
timeout=30
6 V$ l+ w* N7 B+ bdefault=C:\avldr.xpe
8 `4 Q0 @' P, ?5 a6 h1 j[operating systems]
1 \1 Z9 B, b8 E( y% {C:\avldr.xpe="Windows PE ByaoMaotao"
6 a; y( |0 L- v; T) C/ s. uC:\avldr.bin="MS-DOS 7.1 form USB-HDD"3 K8 h/ t: K1 T
C:\avldr.dos="MS-DOS 7.1 from USB-FDD" ; L2 o# a' f" q$ f
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
9 F4 R/ t, i+ Q: g- `6 w6 n1 n5 F9 X2 T3 K" Q
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
1 Z `7 f; [! d- f( W- v% V; A. m& {6 v# u
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
; Y/ o5 G) {' G2 M9 Q1 g* n
! e+ |1 O7 | f$ V: t2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
; _: A3 ~/ x# [; \1 A
& J! t& h% L2 G4 l4 ~# n* W3、把下載到的老毛桃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環境下。/ D& ~+ P3 R3 G
" C/ P5 ~8 ?% I {4 K+ ~9 V$ O7 a* {
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
1 [/ L8 j- S1 C5 G* T6 ?
# v; M' l2 h; v6 q& T" v6、把前面生成的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環境下。+ X, d$ o( x- t; m5 J+ I
6 A/ W: o1 M$ g2 f6 Z6 S7、把前面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環境下。
% i, n- L- v! W
$ G4 N& e; r6 _1 T' I至此DOS/WinPE雙啟動系統維護U盤製作成功。% ?% n$ q( F5 J8 _- c( Q
. I& t' A5 X/ G6 D' T8 p, G
方案二:NT Loader + Grub4DOS5 I: p3 @6 O! R; O) w
6 x8 g3 r/ @6 {) [
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
/ ~) C- K: a+ F9 r$ k- O$ u
! S! s9 A E2 T* |* D) Z) `# ^1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
: K# e* y: E2 E% o' Z8 q& F4 u3 @5 C2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
/ v1 ~; S) e: O6 l& h. O* n3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
/ H( P5 [ G5 y. |9 \[boot loader]) c: f' g7 t' `4 J6 U7 c3 b
timeout=09 X4 Y3 B) S( S w# {
default=C:\grldr
2 A3 Z# s1 c# X' t[operating systems]/ J" N4 s, ?/ n+ U1 O- E. a
C:\grldr="Boot Menu"
' ^: b m8 r9 F7 l$ C) e& d4 lBoot.ini菜單各個項目的含義請對照方案一的說明。. z" @' e, g: t& D! j' b$ s
6 d7 I) I0 E! k& k9 K/ S7 T
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。8 P/ i6 J0 k& C) t4 A
6 c2 ~1 q: i2 D4 Y/ f5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。* a/ {4 A% J, L# d! \
K* A, O+ v6 r" g% F7 v6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
- B. w+ r. \/ X4 f+ j
/ s: i1 H8 ~* `7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
: Z! t" a$ V+ I3 Wtimeout 30) k- [5 L. S. ]5 S& z
default 0+ k: h/ F* }- X5 O+ C3 i, o
splashimage /boot/splash.gz8 N$ Y* N. ?5 y0 h4 ?, F# L4 C
foreground ffff00
0 F5 u2 A5 ]2 O9 c4 [; G. ]fontfile /boot/fonts.gz; [# m; u+ r4 H5 N5 n) p# S
title 啟動 WindowsPE
+ }& c; \& _- a5 e- C0 dfind --set-root /grubidx.txt
2 M: W, U2 X+ T5 e1 u! P9 achainloader /ldrxpe
, `2 k1 e }+ {* |title 啟動 MS-DOS 7.1+ S* s7 B( x$ v
find --set-root /grubidx.txt- y/ k% |: |- u3 v
map --mem /boot/dos.ima (fd0)
$ i+ r- c, |/ k+ f5 xmap --hook
' X6 @- Y s$ L! wchainloader (fd0)+1
2 D6 e6 Y3 @; o5 z& e. K: @rootnoverify (fd0)
% @7 G% O' A3 M# n4 E做完這些,U盤就可以啟動了。
- g) A. }5 e# Y0 u. S, X$ H! X
& r; C3 ^2 `6 J' h菜單項目說明:
: Z' v4 k; y# m$ W4 ~$ c. B/ i0 t, B: {/ t+ l
第一行設置等待30秒的等待時間;
4 V7 J7 |. f" ]7 F7 Q1 l/ g* O# {$ k- n7 J3 ?" U% v+ n
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;! E) ?! Z8 [1 z; H: f
2 R# |9 E2 s: f) g( H
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
9 p& W R6 V6 u6 Q) I1 Z# \+ f* V$ P5 {) O
foreground項設置啟動菜單文字顏色為亮黃色;1 p. R* ?1 V) D/ F# Z) {) R( [9 v
% m- U/ B! d+ _, j- S4 L6 z2 V4 Mfontfile項設置中文字體文件為/boot/fonts.gz4 J5 k2 o: m( F8 x# I( \! o
. z- s+ ?/ O, h# @8 u& e( `" J' @3 [: R
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;9 ]$ W8 k) ~6 {
: S# e V a2 \2 s5 _find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
# l8 W& w' f3 x. x- h5 l* j ]7 o; Z, Y8 A8 y* b7 p* r
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
2 A. Z& _$ h& }
- X7 t/ N5 R! c' H" emap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
" R3 ?" A) T6 O$ s4 n( n% b: r
2 v/ q4 u' K3 [/ m. jmap --hook是讓裝入的軟盤鏡像立即加載生效。- ^% ?- ?. i- ^# f/ o$ k. `# c* U
2 L8 s' j& Y, X, j7 _) q; |: drootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
% [, w! q5 y3 t" j. q- F+ ]& B. Z% k. ]+ s* @2 ^. [6 B( d5 b& N9 m
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
! D. ~+ n7 e9 Y& M0 ~6 h
8 P1 E" d6 c; ]% O$ X4 t) E% {2 P1 O+ x$ z
方案三:MS-DOS 7.1 + Grub4DOS0 D0 V8 X* k5 O+ r2 e
0 H7 [/ I, Y p5 d2 |
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。% A8 F1 w b8 A) k
+ Z8 w: e7 o3 q4 A+ L( P
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
2 U! K" U; E. g9 ~
& B9 Y& g6 T C8 _: ^ M. f0 u' d$ i1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
1 j. i4 n% C% O0 x2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
' {/ B/ i0 `7 u+ O3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
1 d& ?/ z: ?% B V, I; E2 e/ M4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。0 T# J' O- S' \; s/ \0 N4 w4 ?0 W
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
& T0 F- U: X' Z6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:3 [" ?, [. d9 L
timeout 0
- S) J7 a% v" O7 A# xdefault 0: a5 C$ Q+ p2 g S O! f
fontfile /fonts.gz+ ~2 K6 U& B* T! C5 b
title 啟動 WindowsPE8 M& U8 w! j. [9 Y# e
find --set-root /grubidx.txt! p: }' O! ?2 b. @/ o
chainloader /ldrxpe 9 ~* X+ `% A8 g
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。$ ` r/ r9 C% J. @* L' y# g. S3 h
* c4 f y1 S, |7 e* a U8 _7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:7 Y" d. K- k+ w2 e5 N2 T( ^
" e) I2 s# U# w/ f# _grub
6 n. }0 Q4 X3 ^0 K- R d! Z4 N
$ l7 d# u3 Z# `& h: S: T1 a這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。9 C+ U- `. S: k, _( E
& h3 t) f4 Y0 s' L! T% R1 R$ pConfig.sys內容: r8 Y) D) c5 ~0 d
[MENU]1 }( M+ y9 f, V5 e2 g6 \* W
MENUITEM=1,XMS without CD-ROM support! {2 p$ p0 f2 \4 G! ?+ e6 l0 e
MENUITEM=2,XMS with CD-ROM support
+ }1 h) O; O. I. l* r! w# UMENUITEM=3,XMS and EMS7 j4 X4 ?8 c2 t( q# g
MENUITEM=4,DOS real mode(no XMS,no EMS)- @" w: M6 p1 n, z% f
MENUITEM=5,Windows PE' Y9 ]1 P" U& Z0 G
MENUDEFAULT=5,30
5 m4 h9 X8 s! [* H* Z2 M[1]
, e' _( f$ M$ BDEVICE=\HIMEM.SYS /TESTMEM:OFF6 m: [5 ^, m. a) N) u5 i' x
DEVICE=\EMM386.EXE NOEMS/ u% i1 y) S* @7 ]3 @+ d
INCLUDE=PUB
; A8 ~, N# n! G' |( k[2]
$ E6 _$ B, R) S6 Z) i1 EDEVICE=\HIMEM.SYS /TESTMEM:OFF
8 Y% {7 E; U/ {DEVICE=\EMM386.EXE NOEMS
9 r; U4 G: W9 {: `2 q+ K' @5 G9 ]DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001; w# [0 ]- z- ]3 p% D5 ^$ G
INCLUDE=PUB" L/ }$ c- F* o/ p6 ~
[3]
: Z1 J+ [' X( L) TDEVICE=\HIMEM.SYS /TESTMEM:OFF
c0 k' S% G7 u: y% hDEVICE=\EMM386.EXE RAM& v3 F; y1 N; H0 a, k
INCLUDE=PUB
' g" i; a1 [* x9 F- s: A5 t[PUB]5 S# g/ u; x, V$ n, l
DOS=HIGH,UMB: [9 J0 A- L- _2 e( A4 `# s' y
FILES=30
* q3 p) Y! q, a: }2 kBUFFERS=20( w+ `' ~ ]9 e' f# d7 @
STACKS=9,256
3 Z7 a* b6 H& i9 M; yLASTDRIVE=Z
* Z" n- `( Y9 o* I+ O/ A[4]
# @0 A7 d* ~; s2 t& u* X) r; A. ^- ZFILES=10* |; C& X: {/ X
BUFFERS=10) G: ]. z/ R; N0 u
LASTDRIVE=Z: p; `1 ~$ z0 v* x: h
[5]
" A0 Y6 J/ N8 WAutoexec.bat內容:$ W% ^) N# K2 d! Y
@ECHO OFF
: P6 X' L. c/ e# k7 z- g, H+ \PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM: n: U% ^+ F* O2 L9 X3 z( Z: h
GOTO %CONFIG%/ G$ g3 x! l8 r! [; W
:12 t- i# a- }5 A y' U
GOTO COMMON
; I0 s" \6 X/ n- b" r:2: H3 G" m7 p5 b& Q! l2 q
LH \SHSUCDX.COM /D:SSCD001" T9 e, X% t( {' J: u
GOTO COMMON9 A# M0 j) l2 N$ C
:3
) u. K9 c0 d. W- j: E. p' nGOTO COMMON+ X/ F+ e" |) _1 V9 a8 E& N
:4% d/ M+ C6 U7 f1 l8 q) g, r" K
GOTO END
' ~: W0 N% r2 Q2 e' L& q8 A' N:5+ S& p) ~4 V* Y
GRUB7 G& w( ^5 J' ^0 r, h9 _+ T9 W
:COMMON
2 m) D2 O1 C( [ T* V% PLH \SMARTDRV.EXE /X: B/ D$ H! b3 u. W. D
@ECHO Install mouse driver?2 N* S2 ]1 z* A! v) S, y# V
\CHOICE /C:YN Yes,No /T:N,6
- C* L# W% r: }7 B5 B) kIF ERRORLEVEL 2 GOTO END) e: e3 ~8 y3 R
LH \MOUSE.COM% J$ Y# m) [/ Y+ |, P/ R- V
:END
" r1 _" B# A. ^4 x( L! c
, M+ f( S1 s( g按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。( {. W6 S g' ?5 k. @
' u* `" q/ T P
感謝5free和david_ge的幫助!
6 @9 }7 j& L% E+ b" I. s0 W, Y" z2 I8 \! h2 w8 C& n7 V/ k/ _
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:* ]& l. q% I! \3 K0 w* k* w
; J1 j$ c. ~3 Hhttp://bbs.wuyou.com/viewthread.php?tid=94087" H; Y: K6 U" V
http://maotao.u.winzheng.com/( J! |1 W) i/ K% S& P5 h+ x8 K' y
! i* T8 z8 ~. p2 F" ~
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。: r. b# p( W3 ], G
: c9 B N6 X- Z( t( O
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
: ?# {/ w4 m8 g5 d& Z後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
5 {* I& m: X4 I* X: w1 [
, P8 q/ d6 e3 m, F目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|