|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」7 [! l0 }; o9 j2 ]. U
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html. U3 p7 ^; E' F; }5 c1 A
; _$ L* e- V( s. Q9 x
% D' _$ }, s- E j' y9 e/ u
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
, D. J# n) D) K. J( u$ U! l
: I* ~0 p O, \# K3 S, s) M$ Y. X3 P前緣:
/ x4 Y, f; N' L
. d# a) U3 K4 @很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
6 x) R! _0 b0 M) Z5 s* q- K. x; S1 B; x( c' m; f3 ]
目標:
3 q% B+ F1 _( A) m' F# J# i1 s; ]/ z5 O3 x
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
/ D. l4 Z; e+ z8 ~5 u- }
/ ~0 F7 }. [* S3 X技術背景:7 }8 V1 o6 \2 j- N* I* @* {' p' l
: @1 b, Y1 A; d* n) M3 C" V9 i c其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。4 Y7 e2 O/ ~/ |$ Q' v
- Y3 r* {0 {8 l0 G0 R4 C+ O% ?
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
, |# t& x+ s5 Z0 B
$ `. T5 S) }* {! `因此完成一個操作系統的啟動,
1 U' A, P+ `: b8 ]* C需要兩個必須的步驟:1、MBR引導;2、OS引導。/ C! E6 |2 | b5 N6 }
6 w9 P, w: c7 j& B: [+ U, P9 Z3 E; J基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。/ k+ o5 A" q5 S( v
& g" g+ I8 C) p對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。% v7 o1 Z6 B# s* [3 e! B
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。- g9 D; ?; _3 P7 U8 _+ }
; U. T; p3 K; Z& a6 M( L
OS選擇:
" {# q- V1 ]( [& P j' u x
. M! T O/ F, z2 j2 w$ c& BDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。2 z" d+ ^5 s# T( S
1 U" z3 q2 }: W: U- s: `6 C
方案一:NT Loader + AVLDR + Avlgo* i' f, g4 W9 |, [- n5 L
5 X2 j: L! K1 ?( c# ^2 {MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。6 I9 y0 m! J& W/ b- Z
% \( x( ]0 Q$ D2 N5 g+ v
工具準備:& N; w0 Y5 ~& ?! i7 {! L
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
+ M: {/ G D J3 l% W6 L
$ n1 g# o0 ]" x$ z; w( a數據準備:: A) F- S+ K& o
) n9 b% S8 f8 ^: \! ^$ i1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。# o% l& W( \/ R8 K
! g% t, @1 Q# Y9 {& ~, B# b2 p
}; y6 a, Q- s. ]2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。! s3 c. _. J) S
; L7 z6 K( W9 l2 c4 h! W0 @) z
4 ^; n' y3 y: D, F7 y% W
0 l$ }! H$ P" G1 w2 g7 R1 x
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。. o* ^8 S6 E5 t4 Z0 j' H% g
+ v1 }# e$ p8 Z% y; X
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。3 x2 Y4 I# H5 ~: M
0 X' E" y9 W e/ U( ]
: N5 X7 u/ e" U' k& x. L5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
% ~# U' G% ~3 a$ j) w5 ~6 E- {; l5 B8 C; v4 y! C1 p( ?$ V
, E6 c' \6 S4 _4 }' p1 J4 Z
( S& ?# I- J' m: g6 L& ^
開始組裝:
- _9 z' a( \7 f* o) A
7 u$ U4 H; E- J# h A4 q1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
5 X! p( Q2 n/ a0 t9 T+ Z[boot loader]: p! F/ H4 z! _& I5 K* I* p
timeout=30/ m6 r" v; U. |& w. \2 k1 b- d# f2 ~
default=C:\avldr.xpe1 Y( s4 f6 y. \3 z
[operating systems]/ p4 e8 ]( \1 ]* W
C:\avldr.xpe="Windows PE ByaoMaotao"' M- K3 Q# O7 _) H9 r: U
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
5 W/ o1 ~( `. ]1 I! Q3 DC:\avldr.dos="MS-DOS 7.1 from USB-FDD"
! h" K$ T/ B5 S% [; P完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
6 b# l7 Q8 }3 g$ Y* ^$ j
% f1 v6 y' v% H這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。9 \2 i9 y; P# b1 j
* j( F9 F* h% S5 N, G7 Z
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。- c- @- O$ U7 P H9 K6 f
: ]* t8 ]! R- W9 `$ \. P2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
. ^6 a/ N( u* l0 j$ x5 @- |# S l6 j$ y: R9 B; \. A
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環境下。
( A/ X' ~; Z! W; u1 t6 p. H8 H! r# W- n' Y7 t- ^0 W. X+ [. O
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
. `. ?& M1 B5 G$ S$ Q; g% ?. B$ A* `( a- [: A' N, M/ A
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環境下。3 _+ ~: G- d3 }9 I2 |$ E
* v/ L4 { ?0 W0 w) p+ q7、把前面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環境下。; b- B$ \9 y! s& ?
) e6 a; L: d4 R- [, E至此DOS/WinPE雙啟動系統維護U盤製作成功。4 c- k+ V5 y+ L) }0 ~7 [6 r
- N' ?0 @: ^$ c# M5 J9 g, @方案二:NT Loader + Grub4DOS- _* V- P2 S, P2 C6 t
, H. @9 a( B6 i8 \因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
/ k3 F- |2 [3 o( X
7 z( d! R* r& y) D1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。! j% E/ l9 O$ n5 f
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。- x7 b# Y$ W* H- U4 d) Y
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:! A( ]" c$ y3 k; A6 F
[boot loader]; m& k& q' k) N2 b
timeout=0
6 ^" F: }3 ~' n5 w* Qdefault=C:\grldr1 A; j4 a1 y' ~! C
[operating systems]
% S- j: M/ V tC:\grldr="Boot Menu"
# o7 T/ A7 E9 a5 U3 F! U& ]$ ]- \& tBoot.ini菜單各個項目的含義請對照方案一的說明。
9 c% y1 i; R& u) R! d2 t
# M6 v$ ?. a% J, P4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
: M9 w# E' @1 b m5 o! y% q
) M9 B1 C& q, b( x' a/ R$ A5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
/ `) a' k9 T/ }2 A
- q1 n& [6 j m8 a- ?6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。. `4 s/ Q2 A0 ]0 f. A9 R% L
1 u9 y8 ?+ C3 u7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:( A% i/ O, g4 R% v4 ~
timeout 30
' V. U8 U8 Z' e z0 f( Z$ j& edefault 0+ c3 R6 B& Y8 B h
splashimage /boot/splash.gz
# G" z- d* S3 l- Qforeground ffff001 e5 f0 D3 b4 P- q# O E) x
fontfile /boot/fonts.gz4 `* l/ D0 [9 ?
title 啟動 WindowsPE
" V8 E2 z- ]) jfind --set-root /grubidx.txt" R) ~, i" H% I. b" D; L4 ^
chainloader /ldrxpe
- B) N B( f* \% _title 啟動 MS-DOS 7.1* K8 q2 V5 w& X- e: `! C
find --set-root /grubidx.txt
6 r3 B( |. |! @- Nmap --mem /boot/dos.ima (fd0)" k) T' I, e/ Y1 E) D6 g$ t' Y
map --hook9 x4 I& _' _" r# X" G- t- Q6 O
chainloader (fd0)+1
2 x5 i. }* u/ X, J3 i' Hrootnoverify (fd0) . z1 G; v! G: X' q1 I) m
做完這些,U盤就可以啟動了。
) r i& T2 n/ G$ G J7 I! G& K$ D
6 _. j. @+ ^+ k: D菜單項目說明:5 x/ W% ^9 G) J2 \
0 Y2 n- I( W0 ^$ Y
第一行設置等待30秒的等待時間;
7 i+ H* a1 m; r$ i1 C* {1 q& f) }9 b: X0 @$ O8 w
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;" }4 b$ h, J7 E* e L% Y
$ m- G! K8 c0 ~( l1 ]splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
- l/ f& s2 {. H
9 H% u6 d N/ h- L5 z9 r! _. Oforeground項設置啟動菜單文字顏色為亮黃色;+ D% I! @' h' t, r f# Y
3 R8 U" _! d- E1 m5 `# p
fontfile項設置中文字體文件為/boot/fonts.gz% }; |" p3 J# f
3 I& U* s- n- B0 @ o
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
0 p1 r7 l& u* x/ y: h, n
/ T2 `; ^& e; D1 o0 f( Ofind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
) z# K, G- Y6 X# r. B# B9 N$ J' n. C3 Y Z P
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
. L, d: a7 _5 K/ p6 h+ l1 x; K5 y2 X8 V. w( M6 J# ~
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.3 E0 g! k3 |2 u+ e( s" ^8 @2 h
+ ?5 g+ o* G( j& E* O8 x0 @1 c3 p7 cmap --hook是讓裝入的軟盤鏡像立即加載生效。+ d$ `3 q1 T6 n2 [3 G
: j( h0 c( J; n- A& A
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
( {/ M3 u: N, v6 K0 a
+ t3 N5 T- Y) K2 Z本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
. ?& ~: E' t6 }5 Y; y; G8 c3 M$ u: l- ]' e
- U# R6 Z+ p: E' t- w# m% N方案三:MS-DOS 7.1 + Grub4DOS* S8 B2 x% j4 G2 G0 j( \
5 {5 f* s5 L: _# W$ P$ ~, ~, G
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
) |# U* F2 e& c2 k# V) O
( Z- H8 ]# I0 ?( S9 _9 e本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。+ s, r/ c% z5 L6 t+ j' W6 x
6 Y2 Z5 U. X7 }+ F% M) D' }" K1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
% e( I+ e, _4 U& s" @2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。9 ~, z( R; Z4 U, D/ W U) D
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
4 q: }# c! y/ G- J# `4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
j {6 z$ |) M1 D4 [/ D: {( S0 O D4 j5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。5 b! O, L1 Y9 o% q
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
1 |$ o7 q. e& etimeout 0+ o4 K: q- V, ~# ]
default 0) Z1 O( W; L" Y& f3 V- G3 F
fontfile /fonts.gz4 I+ Z& G# X* V5 r$ N
title 啟動 WindowsPE
$ p9 l4 W; l7 T" V7 R5 V! ~find --set-root /grubidx.txt
- h, f4 X( w* \5 _6 I; ? _( u uchainloader /ldrxpe
7 Q, p& t1 F/ D& D6 @4 \在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
0 E/ a, P1 S, U& b( y8 B( X7 \
# [4 Y5 c& ?" a7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:7 i0 D: g- B0 M. T
8 L1 R7 L) s6 t) Z+ Y; L6 hgrub8 l2 _6 p/ _6 c# f# ^
0 `2 [( P0 G( a6 a這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
3 t5 N3 [) Z- m" T( ?% I3 B) s
. ]' q8 d: g& _: cConfig.sys內容:
}& t# o, D3 t[MENU]4 Y9 w0 T5 o8 E& y) S8 ?8 e2 S
MENUITEM=1,XMS without CD-ROM support
. D% ^- E" Q. h0 pMENUITEM=2,XMS with CD-ROM support5 y; I4 r: Z5 ?3 |
MENUITEM=3,XMS and EMS' K/ }4 q+ ^1 W& M S3 o
MENUITEM=4,DOS real mode(no XMS,no EMS)
2 z( R( Z* {, E, Q w! z8 jMENUITEM=5,Windows PE
0 d; F8 ~4 ~' {: jMENUDEFAULT=5,30
4 x0 D6 U+ c- O6 ?[1], O0 r4 m0 V8 d1 [ K" i
DEVICE=\HIMEM.SYS /TESTMEM:OFF
* ~: i( m3 D% J6 ]3 s5 g) pDEVICE=\EMM386.EXE NOEMS
5 L0 Q$ U( C* I- h9 i9 |INCLUDE=PUB
" B. G% k. p% r3 A[2]' [4 F. Y3 g0 [8 T
DEVICE=\HIMEM.SYS /TESTMEM:OFF: e7 J- q$ x0 O+ j H: ]# H
DEVICE=\EMM386.EXE NOEMS \$ }, x6 a2 L4 L Q$ j7 p! \5 ?
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
2 ], N7 |6 N; t" e! i0 dINCLUDE=PUB: S9 b* S+ s4 @" Q, W; ?+ R
[3]. y, P0 C, R! p7 }0 P* c% W% H
DEVICE=\HIMEM.SYS /TESTMEM:OFF
% b7 s( z# [' ?DEVICE=\EMM386.EXE RAM
9 s0 i& A, L+ A: NINCLUDE=PUB6 F5 J( Q0 v9 t) N1 J% ^/ }
[PUB]
6 ]0 K$ U2 ~ sDOS=HIGH,UMB
' \/ J3 T: O/ x4 T$ l9 oFILES=30$ o4 A1 H/ h0 X6 e* p
BUFFERS=204 p7 {. h0 {0 G7 P
STACKS=9,256& w3 Z% H2 ?) G8 p
LASTDRIVE=Z
& D6 A3 R; |& s: G[4]$ N! ?2 i7 @" s+ p& k* O4 y
FILES=10
_8 f8 G$ \1 r) zBUFFERS=10
( f/ s2 A! s/ K: f- g0 z9 NLASTDRIVE=Z
! D E* P3 Q' K6 ^# y9 X[5]
1 R6 k1 A+ r/ B: y0 r: r9 OAutoexec.bat內容:
$ G. C# j4 v Q@ECHO OFF
4 U0 V* Z! j2 o. [- L: GPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
5 P+ o- P, ?; ^0 d# G. |GOTO %CONFIG%
: D7 F' d0 w9 g$ _+ T: d1 ~+ r:1$ t0 K! B8 U0 h6 ~* S0 V- ]4 X
GOTO COMMON/ q/ k/ }% @; y. ^
:27 M2 S$ V* _/ j! z: A0 W. j
LH \SHSUCDX.COM /D:SSCD001
9 X# @/ V9 U8 n- F1 x$ JGOTO COMMON7 }/ M& g0 w5 U1 ^7 E8 r* z/ e: o3 T
:3
J* x9 E1 T* m. a; q i" KGOTO COMMON
" ^: a0 q N# c% }! _+ P7 y:4
9 ?1 T' J! g8 E" T- }- Z |5 SGOTO END5 w6 {+ n" g; n( C2 M, A- b" i
:5
, l2 H6 O5 H+ ?4 y# M+ yGRUB6 p$ C5 ^6 G6 S/ w6 R% g
:COMMON/ O1 g5 [* I9 D. P+ ]7 b% F0 ] X
LH \SMARTDRV.EXE /X! L2 z! x8 {3 c$ X
@ECHO Install mouse driver?
* V4 o) R4 f, r5 ]" b\CHOICE /C:YN Yes,No /T:N,6
- u4 @# S9 \( ?# [IF ERRORLEVEL 2 GOTO END
: ^2 P. ^$ W" ~' pLH \MOUSE.COM7 c, i% s" _4 d: M+ j+ y) k; G, Z
:END / b; [# E2 p3 B" B" Y
4 ~7 z5 _; u% E8 r4 A按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。- z- @+ W# Q7 S0 T
* W% u( z4 ^+ T感謝5free和david_ge的幫助!+ m) d# K4 d2 x) d; W c4 D5 U
0 u0 @- C# d+ t! M( [+ [* @
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:% r8 L- A9 B' D @2 ~( T# V
3 s7 y! s1 }' y. `/ Whttp://bbs.wuyou.com/viewthread.php?tid=940871 G$ M, h P, C$ ]3 e5 e
http://maotao.u.winzheng.com/2 R7 |% o8 g/ }5 R2 d- p
9 \0 L. g1 h/ U: H; @: [
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
3 c+ S) Y. d$ k0 _: M" @* m d) |' b8 T0 s3 w4 ^
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。+ f+ L* u: P! n6 l0 G
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。9 @) T0 u3 T, d" h
. M6 [9 D; n4 A S7 t3 m+ J
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|