|
轉載請註明出自「 Zuluck!- 運氣論壇!」: e8 E9 g" C) l. f- i
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html: f5 }9 Z2 Q9 k: t% ]
! N8 s b, |: p* X7 `" c
# {+ h1 ?& P" B
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。6 s% }$ D6 F; H' x8 ^$ Q
( T' i! q5 I2 m7 T
前緣:& B$ `5 d! k) F, o9 r
5 E' A9 {9 s0 ~2 l; d很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
+ w) h9 Z6 @; u3 _3 b! H3 S1 L7 \' w' K+ T! m! G |, D
目標:
- W+ v9 M- M& Y$ J% O+ q% T5 ]' \. d& l
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!8 z) Q, b/ y" n/ Q! d
9 }! ]1 d1 c2 i9 C
技術背景:2 J7 w S, m* x. r
. j! R, \4 d0 a8 D1 l, s
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。 M6 L5 [2 }/ P9 r
" F+ d) y9 [ c* z8 ~5 ~
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。2 M. O" X. w; Q4 {/ P, Z
0 ^3 D( S) X8 @6 L! w. W2 O+ V
因此完成一個操作系統的啟動,
4 w* }. e+ Y* s2 |" c需要兩個必須的步驟:1、MBR引導;2、OS引導。
6 ?: N. ^) O+ K' @5 V! Q
1 \% q; I+ Z3 O1 H% x) s& _1 `基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
7 D" {6 P& p3 |' t' M
4 \0 F3 W8 L: P對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
L8 ? Y0 g# ^" x, q( z+ T雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。5 ]. ]2 @) i; w: h
/ K: D y7 x" r4 T( ~. tOS選擇:
* b$ w( s) d. L n5 t/ o" o- R- o# n _% a7 j+ q" {
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。3 E# I6 F# U* o* E+ n
+ N' a' P E. q% e
方案一:NT Loader + AVLDR + Avlgo: ~* v- t: a0 N T9 Q/ l
& j/ l! V. Q8 ]# s0 J" ?MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。! L( O+ `4 q4 @8 X; q5 ]. ~
7 i6 V7 v% w1 Q+ k) h$ b工具準備:
, ]# S$ D1 W3 s; Y: w, aPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。; D. a* j& d* r, G
: c/ v' ~/ V% t$ f
數據準備:3 W; r2 U$ Y) d9 z( v
Y. `/ d4 O! C6 k2 y2 _
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。& O5 U2 a) x3 {+ [
& j3 ^9 _2 R3 h4 j# q
+ Y, ?2 n* I: Q# }2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
$ d' c3 v/ `; [3 Z
/ y, }5 j. S" }2 ]! G4 b/ }! X& Z. ]8 V- p& J
" a% r& E- b6 t0 v/ q( r9 \& `3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
2 w8 Z& O7 T9 i1 ?+ Z# ?; }4 j# X! k6 S* E
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
5 P8 c. k) L3 f& T6 H; u V4 [ G4 E5 T' b- z/ B3 D. g7 x8 G
# R& G4 c9 Z* }! u$ ^- r
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。6 a9 v( C& ~8 I" Z2 m
- }, G: x+ w+ Y( A! @' X4 I* I. v% |6 O& z
1 k) V: z3 f4 U+ t開始組裝:
2 ?) h, j8 }6 ^; s! ~9 z
3 R% }8 s" X/ o2 u$ Z) H1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
+ O4 I; {4 ]% G: m8 n' L# l3 S[boot loader]
! |. n+ S. Z) f; w& m" @timeout=30$ u9 `4 I# v" z* F% ~ n
default=C:\avldr.xpe
& _, P8 Z/ ]- A( e[operating systems]! r8 G$ t& O) d4 K2 t4 i
C:\avldr.xpe="Windows PE ByaoMaotao"
/ D% | s" `4 T! @C:\avldr.bin="MS-DOS 7.1 form USB-HDD"3 p/ c! z6 T- l [: M2 {9 j8 j
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
% Z# c3 X% s' w完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。9 W; @; \" o! B8 Z0 i
/ H! b" Y# ]: e: r" V' z這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。& `2 w4 Q. f) X7 k
* `$ T$ }- U0 h, W/ ?( g9 d
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
4 e. V4 P/ U' H/ k- H( V+ R2 v
6 R: D8 u3 I; N7 ]% P2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。$ ]. F4 a. @+ t8 U
2 L6 ^2 O: P. Y, Q/ j* ~
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環境下。
# o6 ]5 y! P9 g3 n8 w
2 F. {" P* A, r3 n5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
" O. Z+ \2 U, E3 b) C# c/ B7 T+ |9 B! v$ w! G, m* d B; @
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環境下。
: z/ S$ d) ^) Q) j4 `1 z. y: b' E
& P3 D2 [/ i3 B7 {- V7、把前面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環境下。6 A+ W8 V% M1 m% x+ w
~) I' \1 E- |1 f0 k0 ~
至此DOS/WinPE雙啟動系統維護U盤製作成功。
+ g8 Z x6 R" {9 ]6 B. A+ N9 a5 j& M1 w
方案二:NT Loader + Grub4DOS5 Y& \- v. r! g3 I& }& H
* j) G% l0 {) `, s$ \) b$ D2 x
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
4 n2 X; @" f& T0 D8 F2 X0 d. D/ m- G0 p" X6 R- x
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
/ x6 N% |3 _ I' ]! u0 G( c5 u2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
) \% ^1 J* r5 z% P. @) m' |3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
9 P% K6 h/ k- a* k# e[boot loader]
$ @5 m2 k9 g# Jtimeout=0
6 f+ @& C) Y: k4 y; n/ g- idefault=C:\grldr u9 }- @7 O s. f2 `
[operating systems]
9 j* |! e) W+ L2 O) b0 Q: xC:\grldr="Boot Menu" ' I2 A6 z/ n( ?3 J
Boot.ini菜單各個項目的含義請對照方案一的說明。# c9 B! i, c* x5 ~; E1 l9 }. k( S+ ~
1 Y# E" u' v9 u1 `
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。# Q/ D* F# c& J4 X$ e* K7 y
$ v- o+ n& u/ x3 M7 U; C* c5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。9 N4 |9 p" g2 ?7 t. e9 J. B1 a: c
. w4 S7 f% d g" M/ o) ?6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
% j1 V* l* O9 `, {3 n! l2 v# E# @( r7 v- g
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:2 h9 s$ z* f) ?0 Q/ h8 Z
timeout 30
9 }4 Y' x8 N# b. N fdefault 0
- [4 H$ B' o2 {) T2 B( zsplashimage /boot/splash.gz. x# s6 I3 m' _! u
foreground ffff00
# r$ y% S% K5 C% o! A* e f- ]fontfile /boot/fonts.gz
E& B& R) F6 q* S: V$ W5 Y+ }" Rtitle 啟動 WindowsPE: V5 |- U9 H3 F% N# w0 Q: F
find --set-root /grubidx.txt' v+ {' r% i, }5 P( l
chainloader /ldrxpe
/ V9 V0 N& e5 E: y/ B: }+ otitle 啟動 MS-DOS 7.1
' {) M2 u7 ^: ^5 k1 j) B( L4 [/ ffind --set-root /grubidx.txt
% P9 h7 _3 u% |$ a) |2 ]map --mem /boot/dos.ima (fd0)
4 O7 R+ H6 C% C) Z) t8 M0 L _map --hook. }' q& R9 ^7 ^! ~3 O% B/ Q/ ?% s
chainloader (fd0)+10 Y2 I$ x0 B7 ], ]9 c
rootnoverify (fd0)
1 n) R8 F7 \/ l做完這些,U盤就可以啟動了。$ b% g$ Y6 n$ U/ R6 P
# }6 ]8 I+ m6 s! g' j; C
菜單項目說明:3 q! j6 }" [$ ^7 {! H# u( ]' |
. k* N5 q, ~- i8 j1 L第一行設置等待30秒的等待時間;3 {8 B7 C& u0 n# d3 t3 J" v- U7 z
( X9 s# m K# D) d& r( m2 Y第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
* u. _0 v; M4 a5 S2 s, W& m2 ~3 c8 C) X1 z
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
% ^6 H; o/ K1 [& s6 k0 V% K* |* y+ M9 M: D
foreground項設置啟動菜單文字顏色為亮黃色;
- v& B! u3 J7 R, A$ q, u3 D2 L6 F6 j9 m' Q
fontfile項設置中文字體文件為/boot/fonts.gz
8 b' m) ^& {6 R5 R4 x/ e( i
( h7 i% I% a/ b* _8 g; p下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;3 j1 n" i6 L: C2 Y% K
# X+ x7 E" Z6 u9 p0 J( D$ b; i
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。; P5 N- [! y6 @; K% I2 k# @/ b( N
7 E: Q5 c, @# {
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
$ @5 {- W' l/ ^9 Z$ ?0 u1 _) E- t0 c
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
/ V+ D# C( M/ v0 x
* O1 |8 P: I9 I7 P3 Q7 Ymap --hook是讓裝入的軟盤鏡像立即加載生效。
5 f* O$ t# F; x% Q. I
- |1 @. M* j' q0 Q1 C Y( L0 Irootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。5 n- z2 r" L E
6 q9 X5 G) }. w本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。; a" M; O8 V* F' X7 i
: V$ ^4 Q0 L; \, ]/ g: d
4 N& J5 F# ?# K, L
方案三:MS-DOS 7.1 + Grub4DOS
3 I4 P @8 l1 e+ l1 ~
2 Q% U& n. N$ S" W, ]5 U1 C3 m本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。3 W. I& q6 _$ u* ], V- @! }
# Y: a& I1 N/ [5 b
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。2 S9 Y1 e' t+ y8 M/ w' d+ w
7 U' O- G$ k- [- K4 v3 l4 |4 J6 a1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
2 E2 h- l7 ~" j$ U4 z$ Z' O" e$ n2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
' \* I# |% t3 o4 ^0 s3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
% O. \3 K. E S4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。5 A$ C& G. A, z d
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。2 j7 _+ t6 J" t* }# K4 N2 l/ T8 J
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
" M$ T+ q5 |) L7 U- I) |timeout 0( U2 }( q. o0 P* a/ f2 p2 A6 @
default 0
/ Q! V3 O) G6 c6 V7 i0 bfontfile /fonts.gz
- N+ }; L$ M: f% p* {8 Mtitle 啟動 WindowsPE% H$ x% ?' N* I. K2 c& K N
find --set-root /grubidx.txt
/ A9 T( S5 ]6 F( L' j3 Ichainloader /ldrxpe ' T v- x V* Y! s* t( G: T' ?
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。( r% c5 P8 d* i' F: @/ X; N
% ^) A# I. Z( E' O
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:5 k) u6 X, _& Y' ^- U
" [: d0 {) Z0 U; K% W) a9 B: c# Kgrub
& t. |0 G; K% \/ [/ L: ?/ N( S/ T$ H& \
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。( q0 A/ X G! O1 Q
% H; {+ ~4 i' \( d8 KConfig.sys內容:" Y/ {9 J/ Z# p
[MENU]5 ]- y7 H4 |/ f2 M
MENUITEM=1,XMS without CD-ROM support/ w' C8 Y0 a1 A, Z! c
MENUITEM=2,XMS with CD-ROM support
v+ V- z: @/ ~, K( D2 mMENUITEM=3,XMS and EMS
, L! J8 _* }# M5 W+ a0 `' IMENUITEM=4,DOS real mode(no XMS,no EMS)
* c5 X! k u, @) ^% dMENUITEM=5,Windows PE/ S2 q. S7 x$ | p( u' Y
MENUDEFAULT=5,30
5 Z; `0 \$ a/ p[1]
1 g E% y" R5 }DEVICE=\HIMEM.SYS /TESTMEM:OFF
& Z1 G/ f0 j- h2 I7 A3 ], Z) QDEVICE=\EMM386.EXE NOEMS
! h; d! c# D7 [! JINCLUDE=PUB
$ u5 h" A6 b7 v! ?+ N2 |[2]9 E6 s, d$ B; o6 \, N9 f: T9 h
DEVICE=\HIMEM.SYS /TESTMEM:OFF
$ i5 R: K; Y6 `DEVICE=\EMM386.EXE NOEMS0 s" [3 M7 x* q5 l+ x1 Z+ R
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001$ N$ l" l0 K: `7 P" M4 h
INCLUDE=PUB
4 V1 K9 D. J! R2 S. f[3]: Y% P8 d% i. a/ J4 e \# P
DEVICE=\HIMEM.SYS /TESTMEM:OFF
- t% M; R9 `! C+ D: d" T) _4 LDEVICE=\EMM386.EXE RAM/ U/ B- t% A% W* M7 O+ D
INCLUDE=PUB
9 D# Q6 a4 u( j3 J6 W[PUB]: M' q x: d) U
DOS=HIGH,UMB A$ Y5 n' a2 j4 f" p, T5 S Q! s
FILES=305 l! e7 g0 N5 i3 T- q
BUFFERS=20. a- @" p2 M7 F* l9 E0 R
STACKS=9,256. h, w8 r: O9 [$ O1 P) h
LASTDRIVE=Z
" V3 \8 R/ K1 @& F0 \4 v& J' ]& E$ G[4]
3 h" {! h+ ~$ B Q% vFILES=10
( `" F- _% K" @3 O4 T# C& dBUFFERS=10
) x2 D- M( o0 D+ LLASTDRIVE=Z- i2 Y$ J% k( N( W6 J' o
[5]
. b% \: v( t6 d% R$ } QAutoexec.bat內容:: h% c7 |8 L7 b" c
@ECHO OFF
9 j" r8 O, B+ J' d; q2 hPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM! Z' Z: o# Y# [2 o
GOTO %CONFIG%
( L8 L. Z d2 \6 `:1: I$ l2 q- V7 L: d, P! J) ~
GOTO COMMON; A( ?, ~7 |% K: W- Y
:2
! n# I5 p; c- t+ f7 ?' QLH \SHSUCDX.COM /D:SSCD001
8 o- V- z. Z5 |: |" o% ^! j( yGOTO COMMON
7 Q. V5 R$ a; l6 A5 l- `:3# {+ f% V; g. i3 T+ @: r F1 D
GOTO COMMON" O+ Q+ w# p( b7 ~6 n
:4
u& i2 ?& E' g# W& {/ oGOTO END& c/ R0 [6 ^6 Q9 o
:5
8 @5 U2 e- B, n& i% A* yGRUB
" E+ t9 P; r5 P7 p:COMMON) x7 n% m7 O( T* q" C
LH \SMARTDRV.EXE /X& C( s5 W( j" s5 o7 [- q% H+ Y
@ECHO Install mouse driver?' P' @0 z8 b: N- Q
\CHOICE /C:YN Yes,No /T:N,6
6 z _& N: s/ JIF ERRORLEVEL 2 GOTO END
9 z$ j: T" O3 l$ aLH \MOUSE.COM* a5 L+ O* G0 {
:END 4 {! Q1 j C& z0 B" @, U
: y q9 U' g. z
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。, a' k0 }6 \8 S2 i4 N/ q7 P
; S" }( E+ h. Z$ s1 E3 M4 e- ~: l
感謝5free和david_ge的幫助!7 }( j2 X" v8 Z8 y2 d( }
% G) f4 X9 ]+ y$ l+ Z: S本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
/ C. [4 q8 M7 X! f3 D
6 U, a" N$ o, H! Khttp://bbs.wuyou.com/viewthread.php?tid=94087
3 M5 q; a6 J: Z5 o& Xhttp://maotao.u.winzheng.com/; i. i( F: I8 t7 O% X
[8 I& C8 p; |5 f+ P# @附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
* R! N0 ?2 ^7 n+ Y/ O5 ` [! Y' L
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
" Y4 ^0 w* @) ~/ D: b* C後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。& h( S( E+ H1 V, Q' l! J
6 Y0 P. p& L8 P; [8 }目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|