|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」, r0 u1 g8 @. R, B) U4 Y. J' C
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html5 g3 E# c, [/ S* g( b/ g' n
! j6 t7 o( ~3 }, S# r2 Q- t: ~' u& j
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
i/ a; o" q2 J: i' ^( |2 y ~9 p ]/ @
前緣:. X, ]4 |. G9 B/ I: ^
9 o* T7 _9 \, n* _
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
0 g* k+ R9 c0 P; s+ j
0 r8 A+ m, @0 O$ s目標:) e) A' }+ ?4 O ^9 U
/ \0 [$ r, s9 K- i3 I
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
3 N7 E3 n f4 D) }* H+ {$ {
?8 q' y' B4 g1 q [7 g技術背景:
- |2 w: E: d, p8 S& W4 Q' [8 F5 @) W; B0 C8 @* X0 S
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
- k( \5 V% v+ b) g3 ~7 t
: }! u0 q) v" F$ @, A7 K$ Q首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
, Y9 ^; G: B( S
1 d* U: l: M6 X* p: H8 P6 F因此完成一個操作系統的啟動,
1 |$ E7 A- A# w0 I+ k" U需要兩個必須的步驟:1、MBR引導;2、OS引導。- Q- z0 V) t) y0 R: u$ ?/ G
0 R1 @3 p' H7 G" Y: U1 H) A% f8 @
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。/ s( l% o' j* J! s; ]- k
7 h7 H5 G% F; j1 ~
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
$ }1 d; c$ S1 L雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
# t: l& L# j$ r. o& W: u- T' @8 O( N" _9 q* J# n
OS選擇:
0 O" ]" u" S5 E J5 Z
, G* y/ E- I7 a- e3 _DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
+ b9 Y: v0 p! M0 c* V8 L! u" F# N3 H5 o- u# C6 y7 I
方案一:NT Loader + AVLDR + Avlgo" G6 O3 @ f, B( c( q
/ \4 l" Q" z- f& Z
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
, ]/ n' D' t( F# G
+ u4 m* Q/ S. B/ M2 M工具準備:5 i, D8 l1 v6 K- C9 y- \+ Q
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。' s- J4 _6 _ I& d9 x/ D! ]* N8 G
0 N2 C; d4 k# U2 y6 l數據準備:
% X: k, f. I9 `# T y
- \# @+ U! i- _4 l* O9 l1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
* v7 L: a* i1 }- X. Y9 e/ z9 d
9 G2 ~8 E0 r* g
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。; g N; I [- O/ E- x% _7 Y4 u
7 X+ Z; D. C8 N0 W1 a" w/ a0 i8 @
3 P, ~, {" y# Y. ?, @, r4 S' I7 s7 a+ O& `7 b$ j* z0 C; Q
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。. R5 y+ p% s& c f4 D
" _. H, E$ @6 ~( K4 w* Q
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
% d' O- f4 |0 j- u/ x
+ f# ~3 G: g# d1 c3 D3 F' L. c* q" J- D0 G
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
1 U+ S3 f3 v/ V' o3 t5 S5 s5 F3 Q
A/ S1 o' U' [. m3 y% P" L( E
7 A( y& n& A2 [0 X% ^
. o3 ?8 { O( u4 o' e' x9 w開始組裝:
; U, \. K# ?; p) Z5 Q
$ b* P1 ^1 \, B1 y9 j6 Q, }) d1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:, |9 e' U7 @- G7 `4 [2 F1 a' }( P
[boot loader]
% {3 h1 x+ X" I' K7 W+ rtimeout=30
" {1 Z8 Q" Q. x0 qdefault=C:\avldr.xpe# s0 p9 ]( m, h
[operating systems]- ^3 e" U/ {3 B
C:\avldr.xpe="Windows PE ByaoMaotao"
, T7 ?/ U0 C& ~( bC:\avldr.bin="MS-DOS 7.1 form USB-HDD"
% z3 X: s) v& p- I! `% h/ g, |2 _C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
6 u0 H% @" p* r& n* D完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。* p" f: u6 n* o0 [ W
5 {* G$ ^7 b+ f$ ^6 q
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
2 i, l2 z$ U+ A9 M3 v( F9 B# E3 y2 ~: m; q5 K
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。3 n7 `" T, d# b0 F) f! I
9 V: t, g1 h2 R7 Y2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。+ T, E0 b5 `& ]& d0 A) n, j
5 d; p$ {5 c0 ]. H$ m) c4 c$ r* |2 g3、把下載到的老毛桃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環境下。: P$ P% P, z. n, _9 G+ {
8 o, {2 r3 H$ f& L7 r8 E: E
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
5 r; N: V; V6 p% ^7 J6 A% m8 T4 C2 V. p+ q0 d/ f& q% L1 D6 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環境下。* |8 |8 x }. t6 b" X; z! j6 b
- ^. [% H# S, Q, h
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環境下。
9 o6 c2 G+ |- p) W7 c& g' [) b. A+ h5 `/ A
至此DOS/WinPE雙啟動系統維護U盤製作成功。
6 O2 o+ K$ |, L& X i4 N* s# _) O( `$ ?& p4 l2 k$ p& b; J1 q
方案二:NT Loader + Grub4DOS8 y& j3 I) F6 ^/ P
. ]+ Z, P0 R( Y4 i$ f) I: }/ h因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。; T" L( B: s) n( G1 `% q
8 g9 @" Z8 V7 P% U' @, _
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。- N. l, j1 R' K7 W, \8 M) R
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。1 t! @4 B$ N8 Q# z
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
9 E" p, m0 @8 n4 G# s[boot loader]
- a) ~" G5 @7 O! g* p& ctimeout=0
" H: {( s; B! R# y1 wdefault=C:\grldr
6 ~6 l* Z) @# {2 r[operating systems]
( J2 a& k* W( h$ fC:\grldr="Boot Menu" 2 m8 R9 [1 I; [8 F6 N
Boot.ini菜單各個項目的含義請對照方案一的說明。
# ]6 g6 M) k4 P4 y6 s9 P' T7 F0 I% c: `0 n
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。1 R$ F R- c9 x8 j
6 E/ B. K/ W" ` {, `
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。) \4 o8 z& @+ [) s
* S" c. |3 h9 m
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
: y0 w* X( G: h) t: c( G; ^- F: Z$ @& ]4 M2 ]. C
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
b; \0 i& ~: [* v9 z0 r, p: xtimeout 30
9 k; ?; x$ E6 y. P& @" y/ E1 ]default 0- v% \. d1 N; b4 d( V
splashimage /boot/splash.gz6 V7 T! `$ ^& v
foreground ffff00
4 |, Y5 n; T7 x) `" J+ z* c- ~8 C% u) _fontfile /boot/fonts.gz1 F( F6 a i7 A8 i4 f. j
title 啟動 WindowsPE
7 ?$ W/ m7 N# \& y/ s/ ]find --set-root /grubidx.txt5 F" ]- Z% d; w
chainloader /ldrxpe
/ U" U5 e. W5 P4 c: K, |% e0 ititle 啟動 MS-DOS 7.13 C9 [$ B; f M2 S3 q# {9 U: e) [
find --set-root /grubidx.txt
" `2 c( f; b. m/ i$ @/ `5 @. Z( Vmap --mem /boot/dos.ima (fd0)
! M( O' `# O8 fmap --hook9 {6 x$ }: t* N0 `
chainloader (fd0)+1
$ L: f! n) R" X+ o* L! z$ Brootnoverify (fd0) 7 @! c! J0 Y3 y; m A
做完這些,U盤就可以啟動了。
$ g& [$ j( S/ k" L+ y6 p1 D8 l7 W2 ]( _: G4 z( j
菜單項目說明:' A# e: x4 _- ]- H" l
v5 o9 x4 [( f4 J第一行設置等待30秒的等待時間;2 t; E+ g; N, C% q$ }% ?/ v
: S+ ^' Q# u8 ?5 X( R第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
4 T& X) L6 H# p( o! r, t
! L3 D1 e! A0 n% z; D/ msplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
1 x( m0 X( {5 G/ K" k6 G
$ p8 J4 d: c6 {foreground項設置啟動菜單文字顏色為亮黃色;6 M; l5 r! r" ^$ M4 u
7 B T# s S- qfontfile項設置中文字體文件為/boot/fonts.gz
; j, S% ~' u J7 @ e
5 z) U/ H; D' ^6 `! M下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
) ]/ r$ Q) o7 g! T. j, |7 N. X
- M' l v$ h3 @5 |& Sfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
# }4 C6 B8 p) U8 p$ d# }+ k$ q( l% a0 m7 g
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。3 x- l2 ]* }% G2 }3 V6 }- Q
% g; ?( X' Y$ ]7 ^7 Gmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.' M& ?8 f9 [. ?/ s5 t. Y
8 I9 A6 ~/ y4 e6 I8 dmap --hook是讓裝入的軟盤鏡像立即加載生效。
9 S, S; f) o- O9 Q7 L7 _- s! O7 e% {
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。/ T L! @* X7 h) f8 P
0 c/ l. N2 R) r7 C4 L8 {本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。6 E3 E4 T* e' I6 D* g, e) l
) f8 i/ K& w7 n# k/ x+ R, Z' X3 B: n$ ?
方案三:MS-DOS 7.1 + Grub4DOS3 U) ~( C2 t6 o
- m: x: M* c* q0 g0 K
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
4 t1 R' O) B, D' c- S& m- c" Z: R @1 C. y8 C
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。, w- N9 i; U+ |9 T- l- X/ }* W
% a4 w2 g, o$ F ]; c, M# A1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
! P: ^7 ^" \9 b- K8 o) P2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。& N4 @8 { s! Z1 z* ?$ n. a
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。3 U* W* E2 R9 O6 Y. X! o9 R
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。& }. {" d& h, l/ |, ^- e+ @+ Y
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
7 Q* V# g8 }6 R6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:( R3 _+ p @+ d2 Q% b
timeout 0# `0 w6 y- }! i3 U6 j. \' Q3 K
default 0
: X1 Z5 `2 g# _fontfile /fonts.gz% f4 u. c" \' x
title 啟動 WindowsPE p+ P3 ?# w5 F1 w/ {: s5 b
find --set-root /grubidx.txt
8 v, H- F7 U0 g/ W: t: W( ~ m. vchainloader /ldrxpe ( X) h: E) u0 y% X8 a0 X4 n
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
7 b& G- W$ t( y
2 `' d4 d( ?2 r$ @% p7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
; E9 o, N1 U5 |6 v
, `7 q* ?" L8 S5 M) Ggrub( k* l( [' M% }5 f* p# \
, C, [, `" C. ]5 e
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
0 L7 r9 K% L8 o+ n+ V- N1 W. s6 D2 c- J+ c
Config.sys內容:/ ^: q0 s+ Z {7 @# F& R
[MENU]) g) _" q, r: @: W; ]! r
MENUITEM=1,XMS without CD-ROM support
0 z! R4 R. z: m$ H6 e; C# a; N6 LMENUITEM=2,XMS with CD-ROM support
. M* e! @3 B( J5 h4 K) f0 IMENUITEM=3,XMS and EMS
2 B9 n! Q& o0 T' V+ YMENUITEM=4,DOS real mode(no XMS,no EMS)! K" Z! [$ K* [4 o
MENUITEM=5,Windows PE
4 b3 W& C) i; u N9 \$ iMENUDEFAULT=5,30
. l7 C" A! S. u[1]
6 q/ U" J3 H/ Q5 q2 p0 p4 qDEVICE=\HIMEM.SYS /TESTMEM:OFF
8 z% ~5 d5 p5 a- n7 M" q( g4 @$ ]DEVICE=\EMM386.EXE NOEMS' Q5 p* F& M" u
INCLUDE=PUB
% ] M7 m+ r& @% {! f4 \2 q/ E[2]; N, X( z* D( j6 o
DEVICE=\HIMEM.SYS /TESTMEM:OFF+ j1 R. k( D6 F6 |6 \, c( W
DEVICE=\EMM386.EXE NOEMS
0 T' j/ ^7 ~; _DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
6 ?9 T1 Q0 ^% Z; s. E! GINCLUDE=PUB; C7 h; V, K& v* }" z3 F( {* i
[3]
$ Z: A: x2 f, w7 m& rDEVICE=\HIMEM.SYS /TESTMEM:OFF
* i, [8 \. a5 p" w9 gDEVICE=\EMM386.EXE RAM
4 y; N; i$ ~' ]4 q' m9 F6 yINCLUDE=PUB3 j; j2 h# w% [3 |5 r( C: d* ^
[PUB]
7 s/ g6 g1 m& y9 {- z3 b2 O0 ADOS=HIGH,UMB- M2 b: _) K: `7 T
FILES=305 I5 k0 b2 ~# c d- w* A$ I
BUFFERS=20
, X9 ~: @& Z" P6 n4 s/ Y) N9 lSTACKS=9,256" Q. h3 n. y$ N$ Z. e
LASTDRIVE=Z
# ?0 O7 v+ C8 K5 o, n( W! u3 F[4]0 t9 m7 K* |3 z E+ L- [4 e
FILES=10
- k8 r( N: F! r G* ?- tBUFFERS=10% i/ U$ y7 O5 a/ @
LASTDRIVE=Z. C1 N. e+ e7 j) _- w. s5 b
[5]/ ^* i& d5 p/ I
Autoexec.bat內容:' W4 t( I$ G# E, X, k9 [( B6 L
@ECHO OFF- W5 B2 K- y5 _. o4 Z# Z# G
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM/ y# g! I4 g+ X$ C
GOTO %CONFIG%
( m# ~% d' B* j. }:1
( D6 U3 C. I* cGOTO COMMON$ G4 v3 A* G( E' y. V9 n
:2, h3 d5 U6 W# J9 I
LH \SHSUCDX.COM /D:SSCD001
" s9 N+ }/ Q4 Y/ ?6 AGOTO COMMON* \& I2 S4 B: U0 ^+ Y
:31 y3 a. R& ?, R! _
GOTO COMMON
8 K- g- u8 M; b1 q:41 a( S+ q. l8 p
GOTO END. d5 {8 L1 k& G j% B
:5- C* {, u% k! O9 x2 K" |7 U& b6 x1 U
GRUB
L( l: T$ {: Z# n% y:COMMON7 p5 T" `. o( A) u5 F# n" ~
LH \SMARTDRV.EXE /X+ W% z) G* a) Z/ K% c$ u
@ECHO Install mouse driver?6 ^& w1 [$ b( {$ _# s3 A5 v: H
\CHOICE /C:YN Yes,No /T:N,6
, S3 E! n1 ^8 z8 HIF ERRORLEVEL 2 GOTO END
( D% e. ]5 Z9 a1 s$ tLH \MOUSE.COM
$ |2 {) b8 c) P:END # M# ]/ c; p- @* O! G0 l6 C
3 I5 l) f+ w! Z f$ _+ w2 m
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
4 A3 E6 B/ @1 ]! |
- F$ K2 E E2 K感謝5free和david_ge的幫助!
' d% `; R2 V1 N! f3 h0 F8 W' U6 p' q- B3 L. Y& Y
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
, w# S5 d9 T' N" M. b7 `
1 k0 W3 ~, B) K2 P. ~http://bbs.wuyou.com/viewthread.php?tid=94087. K9 F6 y+ `: j3 k
http://maotao.u.winzheng.com/5 F' e0 V6 P+ [7 v% W# \* L6 E/ J
) Y1 Z, {. M4 s6 G$ S. u5 R) \! x' s附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
" H/ Z* X1 m& Z# Z
. m4 l6 p, `$ t- _, D _最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
0 k% B0 M$ n, F# K( Z( Q4 O4 Y後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
. N7 g J/ [4 w: b
9 E7 {7 I: O: P, T# H目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|