|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」
7 G9 G' G. S! @本文原址:http://bbs.zuluck.com/thread-1902-1-1.html; q, ]8 |/ y, {0 X4 t6 T: B* V
+ X: G! Z; j9 A+ y1 ^& S" Q
* c2 i9 S% E0 b# I! |9 j5 G
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。9 }( k) o9 e6 V
9 I% a: E4 j7 N, |$ U/ J2 }前緣:
, n6 w9 i; r) r; n
7 ~/ l/ y- o) [8 V7 n$ y k很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
$ S0 j4 w$ E: f6 s- A. A* c2 @' `# z+ C7 p" G4 k u R' G% R; R
目標:' Y# s2 _8 L- L% w& {% k" n% _
* Y, y+ r- u% [9 z
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
3 d" v8 f+ T/ U+ S/ B7 c u4 g6 D8 C
- s/ r3 i5 ~" j3 o1 }* C/ A技術背景:/ L/ Q7 Z1 T4 d% q& x" i
$ I: v) S9 E2 \1 j$ U' m4 G
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
. p- A$ ?+ I. A* Q5 }4 G) g" g3 [- p. w* p
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。" w; r5 H2 }: }! p
5 z1 N+ }1 ~9 ]. t1 e6 z- y- g因此完成一個操作系統的啟動, b* A/ d1 l8 g/ \2 J8 v/ |
需要兩個必須的步驟:1、MBR引導;2、OS引導。" n$ c3 f2 x- q9 _9 t4 _
1 r( C, [8 K; [
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
+ P$ J Z9 `2 Y G' V; X" D" z) y# f6 y! I. x
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
e- ^& w- Q- P. J' S1 W2 q雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。4 @! H! q$ |* b. l. r2 d+ @ Y
; `0 j( N B" B1 BOS選擇:
, C H" x5 k) ]* i; ~3 d1 L7 p U' \" N% L9 {6 t# H
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
1 z3 z- t# V; H5 a3 U4 u+ U# p
4 @# J. Z/ y" h2 i" K" u- Q方案一:NT Loader + AVLDR + Avlgo9 |9 a: k9 r. I5 h
3 L9 m7 `( t. x& |+ t
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。- Q) t& V% o; a1 U
1 N$ b4 a, i0 J! K$ N9 S工具準備:* n+ {; L! ~ }7 p! A8 m! [
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
$ B) \6 y/ W) h- u! h) a( D
8 o8 D5 z' R7 q. G0 s7 N數據準備:' m2 X6 U; ~5 E' U6 k5 `
% s; V K9 A' f# g' w
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。1 m# p1 p# P. p+ m% C6 @
+ j% H( @) T2 U$ x0 q# u$ ?% u
, p5 g' A) F5 ?/ q" G* B& V- Y
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。2 x+ y1 n0 G0 f* `. W1 {
; m4 o9 k& w# D# q3 M& C3 c I& S6 ]/ s4 p6 o
+ v+ ?: B0 T* i- S
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。7 w$ U9 ~; ^. d- R& e8 p/ U' d0 w
& j6 U- k* `1 O q( ^' b( ^' O
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。; i6 W7 u# y" M' f' b1 {- I
: j( |+ d+ j8 Y2 p
0 Z9 i6 ]" E G z" h3 f# k3 V' ]5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
- |: s5 m: j9 S: r% _
; F' q% o# ?+ g# c3 B
: _# f+ s% C* y. e
9 \9 T8 P) {/ Y) j6 {開始組裝:
7 I: W. n; g# W2 a2 t. d7 K! g/ E/ j) [4 ^3 ~7 r$ ~
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:; o3 A% r; S2 d) _5 Y/ N* g3 w9 k
[boot loader]5 B0 J4 X& {3 G% N6 Y# c
timeout=30
& ?; S" e; r* e+ M. Qdefault=C:\avldr.xpe
2 Q5 s6 y+ |' Y: M[operating systems]
7 a3 K4 F$ I0 @6 d! gC:\avldr.xpe="Windows PE ByaoMaotao"( V# n) {! l" Z- ?* z
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
6 D7 S! d' h5 E1 F, SC:\avldr.dos="MS-DOS 7.1 from USB-FDD"
6 t, B# S' h5 z/ s完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
2 {9 g; S0 @. P" u
. \+ D+ e; Z, F) C! e Z! l這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
9 o3 N+ H: B. Z3 T$ O/ [6 ]2 @9 Z4 R( K. l
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。; `5 @4 M/ z+ u( U3 d2 ^
. ]4 s+ i* k5 J! I3 d
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
9 E) Z1 T, T% I1 p0 X" }6 P A7 E% J" [% g2 u
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環境下。0 B6 f* z- p* P' y9 J. j3 O( r
) O- s& } f6 `: A& B, s+ d4 P' }- s5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
7 l* x) r- A' T0 C/ g `% k5 {2 ?. E3 c. @7 G" P* \8 p/ Z D
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環境下。9 ?- }! O% I. |6 ~
9 V2 C7 {9 j; K; L, v7 P7、把前面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環境下。
7 H" C, B$ I ?4 o4 @" H3 ^$ h- ^; _7 Y9 i" m0 \& ?! |
至此DOS/WinPE雙啟動系統維護U盤製作成功。
! D6 w; X3 V$ o1 ]$ m, {8 H$ S# O0 p' ?3 a: W' D5 @- s% {( [4 A
方案二:NT Loader + Grub4DOS
2 F$ d# D5 j# ^8 Q# h4 W
( E' R R1 x7 Z, f; P因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
: V6 O+ [0 s% W2 I( P+ W
4 \9 i% V0 \# o" P# c1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。7 l. a3 F2 h+ c1 V+ ~$ Q6 C9 }+ x: D
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。- { p6 q5 Y& W" I" z" |8 H4 Y
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
( L7 b6 p5 z: r+ {7 c[boot loader]
. u# a. I. _4 m$ J' _/ gtimeout=0
5 u O) @" v0 ~default=C:\grldr
9 ?) ?/ x: z! W$ J% w[operating systems]' V. ^9 _1 [+ K9 K
C:\grldr="Boot Menu" `" s# E4 D0 P7 |1 M2 ~6 \
Boot.ini菜單各個項目的含義請對照方案一的說明。
2 @7 x6 U* {! J* [0 G/ Y8 h! m- D6 {1 f2 H g
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。3 e0 }! _9 [( {& L. u
, H* @5 S4 @1 O6 _5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。) P8 `; C5 d4 f) O) \8 v& O
. B9 {2 I* Z; s: L- r$ ~9 Y8 t6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。9 g# f# S4 U! ~
V! }& l' P$ Q8 X. r) b5 a
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
* F( A/ j0 Y; h3 _. X+ N$ ?0 I" k9 atimeout 30
8 r" J2 Q) y7 u0 Ddefault 0
" t$ N, L! S8 |1 E% R) zsplashimage /boot/splash.gz
% a8 S8 o, C: R6 ]) c8 h/ q# vforeground ffff00
& z& ~, g& s0 H3 |! Mfontfile /boot/fonts.gz
1 X c1 Q/ H M7 K \title 啟動 WindowsPE& d8 N4 b3 K- c+ Y/ @2 o4 c
find --set-root /grubidx.txt& ^9 \$ t9 O2 R) z/ r
chainloader /ldrxpe0 p, C; R: Y1 n# m
title 啟動 MS-DOS 7.1
) }; f" @/ C3 ?find --set-root /grubidx.txt3 h/ b5 d' Y1 T% f+ M/ M
map --mem /boot/dos.ima (fd0)
8 W. T; Y7 q5 b& h B8 S0 ?3 Omap --hook1 T q3 I& R9 W+ J
chainloader (fd0)+19 B0 W% c8 r; y. N' C) m4 _6 V$ j8 K
rootnoverify (fd0) ' E4 I: c+ ~+ Y( E
做完這些,U盤就可以啟動了。& A; H8 u7 e2 @; u1 q; M$ U
3 e, \5 C9 m, ]6 t菜單項目說明:
/ J9 m5 O% Y! D3 a+ H% r3 Q5 c) `
第一行設置等待30秒的等待時間;
; Y1 G' G. K7 ~4 u5 [ p \5 T; `2 R
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
9 h0 S1 w2 m+ R7 l; h9 y
3 z4 C5 G& H. T" V! Vsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
4 i. r' M3 M" p# i3 Q y$ P
& B+ k0 j. Y. G1 @foreground項設置啟動菜單文字顏色為亮黃色;
5 l4 x! o+ M+ A; {# J
7 ]7 N3 [# e- q5 t& g' dfontfile項設置中文字體文件為/boot/fonts.gz; E6 f B$ P4 E' O. W
9 ^/ k. H3 ]% I; k! \下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
& P0 L c. U, u f4 N2 e
! ~% x6 {- s9 M9 f$ v m( h* |find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
5 P6 m! w0 V5 T% t# _% {" }
" ^1 u x. m1 p, O$ t- g0 ~( Gchainloader /ldrxpe就是啟動WinPE的XPE鏡像。
, |5 j3 C( P7 J- D& D( c& J% D/ g" U# I
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.( l7 y: d! t! U3 s, ^5 c
, }( X- u! A% W1 Amap --hook是讓裝入的軟盤鏡像立即加載生效。
2 s) r( d/ y2 S' R& R: y4 d" N7 I% M+ i. `9 l
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
$ @" o6 Z7 M$ _+ b
. T) B; N2 t3 y/ s- V本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
s$ g7 _, @6 E" p* f4 ~0 [/ B) S
% t5 S8 g) o0 E8 x$ g, Z3 m5 L- E
0 e+ ~: }8 @! m2 m9 z3 V方案三:MS-DOS 7.1 + Grub4DOS
( z$ h' d6 f) J; |7 ?% U0 v3 r; P3 a% Q
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
4 T* H" z* }2 c8 x( {9 Z
T+ r x3 f M3 K4 ?: m' F: G本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。, M! n+ h6 r u
; y" l; }- v0 x9 I. ]! |1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
8 ~/ X6 S$ }7 D& H9 K2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
. [0 |% D! N# }( Z$ z b3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
3 s: W$ j) n9 R( S- B3 B+ ]4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。9 U& _$ z; }0 Z( r; E c) P
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
4 s' l$ B t* V! L+ f, U6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
3 T& D" U1 b! {8 \+ c$ c2 I* b$ z9 e2 otimeout 0
& P5 y# z6 z( p: V7 B" W udefault 0- s; f$ a5 J9 B0 v; Q$ F7 v* }% e+ Q
fontfile /fonts.gz
0 Z# Q( e% Q$ j9 ftitle 啟動 WindowsPE
$ F; j# Z: G, L3 ~find --set-root /grubidx.txt' ^$ Y+ H/ s6 ?/ C
chainloader /ldrxpe 3 ^* X1 i% v7 V4 s `
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
( t6 h/ w: g$ D$ Z' x! `1 T+ u+ k/ v+ A
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:- C9 R$ H- ?: B+ U2 `$ r
8 f6 b" T' `2 H( V" Q
grub
$ C0 e" a2 f8 u9 Q! Y5 e
1 ?' B8 g6 A( X3 R( s這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
: ]- U* g# x+ j; E; A
% X/ w9 h1 E+ Q& T$ zConfig.sys內容:
4 h# J# b4 z! F8 k" o[MENU]
2 c( i/ g* E& c# d# a) k, o' KMENUITEM=1,XMS without CD-ROM support
4 P: y# h0 [/ ?6 B2 i1 [( \MENUITEM=2,XMS with CD-ROM support2 E4 N: z" h9 c6 j
MENUITEM=3,XMS and EMS
# U+ ]3 D0 R% z% _& b- ^" |MENUITEM=4,DOS real mode(no XMS,no EMS)
- l8 T3 F* {" N/ W/ bMENUITEM=5,Windows PE! f$ `5 r2 e. V+ j( e9 z8 ^
MENUDEFAULT=5,30
- L) k! }# S0 {[1]
+ _* v+ U8 l3 H3 w5 ~5 SDEVICE=\HIMEM.SYS /TESTMEM:OFF
h! m5 {7 i- XDEVICE=\EMM386.EXE NOEMS1 o6 U" ]3 ?( Z4 V" X: e
INCLUDE=PUB. m* S/ r5 f) ]4 e- j+ M
[2]: X: u7 c6 P- b, ?- W
DEVICE=\HIMEM.SYS /TESTMEM:OFF
" X1 q% k' U) T: g0 u; xDEVICE=\EMM386.EXE NOEMS6 M% s9 N6 E' N. I
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
( Q9 I, v# B! A% c8 z5 ~INCLUDE=PUB
- M/ j) ^0 H9 N; N2 u$ b[3]
* n6 P e6 H; IDEVICE=\HIMEM.SYS /TESTMEM:OFF
# B: ?# D5 U/ i3 m3 S( kDEVICE=\EMM386.EXE RAM
$ Y: i6 I7 E% \6 `3 u- zINCLUDE=PUB" e4 `( d7 E0 Z' q8 L- F- G
[PUB]
8 p& w/ [0 t& C# s2 qDOS=HIGH,UMB. T) m0 P. N# W+ x9 J$ O
FILES=30
: R' \. L. N) J& t5 T/ UBUFFERS=20
7 y; z0 T6 b: ?; H" P( i$ lSTACKS=9,256* X1 d( g# v8 J, s4 j, E
LASTDRIVE=Z! M5 h2 ~2 f" R6 u
[4]
' v; C- k" K: x# ?) _7 B# i% nFILES=106 `1 g3 ^& y) K
BUFFERS=10
" ]; h3 F: B) d6 I& j+ |0 @LASTDRIVE=Z
* I% ^3 K; E! b; ^; x+ S5 d[5]2 M5 }( o, }; j- \
Autoexec.bat內容:
, g$ ^1 w' \3 ]0 M0 }; @@ECHO OFF F: w# z% i0 n4 b I0 \1 D
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
8 A. q' g3 }# D0 l8 g. e1 ^7 V2 lGOTO %CONFIG%
: U1 R8 a, }9 a4 s; s8 H:1
! G8 J- ^, q7 R& RGOTO COMMON
1 [+ y# O# w7 U9 e* ^:2
: R/ _2 H. X- k Z+ |) t$ L; mLH \SHSUCDX.COM /D:SSCD001
; ^! Z2 ]9 H+ ?& VGOTO COMMON
5 |' P4 `! \/ p9 K7 k9 j6 K) e:39 C! j1 y+ \5 b5 O* D/ A4 g
GOTO COMMON
6 `" P7 |+ [7 d. v0 Y9 ^ }0 f/ Y7 P:4/ v6 Y& {4 O3 Q' M6 B3 {& i
GOTO END* w# e! M9 d5 i, `2 D) e) i8 G- o
:59 t* O5 w8 v" G" Q9 s0 c
GRUB+ a. @. ~0 S2 U- h
:COMMON8 ?3 V6 S, ^+ l. ~
LH \SMARTDRV.EXE /X; `9 b6 X/ r2 r
@ECHO Install mouse driver?
/ O& |4 D2 v' t) \( N5 l\CHOICE /C:YN Yes,No /T:N,6) K+ Z% x2 \' z
IF ERRORLEVEL 2 GOTO END" h) V. I: X/ n% ]
LH \MOUSE.COM
3 U/ i" \0 b' t O2 U3 e:END
5 ~) v" o2 p5 W$ V
, D$ S; {) t0 s) Y1 V& J/ c& @按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。" R9 g7 l! [" F; V
) s [; n1 h. m* e! d q
感謝5free和david_ge的幫助!
: c$ |% u1 D6 C U+ m( [
3 o! C, q- N3 d; A4 h: M本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
" o( q/ M) z+ [1 i9 l" d* j6 ~; `, b* M4 }5 Z6 h. t
http://bbs.wuyou.com/viewthread.php?tid=94087, Y1 O2 O' }) F, i. g+ y
http://maotao.u.winzheng.com/ q8 h' Z3 D6 x; g
7 g8 s6 d- X& c9 T
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
8 U. l8 Q2 H9 K) e; U
0 X5 w% p; ?' ?9 F最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。: S( C: Y6 f1 Q7 {& ]
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。7 t1 h9 O0 b0 s5 h
+ L. X4 ]: K6 Y: ^
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|