|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」2 J# I) C4 n$ L2 n6 k( Y/ s, E
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html5 Q, U( h0 W' F! l1 `
* F) }2 \( d5 o8 G% O" b1 O: g" `2 i
+ }, }; @/ X* l! r. }# q3 V& j
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
/ l: R; f0 m- ?: v4 c- l! S
' d& C0 e% o2 @ H% Z前緣:
# D+ I* h$ Y% k8 j2 E! ^
Z$ R/ ^) ]$ ^6 [& d7 U/ k很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
, d$ H; B; D/ l4 R/ e! K+ ^" e2 s* W: Y5 h$ d; C
目標:) \( K5 d; D" V, r
i) j7 ?7 ^* I2 h# y! o6 H8 m對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!" V4 W) `1 z0 {- v
x# v$ M: {# b; [. X- Q" o
技術背景:, G7 L: Y, B' J2 @1 M$ L3 u
* C% e2 B4 w" D; P1 V8 \$ T/ R1 H. C/ M9 e其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
) A8 ?0 I6 v+ E# v
& R: S, C6 D4 } ?0 T首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。$ R5 `" k, _. s: F# P' `( D9 z
0 o4 o* ` e7 ?0 Y" B: p2 m
因此完成一個操作系統的啟動,8 r; R% j) ?' _! y! z% V
需要兩個必須的步驟:1、MBR引導;2、OS引導。
7 N) Q& y1 w2 @- m! M5 S4 g
N- n8 C6 G" ^0 D$ e* U$ ~基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
9 Z: p+ ]+ n0 v. P- y# U9 L: y) k9 i E' k' K) C3 o
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
3 b' p% p: ^- R* N雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
y) m* [. v; Y$ v, ]5 R/ L" g% O6 S! H8 W
OS選擇:4 s; i) i7 E. z8 J* _- ^+ ~
$ H: o* A# m# D6 BDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
+ y- _5 H' v2 D* h# t, Q1 q: P
3 U+ i% M, u( F9 t, ?. f: R4 _9 y8 h2 i方案一:NT Loader + AVLDR + Avlgo
& G! R5 I& `/ `: R. F% E- S9 d* C5 j! B" u0 l
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。% B; i2 z. K3 e. |" T
' |2 G2 p- N* Z' l; q/ c工具準備:+ x4 O- g) ~, Y# y% u* z! ?5 J
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。' k; ?& {" S/ p' _4 c
. `; P& i- ~/ A* L/ O) V數據準備:
9 y, O9 w% i6 l- v# C8 H9 X
. y1 B. M/ s8 K0 n- k; u$ B0 x1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。& t3 c6 q- g! b- k3 G) [
/ Y1 a, z5 h/ J$ Z7 F: M c- M
6 E* h6 H, U+ W1 k2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。7 n1 v; u1 k! g1 |( {- g
* V: F# J1 D. l. V9 Y% Z& C2 \ T
: g3 A8 d7 A6 B( C/ o' y% ^2 q0 a8 ]! M9 O
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。5 z* x2 ]- l Z4 i
# E, Q' s7 h$ r: B6 K* [, m5 j5 b6 G4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
* F: A6 V" _- h9 f* b9 ]
W9 V. |7 d9 ?8 E {" x' k
1 r* P) `+ i) g. v5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
5 _ S6 i7 m' M0 H+ i2 U. [* [+ z9 y% ?1 C8 Q; Q* J
& g9 \: L% T( I1 Y/ Q) }% H
/ l7 d% k% {, l% o1 p開始組裝:
7 A# W6 `& W2 A4 ?
4 q* ^# B, W, H+ l0 @7 x1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:# s/ c5 B0 _0 _$ @; R
[boot loader]8 N9 Q2 Z$ X1 Z, z& h
timeout=30
. }, [( W3 ?- X4 s+ s3 xdefault=C:\avldr.xpe, P% F8 @9 q8 s$ f% i$ f
[operating systems]
8 U8 w( e* |6 Z4 k6 t+ V/ QC:\avldr.xpe="Windows PE ByaoMaotao"
0 k$ l) F0 d) t$ g9 W, GC:\avldr.bin="MS-DOS 7.1 form USB-HDD"
/ a( J8 a. j3 o( j2 T& ^1 RC:\avldr.dos="MS-DOS 7.1 from USB-FDD"
8 A( n3 t4 k8 U) a8 A% j1 [完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
. s3 E2 `5 ?, I. ~
8 v! J3 z, \# y# h4 R. S+ D這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
6 r, X# Y# D. z0 p0 Y( v: ?5 c8 s9 M* `! W. G2 z, a
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。# a% W( G. \ G3 Y
1 W% R! a0 d! A6 n2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。. K" w9 D- @' G; u; W4 B6 ~7 B
8 \; X+ m1 a R* J/ a3、把下載到的老毛桃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環境下。+ |) v7 ?' `3 [( z6 D4 B
: @$ A, w$ } c7 W' ?
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。; j: J$ G: a4 N8 W" o
1 H5 D1 A# s. ^8 h) f. D6、把前面生成的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環境下。
; }$ Y3 X1 P6 S% w; g1 D0 O
7 L+ s% D+ q 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環境下。& w0 t3 |- K: O
- `0 J, {1 A \" H5 {0 S
至此DOS/WinPE雙啟動系統維護U盤製作成功。
1 h2 ]. a* x/ ?8 m: C' o6 L7 N! V2 D- y1 C% y
方案二:NT Loader + Grub4DOS% _( A: e, I( J+ ^, F' {1 u
/ }, V' d, g4 R6 R因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。$ a' J; u7 r, @0 ], H3 B7 S) n1 X
+ m3 b; ?% `$ A$ C5 \, \ K1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。' z" j* B P1 Y& U1 r9 n
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。7 B2 d" p2 k; z
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:5 n7 f. r" @% g- F6 j' V9 n
[boot loader]
& u; S) t3 M: X2 |) Htimeout=0
8 H3 B: @( }4 Ndefault=C:\grldr
1 s2 W" P" K; v" m$ y[operating systems]
- X" \2 l, Y0 r" ?C:\grldr="Boot Menu"
3 z* t- r) W5 t; ~& E/ ]! w' }Boot.ini菜單各個項目的含義請對照方案一的說明。$ t% p; h( w0 y
1 o9 i! O9 G) ]4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。2 y1 F* F1 R5 p9 Z$ |2 N A
6 G/ O3 t/ v/ ^9 J6 K5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。6 a* {4 ^4 U y5 X& W- R3 l/ H* X
% J0 P9 g1 i7 `
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
/ w3 z* y' v& ^+ u. D6 W
1 Q3 V' v) S8 E: \( _" y) K( o# D- }7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為: p7 }( c" T7 k& Y. d2 L
timeout 30# ~- w& G2 [' X' W0 O- ~0 v+ ]' ]
default 0$ k. b! A9 w% I, q( c
splashimage /boot/splash.gz2 ?$ `3 f- m9 E) ^, |
foreground ffff003 ?1 X# `0 Y- ^$ [ G9 F O2 Q
fontfile /boot/fonts.gz
8 i; \8 v$ s0 C* B" h+ c3 ntitle 啟動 WindowsPE
8 U( c2 H; f; t/ O4 ~9 e5 Mfind --set-root /grubidx.txt1 w# Q1 `7 z2 L) x4 J2 o
chainloader /ldrxpe
5 K2 i- i/ P" ?9 z3 rtitle 啟動 MS-DOS 7.1
7 p# Z8 |9 N: G7 p& N) ?find --set-root /grubidx.txt, ?3 Y5 g- @( a
map --mem /boot/dos.ima (fd0)5 r# N+ ^$ |. r! f7 }
map --hook
* l* y$ Y" H4 ]9 v6 Schainloader (fd0)+1
1 `/ }9 C; W2 C. a& d6 prootnoverify (fd0) , W' x9 x! S) I- r! u# H$ O# ]
做完這些,U盤就可以啟動了。
* i* |( r5 q9 f; b, `" M# y$ `$ Z
) h4 A; d/ d( M1 A* c( l- }菜單項目說明:6 m+ R$ j% o# ~& n8 Z+ j3 B% T( J
# m: z8 V7 c E5 g( V! c. P
第一行設置等待30秒的等待時間;
. h8 ?7 G9 }2 g6 |8 M0 S3 j; R9 O& a( R( T
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;7 Z1 \6 M6 j1 i8 ]
|$ K# B+ p4 a! |) b
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
2 [8 r& {$ i( }/ |' _, a- X
& _; F5 [+ [; \; a, @foreground項設置啟動菜單文字顏色為亮黃色;
, c0 W4 t4 m2 W& O' M
; R- g# ?5 ~! l- h/ ffontfile項設置中文字體文件為/boot/fonts.gz
. N3 K, h1 m6 U* c3 u/ V8 i0 P2 t9 u
/ V1 y# _- A. l/ _/ T下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;* I% n; E; |2 [7 i
( l0 q3 d" T8 {) W( T, E! a2 B+ Cfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。- m+ O0 J0 V5 G* X Y* e% g' n
, d# k, U1 g- ?! E j$ Zchainloader /ldrxpe就是啟動WinPE的XPE鏡像。+ E7 i6 E( [0 N- _. |4 J" g
0 {& i- f$ s( L \! q8 I4 c2 qmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
5 e- v" O+ N! i; ~' f% s- O. o# W1 G
map --hook是讓裝入的軟盤鏡像立即加載生效。* Y# j: g |0 R: z9 {- k" q; |, F& E4 p# ]
[3 J+ v! z X3 o& W0 T# k# i
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
4 s0 d* G) O6 [- }- J, c5 H6 N# A- ]
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。7 z: |, x) X8 C
2 Z7 T$ t* z% ^; v, q# L9 ]' M: q( ?
; r& J% l0 U% R. m& s2 E方案三:MS-DOS 7.1 + Grub4DOS
% u' N; O+ f9 [1 X# O) K
8 [3 z! }5 b2 {% n7 E本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。 [* J) y1 l; `2 L! e' D) T
* Y$ i3 d9 u! C
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。. K/ V, e3 l7 |3 m7 p
4 h5 `( n- p# C( y3 o+ Z; [1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。$ W$ S5 ~3 x( H4 R" Z5 Y) ]6 ^
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
( ~- J8 d" B6 w7 ]3 {3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
/ K' e, I" T( d( x3 ^1 l- o8 A4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
" N0 ]3 z, g3 z" J% q8 C% z: ^5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
0 i. D+ K( i! U6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
* j( l: g& F+ H, D% V9 M7 ?timeout 0
3 I, L. r5 C8 K' d' b) Q: b8 Zdefault 0( [6 i$ ?( C: c) {
fontfile /fonts.gz+ K8 }( s5 h1 r8 {5 X
title 啟動 WindowsPE. c1 w5 c. P* I. L2 [5 I7 ^! a
find --set-root /grubidx.txt
$ @/ J9 v+ J$ W' S6 {chainloader /ldrxpe
/ {9 y: y9 o3 Q! b- ~在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
3 w5 v2 X2 a+ H+ {8 U
6 W g$ s- L4 z0 r5 l2 b5 f7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
. _$ v) {" O- Z8 A3 R `
! t$ I' ?( D3 q2 w3 b( {, n. Ygrub
5 U$ n& h9 w) L. [$ j& Y% h7 F R- V# t! o
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
3 ^$ j9 n3 s2 B( _
6 R( h. [# |9 P. k- G& M, O8 e( wConfig.sys內容:7 [) W) C6 u/ C( e+ U
[MENU]3 E# d, A; L4 V1 M
MENUITEM=1,XMS without CD-ROM support
$ ~3 C" I2 P, O+ ]) z+ ZMENUITEM=2,XMS with CD-ROM support% F% t3 E! {1 m5 h- C. Z
MENUITEM=3,XMS and EMS
) C5 K ?% g9 p2 AMENUITEM=4,DOS real mode(no XMS,no EMS)
0 K$ u& l! |0 u! c0 M1 \MENUITEM=5,Windows PE L7 w& I* @& j0 u" C% {; K
MENUDEFAULT=5,30
4 Z4 z" c* Z. b7 X. x[1]' r- Z$ M0 j* c$ {2 f0 r7 [# h" i
DEVICE=\HIMEM.SYS /TESTMEM:OFF- c6 D, b; r$ C5 @5 ~, A
DEVICE=\EMM386.EXE NOEMS0 ?3 f# E7 k& D4 i% a3 d* J/ N
INCLUDE=PUB! W- ~% B5 Y8 ~6 i4 Z# C. S o
[2]$ ]# `9 h* x; |/ w* Y! F
DEVICE=\HIMEM.SYS /TESTMEM:OFF9 e/ _. L }# z* B6 z4 a2 n: ?0 J' a. Y+ h0 Y
DEVICE=\EMM386.EXE NOEMS; Q9 M, V: S- _" t3 P
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001( g$ C* T6 X- o6 B
INCLUDE=PUB4 E. m" w# b" S. b5 O8 `) a% i; H
[3]) y+ S) C8 J9 O
DEVICE=\HIMEM.SYS /TESTMEM:OFF
; E7 ~: S% ]% w! B( [ sDEVICE=\EMM386.EXE RAM/ C9 Q% x s3 R& D
INCLUDE=PUB9 _$ m) d. n: k, p# _
[PUB]
( f: L$ n0 b9 [2 V4 GDOS=HIGH,UMB
3 a a; r2 |3 jFILES=30. H' i) g3 m/ A9 G, y
BUFFERS=20
) k( U( O7 j5 O! @STACKS=9,2569 n! |# l& R R9 w9 U s
LASTDRIVE=Z
1 L2 }2 u* R6 e5 Y/ L[4]
# V3 w5 ~" d* Q7 SFILES=10
4 L2 @- i% H5 t* w2 l$ KBUFFERS=10
0 R2 G3 W; \4 o$ e- C( HLASTDRIVE=Z
% h, P/ s/ \9 N5 G/ \[5]
7 \8 G* J2 F5 i* xAutoexec.bat內容:
9 f0 u0 J0 ?7 ?1 `@ECHO OFF$ r/ Z5 O! o0 ~3 H& O
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
t+ r, M: q% Q5 ]GOTO %CONFIG%9 H6 i* F6 S: Y- W* x7 a
:1
}6 k* W% c' a- B: HGOTO COMMON: q7 h) V: X# ~# c7 z0 o2 V3 I
:2
/ l* h% g8 I3 J, k1 J3 ELH \SHSUCDX.COM /D:SSCD0015 V8 X `1 d- n) C8 t
GOTO COMMON7 \2 u C, A% w) m8 G1 L8 Q h
:3- j$ P$ e# h( D+ M# A$ j
GOTO COMMON" {; q- p, W7 @& V" @# y# A8 o
:43 v, o& H$ s, A& ]) s# V- P- X% f
GOTO END
+ g( T/ N5 X; v; e1 s8 K8 _0 `:5
* t$ B( s$ e# J0 q: uGRUB5 S9 k. _0 U. [
:COMMON2 r0 r/ R; D9 T1 \7 n8 z
LH \SMARTDRV.EXE /X
2 k. u% B0 W, v$ Q$ |7 V( ?: q7 B@ECHO Install mouse driver?; r% y" B4 t* H2 F* x9 Z
\CHOICE /C:YN Yes,No /T:N,6
* X; N" g$ E/ t9 b0 P' n ^IF ERRORLEVEL 2 GOTO END
0 v0 x1 {" i4 U) \) `# ]LH \MOUSE.COM
9 j* a. K8 [( g+ W- P:END " P5 K& y; ^+ A; X# F1 S: u& ^
, ^2 t i" z8 q" y按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。* X j% {# F* G' u+ u0 p
6 [9 X7 M W; W! T感謝5free和david_ge的幫助!
& L+ I+ I/ V8 c0 Z. F, Y7 Y/ k2 S5 _) `- Y( t8 ?& a0 ~/ p
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:. y; j* m9 H b6 Z/ Q
. w* R/ M) F; \http://bbs.wuyou.com/viewthread.php?tid=94087% Y( h/ |( ]# } n
http://maotao.u.winzheng.com/
2 W# b% W1 d. L6 W* @
2 h* ^% ]5 u6 \* L7 Y9 q% c0 x附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。 D9 ^2 T) K& z/ @* W# M
' O9 W o h- H+ {! |4 y. N$ t
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
1 E" D3 Y; \* M8 q/ g後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。; _+ u% _7 M9 i+ R+ t
0 n2 {- j" [$ Y, I
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|