|
轉載請註明出自「 Zuluck!- 運氣論壇!」
3 N- ^$ j1 P/ f; F本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
8 a8 L9 g. }2 O3 y8 o
5 o8 C* B& F5 x' f- ?
2 ^! }7 H. u' h8 l2 _* }9 e# K沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。3 G8 Z. d2 t4 M( t; c
) K& k) k: X" d5 s5 C: \; C( \$ y% A前緣:
% |5 N7 P. C) G: U
) l9 N# s4 w: a1 O+ q很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
) O1 S. T6 \$ X$ }1 B+ |: v
0 }/ Q2 M, k6 f0 R; ^目標:- r1 D, u* P# z% q. @: I
v- b; w1 b, B% C0 n5 ]/ k
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!5 [3 U9 {& a; `9 ]' V/ Y
8 R1 P8 }4 X2 J% y技術背景:
& L" h9 s3 K' v& S( z/ B" A2 h/ t$ E
' L# r1 D* |. p) a% v H; V6 d2 E% t1 M其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
# N( t3 }4 u0 Y" n+ B# a
& }$ ]5 ?0 H1 Y; z, S! X1 [- b% m首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
% B p1 V3 Q" E; ]5 A; C1 e# n4 ]( m
5 M+ F2 R2 r# P( k% q4 X因此完成一個操作系統的啟動,
/ G8 E( |# \' S需要兩個必須的步驟:1、MBR引導;2、OS引導。
' m4 \/ Q! V( Q- Z( t1 e5 q9 ?* m L# w) A
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。 ~# H& S7 k* S
. Y4 ^2 T8 k$ U# {- c! i
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。% s+ C, i( \) m; W% X; }1 t9 T
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。4 a e% U) o' f& X& i
, O' s4 m# M* m e/ p2 e
OS選擇:0 k3 x( w& a. o: ^, S
% j3 P' \( x) | I3 kDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
! @- v+ _- k% H/ |
( Q4 @4 g1 b1 M6 ?6 {# P) r方案一:NT Loader + AVLDR + Avlgo2 N8 U$ J+ a J- M$ Y
" y. T0 [( _5 g8 uMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。' T9 R/ h0 d: ]' N8 e) O
l0 M8 [; |1 ?( a2 c0 E) D# G工具準備:4 d( p3 ^& e8 n% Y7 z
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。! p* P) I* r$ b* ?2 J8 |
" I: C _9 @ C. E數據準備:
, t- U' T. q/ r# L, k8 u) p& \& k+ z# |- N$ O8 m+ w
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。# x* `. F( d3 H% w; \9 p
& G# A* P) v# w$ ?4 J' u; W, b: q; U
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。: n8 a5 t8 [( w
8 W6 F' t6 O! w9 j3 |$ R, H: J9 C
0 e% @2 Z6 ], j3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。' F1 i3 T/ u9 L3 M
a! H2 ^* N a9 l% b: O0 u4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。9 i& w) n; }! b" u1 z
' v- m: @6 ^0 ~" S1 D3 n3 C+ G2 K4 I, P/ j! H0 w
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。2 M6 C" U3 i5 c& S% a3 e5 K
% V) W3 Q+ y: b* {/ m/ V9 g0 q8 ~1 ?. S9 H+ r, g- E
' F1 w' m8 N7 @ R/ J# _開始組裝:
, r5 j( q N) @5 \% b( Z5 U8 D3 H( v4 \% @4 X) I7 Y# o
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:- U/ M9 h: h. N% u/ H0 K
[boot loader]
/ a' U, M& V/ R$ ?timeout=30
, H5 n# ~- I1 w9 R4 h; Y5 Ddefault=C:\avldr.xpe
% e- ^, l. z0 _$ ?) w6 \" q+ S[operating systems]
" Z" t G f$ o& G/ J' f7 ?C:\avldr.xpe="Windows PE ByaoMaotao"
, M9 t+ [3 @# R7 a8 a8 YC:\avldr.bin="MS-DOS 7.1 form USB-HDD"% b. }; L" g% o1 K& d" Z
C:\avldr.dos="MS-DOS 7.1 from USB-FDD" # z7 j; u/ ~& o
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。' g8 N F( j9 t, H+ n" I% A2 c. Z; h
X6 s8 l: L# Z, [這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。6 p, l; ~$ p9 a% U0 @) N
' O- ^3 {9 D2 f6 w+ m% C X
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。: t( m+ N* M! D) I0 e' A
1 L6 s6 [- g9 E# y* M4 A b; j
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。/ S1 V, v6 h3 @9 h& H z4 B) n
4 l4 `5 k3 a( z: \) q7 C
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環境下。' E: B- l' u5 V! B
8 e5 O2 m* @! r3 [6 `5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
$ F2 i" D0 w7 L1 ]# M9 t5 g& {1 r% E( r" N
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環境下。7 a ?; q. ~$ w- n" A7 L
' n- M$ q1 T9 a' q# e
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環境下。) _; y; G/ v" J5 w1 O/ v+ E
. q5 _* c' Z* J6 |
至此DOS/WinPE雙啟動系統維護U盤製作成功。) E) y2 |5 n: }
* k) s9 Z8 t( G) ?" @+ Y
方案二:NT Loader + Grub4DOS) n+ H: Y9 r' e- m0 q: A
* S0 a1 B/ w) C9 n: P( O
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
6 u$ `5 l0 t) O" W+ E# [! }
0 r- Q- u! L- }( M6 z1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
4 C" ]/ ^" P, S% @* g1 }% k; @( Y2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。8 i0 q# [9 d. p5 u& {7 m. g
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
- b! y8 u4 N9 R+ e& ]( Y[boot loader]+ H) }+ O+ }) B, |
timeout=0* g/ {7 B& E* v: z- _
default=C:\grldr
0 P& K' ^7 D: _! y! V$ D. L[operating systems]
8 O! O& M0 W F" `6 g O, a- JC:\grldr="Boot Menu" 8 f) Y, ^; a3 L, W: y
Boot.ini菜單各個項目的含義請對照方案一的說明。& P+ W0 P. o5 u, R6 m8 y3 N
5 }/ U' t% t: o# ]$ j; D4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。- O" e9 b3 ~7 g) w: C- B5 Y
0 T5 x7 M1 ^6 ^* Z; o+ Y: ]5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。( s) `. y4 z# W' Y! ^5 p6 E2 W- k
5 u& E5 c) l( Q6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
: S0 V! r- T! V1 \$ V+ j2 ^; B; ]& g- h7 i. `4 v
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
2 r9 r0 |$ f! T" Q2 ^; Ztimeout 30
' D% O1 b5 r4 S" C1 {& f7 |default 0
& D. H5 e3 z+ }5 t) k" o/ a2 C0 @splashimage /boot/splash.gz0 ^1 Z2 i/ A' i# O
foreground ffff00, J" R2 A( [- r
fontfile /boot/fonts.gz
0 z1 ~% L+ P; `' U: Ltitle 啟動 WindowsPE) h" G+ G+ n! c
find --set-root /grubidx.txt
) D g( u& h& h: H9 Jchainloader /ldrxpe: u: J: [' `8 J
title 啟動 MS-DOS 7.17 u2 x2 J" _( _7 W
find --set-root /grubidx.txt
/ K# n5 V1 E0 b9 R" [map --mem /boot/dos.ima (fd0)
, e2 i- E4 R& p1 `6 l6 s5 Bmap --hook
3 }5 U9 b2 ]% Z6 }( @chainloader (fd0)+1
+ q" b) y. e2 u* R* n% Grootnoverify (fd0)
/ e3 N; F9 \2 `" r做完這些,U盤就可以啟動了。
2 \7 d( J/ ]; g6 R0 n9 x8 i; h, e$ f+ j. r5 x- g- I
菜單項目說明:' v1 c9 s J3 t. O2 o, f I
' B8 \8 y0 M1 D \1 A4 @8 t第一行設置等待30秒的等待時間;/ ?8 e$ R7 O8 k4 j
U3 n/ h+ a0 \0 Q3 X- r+ ]第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;, M/ J% _: G, @5 s) l
& ]" U& l: p9 [7 b U B* J
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
- g: r; W) ^: R# z9 S E
' h( r; s. Z) G% i8 \# xforeground項設置啟動菜單文字顏色為亮黃色;
3 Y& J7 W; Q: B- T/ v9 Y, m% C8 Y$ k# t$ ?5 W" N
fontfile項設置中文字體文件為/boot/fonts.gz9 J" P$ x @" }1 m1 _9 h: G
& R! C$ A( B R* V0 B& e下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;+ Q: t% F9 {! v! \0 w- v
r, u0 v8 {7 G6 z$ w8 ?find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。: D2 K3 d1 S# R0 G
* h6 ~# Z" Y& A; a5 m y1 T* w/ y: b$ Vchainloader /ldrxpe就是啟動WinPE的XPE鏡像。
& h) p! E& o+ Y1 E& f6 D1 L8 z' j
* v' R' L9 X" L" `5 w3 J1 T9 j Smap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0., L' U2 {- M8 r! N! |' {
( V/ f$ c3 d8 q7 F0 Z. C
map --hook是讓裝入的軟盤鏡像立即加載生效。; R: ?5 U [& Z9 V
7 t' [: y; w B1 ~ L' l5 |$ w
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
# |( G% p' Q7 A N- `& u* o1 B( v( e' l
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
' C2 Z7 r8 Y& }" b$ }, t8 W( g2 a' Q3 F4 k2 |8 t3 U
% p2 I- ]$ X* a5 U/ h; L. P
方案三:MS-DOS 7.1 + Grub4DOS% a8 }! W% t; n* b6 N
$ r% I2 i2 w. a5 x" {& l1 q本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
6 t9 z' D, J8 \7 `5 q: n8 }( n5 z- J v+ k3 X
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
+ k% Y) L0 s- b5 |/ P. r8 C! S/ t% U& X* _* m6 [2 v
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
. q* s5 O( |7 ^2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
0 H; H' m) j9 \ }# B" `3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
3 v9 y' ~/ @! n& m8 m* N0 n4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。5 E0 Z' k7 k, R" D! \6 ]7 H
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。( X" c% B# I% ~
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:0 v& d" o. P8 W$ U5 U: Z8 i
timeout 0
8 N7 S% ~' z4 b/ Z4 v9 w R& Ldefault 0
" Y3 A% n+ {* _6 f* ?fontfile /fonts.gz
) o4 ?' M6 z, l6 ~title 啟動 WindowsPE
* |) Q. ]- R/ T6 y% `* `. h; Wfind --set-root /grubidx.txt
3 h0 k, a6 c& G2 U+ Zchainloader /ldrxpe ( l1 V% F( k, Y Q# [- T
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
+ a( {, O4 z$ w9 b$ X" S
$ h6 v& X6 N$ K* @2 O/ Q7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
/ b* d) {1 n" ?' y: L4 `+ D0 P) _% x
. c7 Z7 b3 Z- vgrub: }, D2 e/ C7 G/ J' |
- E1 D, V! W. E a4 A) }$ q
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。* ^: |% C! j& ^- l9 x6 m
# ?0 I# S, f: o0 }Config.sys內容:. P) a; f8 h2 b& P: y
[MENU]: w# |7 o# j$ B' L2 L
MENUITEM=1,XMS without CD-ROM support# Z0 V8 y' t( g1 P, x7 ^
MENUITEM=2,XMS with CD-ROM support
7 g; N: o! H7 O# [" nMENUITEM=3,XMS and EMS
1 ` G9 k: O+ A) k/ x+ AMENUITEM=4,DOS real mode(no XMS,no EMS)
. h) c3 r& i t0 u2 w5 zMENUITEM=5,Windows PE( s4 |+ O5 l Z# |0 l3 q* g
MENUDEFAULT=5,30
- j8 a2 U/ Z+ Z0 N; o[1]# A b7 p& E9 Q" n6 Q
DEVICE=\HIMEM.SYS /TESTMEM:OFF/ h: o5 B) f3 I' ?* V, ]7 a, K
DEVICE=\EMM386.EXE NOEMS
+ `5 P2 f# e/ i7 ]# P' o- JINCLUDE=PUB+ i2 I( N& h; Q2 D, ^- I4 ~
[2]
3 I! g$ Z& u' L7 S% i' q. c+ w( _DEVICE=\HIMEM.SYS /TESTMEM:OFF. j, Y( {% w' B) S2 x8 T7 Z
DEVICE=\EMM386.EXE NOEMS
3 G: o: e' n V$ YDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001; _& n0 }1 y \9 Z, V* P/ d+ b
INCLUDE=PUB, X* j2 \/ @3 x( R" W1 j: C
[3]2 |+ N4 s! }7 v
DEVICE=\HIMEM.SYS /TESTMEM:OFF
4 W1 [- O* m1 v: d; r0 jDEVICE=\EMM386.EXE RAM
, m3 O, e' m) BINCLUDE=PUB! _! i/ X {& L$ V( D* {
[PUB]
! Q/ ^1 D6 \/ U* s ?# ZDOS=HIGH,UMB. v9 r7 G( e* ]. `' T9 f- K( X
FILES=30# y2 Y" f: H3 ]. j
BUFFERS=20 Y# Q# Q1 F: e/ G2 z8 V
STACKS=9,256
6 t/ o" s. `7 C# y8 Y" xLASTDRIVE=Z
0 }( t6 h7 F8 t: G" w3 S[4] ? N: @# W( Q+ {# U5 }2 X' i
FILES=10
& c, Z5 L+ B* T/ j: E [BUFFERS=10
: k- f( A- U& d" eLASTDRIVE=Z; j1 W8 q" z( [: y
[5]& M0 u! ?$ f) {" B3 ?
Autoexec.bat內容:! e1 g) L6 p+ r9 z/ c
@ECHO OFF# A6 @1 c# P5 Y
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM# F7 c7 K0 C; X3 H$ F4 E& e
GOTO %CONFIG%) q* i8 |. ~$ D! M, B
:13 w+ J- S1 S2 R0 S. C5 z
GOTO COMMON$ A' {8 W2 i0 y
:2! h% X+ w% W' n- U% W" E) n* L
LH \SHSUCDX.COM /D:SSCD001' ~& y1 x% Y/ V; R
GOTO COMMON+ E2 I" O/ q# K5 L& ^2 s
:3) {- Q* @. \. h$ A% M
GOTO COMMON7 f. S+ Q( X! U; J9 `
:4
( R' ]& _% ?' E* L( o# sGOTO END
( L6 U) W) b- {( ~6 k:5; d: w4 g& s$ [6 Z: r# v* g& e- a
GRUB
9 ] b+ o0 x7 n. F1 n( \:COMMON
3 @+ S5 |/ f2 [: B# ]9 sLH \SMARTDRV.EXE /X7 Q/ j! z, o- E5 V+ U5 \0 O
@ECHO Install mouse driver?
7 l# E' U2 i' ^6 L- q. { N\CHOICE /C:YN Yes,No /T:N,6
: n8 i9 w8 C( J0 [; w6 V, p/ LIF ERRORLEVEL 2 GOTO END
0 x8 J" E& b2 V& z {2 ~! TLH \MOUSE.COM
+ M. [! ~& q8 {4 y# s. O+ z:END 7 ] p( ^& y) ^+ Z7 v; D- z
- k1 ]9 t# S6 a: \4 [8 z
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
' x- M3 Q; W Q0 H0 X& f( _+ Z+ e( o
感謝5free和david_ge的幫助!3 W6 L+ L# u$ |' T8 K# v# M
) k$ c3 L( _3 @( k3 x8 q0 I
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
) ^$ W1 r# `7 Q4 C S, l
2 [6 \# y. u1 p" N. ?( l1 Whttp://bbs.wuyou.com/viewthread.php?tid=94087
+ c3 h. j8 T: X# N/ {http://maotao.u.winzheng.com/* r. t) r$ H! ~( i4 B
1 g6 v( K- c0 g( Y! h
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
! n: K. N1 x6 z; V* _, u
+ a* I2 |+ i3 L: ^2 t* r/ A. i最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
) Y- S8 z3 M7 c. W後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
; c) \9 |$ ?' S" F6 F3 I4 {# j/ J: i3 ^4 z
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|