|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」* y- S' u- u+ m$ a0 b5 e
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
, ?3 F. H$ N6 L8 K" l/ J
! @# [ t- z4 Q$ n" o' X0 p, N! u
+ u$ }! i$ G# x7 C" R* r沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。1 [4 j+ {# e+ U; }9 R v1 `5 P' F! R
) g% d1 k9 K3 B3 [% M
前緣:
* z: i$ R9 b% y2 ?, B9 X1 \. ^' a" p+ T6 q9 q% a: e x9 ?
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
8 i. o0 p4 v' }, [4 a4 e+ M) L2 ]
目標:- T3 X+ T3 s; b
% |6 U+ c/ ]/ ^ y$ R& Q4 D& ?, B& z
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!3 }/ h7 @" L* {! b5 A) {8 r
7 ?2 p% w5 X6 o5 A" k' L技術背景:
/ o0 m. j5 M% z5 v; g
5 b% U. d7 M; C. G: Z2 S其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。 z* z" l/ _, J8 l
+ k( {5 _; B, {) S) ` c& E
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。+ G |5 d7 v6 U5 Q" w
7 v2 a+ v. H# H \% y! I因此完成一個操作系統的啟動,- r! M* n2 }( C, w/ U4 A- m3 a
需要兩個必須的步驟:1、MBR引導;2、OS引導。
4 p% S( v+ S5 t A, O) S3 C4 I; U( ~$ o( A. e7 g3 A
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
! t* O1 t. l- E' j+ B) O# F- G2 ^+ f" S2 B9 F/ K) ]; D
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。# s W7 T5 f) v/ l$ u& l- t1 Z
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
, ~$ B/ z# Y+ ]/ {5 L3 V& l" s# H. m2 r' J+ U5 ^' I
OS選擇:/ Q$ l9 U% Z8 l( G. ]# e8 b' p8 P" c
8 K+ a! r4 L. T/ e) G( V# |
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
X1 s+ b1 F+ R! t% }& U7 n
& J" M5 \5 z( Z J方案一:NT Loader + AVLDR + Avlgo
$ V8 L, R1 A7 X# g1 }
2 L5 Y! X1 q6 ^6 L4 gMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。- V4 B6 F5 H8 u |5 h, @& z0 v, x
5 \7 h7 E6 e* {$ i; v
工具準備:+ R# M( l. |7 n2 o4 M) X4 s
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。5 N2 k+ F/ @, ^. E+ O: R2 I' z
* C! h( @# L5 i4 ]) }* D* f) j7 J( J
數據準備:5 E8 W% ]$ D) c: d
e& c1 O9 j" Q0 Z- _( J0 X1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
7 H% t% y7 ]- r
' { o5 O! Q8 @! c+ U, l, {* F- v) w3 h! R! R6 a
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
# p9 X6 N8 Q5 {7 u8 x% U) j# s0 n! E6 p$ X3 O1 t( z
* @% n( a& n' c0 `. o1 A* ]! o) D; B
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。3 \0 g( n/ J3 i9 q
, [# C1 O/ r O4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。) |. z7 q, @5 m
/ n: A+ y& o+ y: U1 i5 Q
; e5 z) ]- z- Y8 W
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。5 j8 I9 y1 J+ D# N
$ P* ^9 y8 R, W3 F7 F" v7 p8 ?( A
7 Y# A, T) `: d
2 u. K6 R) g0 \; e7 l: q3 b& x開始組裝:# w1 e7 j4 l7 c5 ?# g8 z
8 s5 [1 W4 A0 ?6 L, o; F% Q; y1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:: |7 e; ?' d9 b; s; Y
[boot loader]3 T/ g# D. _; f; q5 b
timeout=305 i1 Y" \' L9 G& s4 W
default=C:\avldr.xpe% m R+ s, `- C4 q
[operating systems]
! j. j9 m* I0 L2 c5 ^9 o! MC:\avldr.xpe="Windows PE ByaoMaotao"* d# }# k7 ]! k/ B' K' p( i
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
$ `# N1 c4 l5 F7 k, hC:\avldr.dos="MS-DOS 7.1 from USB-FDD"
3 E9 d( V( p6 s4 _/ w完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。5 h# r: k, P" H; d3 O
! q9 l* @5 X! U/ A這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
) E+ v# a% p& e! T1 T. r
2 h+ X" P* u: k4 d( o2 `[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。) M( h+ e* m: W4 h+ b4 H
0 h' S" h% O$ _5 `" l- k2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。1 \/ U5 `5 ~. k3 z
6 e0 x" |7 _, m8 @$ M) n4 \
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環境下。9 D& R# i. v6 R; {5 i }' q5 s
/ ^. P, ~. c6 t# ~" W3 ?5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。& t# y! Z( K5 v# R0 T
% Y) v: W6 s# Q, ]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環境下。
) A+ j7 l, d6 Q5 H z- o$ s1 q4 L7 W- D# ]: b
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環境下。, T* M$ ?9 O6 H& F s* |1 s
* x, Q; N; | H' Z. S; f1 A
至此DOS/WinPE雙啟動系統維護U盤製作成功。
9 C6 ] L2 [7 f0 I& f1 R9 g+ W) w1 e% v$ }
方案二:NT Loader + Grub4DOS* c# ]( O+ V0 k. W8 c4 G- T
8 W; E. ]6 u6 H/ {4 A) t
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。$ P0 j1 o8 t9 \3 {/ M6 t- }0 d
. _4 J1 e8 d( Q4 N( q' K1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
3 h2 M' a3 i. S! k; ^2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
& x/ p7 h( d- j6 w8 a3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
1 v) o& `/ w' z[boot loader]
. d7 W# J5 y/ E Qtimeout=01 s1 N( m: L& j( M/ D/ n
default=C:\grldr! j) j7 a" A# s! u8 \6 H) s1 s0 Q; I3 f
[operating systems]
& k" B- K, L# y& sC:\grldr="Boot Menu"
2 s! C9 S. K/ X! k; w) EBoot.ini菜單各個項目的含義請對照方案一的說明。0 Q7 p2 B" N$ w6 t
. u2 I7 |6 z3 k; X6 R& H
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
) U4 }. Z4 X' B/ I2 K9 M
8 J1 O( P: y; \) Y% O5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
( r) J' {3 ^0 F( d! k7 i! ?8 V: C6 A& H( k
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
/ A5 N" P2 i5 D: o- c3 j" b" l0 i$ x% L3 r
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:1 z+ Q% m Y& D/ J1 w
timeout 30
# H5 _5 a& _, x2 l+ Udefault 0 N6 G" A7 X8 C. W) r1 X
splashimage /boot/splash.gz5 x; C3 a; r$ R# d# ^
foreground ffff00" @. q8 a; N: i1 Y* s
fontfile /boot/fonts.gz
4 o9 W( E) w7 \/ p$ |title 啟動 WindowsPE
3 j; m: x* K* H; }0 Lfind --set-root /grubidx.txt
: f# R- ]! N9 wchainloader /ldrxpe% t6 w. D7 W! A& Y# x
title 啟動 MS-DOS 7.1
: \: O2 j, ~- Efind --set-root /grubidx.txt
; \3 q5 K8 K- W. ymap --mem /boot/dos.ima (fd0)/ ^7 U$ u. v+ [/ }( E6 m% u$ y
map --hook" ]; \4 c4 ?2 r, U
chainloader (fd0)+1
1 {& z3 H1 W) [. c0 h6 frootnoverify (fd0)
8 ?' T- H& M! X, r" @- [做完這些,U盤就可以啟動了。
+ r4 b& W- R/ J; d/ k$ P
' z3 g9 r$ d$ @5 v菜單項目說明:) S0 L4 ]5 E \ H3 b ?
5 x! p5 r2 W0 ~) C5 A- \& g% p第一行設置等待30秒的等待時間;
; f+ v0 c. x$ W8 R2 b/ e7 j
: D+ q+ g# l9 J- i) t* s% N6 u第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;4 x4 [& O/ G, `
D6 r- O. Q" Q( c; T% k; Zsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
6 _: v8 P( U: o* s
. |- f6 X1 n5 f$ I( ?) }( F2 G* ]foreground項設置啟動菜單文字顏色為亮黃色;
6 F4 T( S& N! L) `# m0 l- O- i1 M. x! ^9 A6 v# }/ v. b
fontfile項設置中文字體文件為/boot/fonts.gz+ s. `1 ^2 \' g. a' Z. F
+ F: l% x) K5 x4 r$ V
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;, T5 x& J L+ H; X1 H
4 o( i9 P1 q7 L6 h5 e
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
4 {$ K Q1 Y6 W, ^
8 o2 l' \0 A' Z% Dchainloader /ldrxpe就是啟動WinPE的XPE鏡像。. ?, x* t3 P& b2 O) L
- e/ q% O. e' w& R( b. X3 Amap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
" p" t; ~9 u* N" ^$ ^4 j- I1 o% Q5 f. q+ J) B0 h- f8 x
map --hook是讓裝入的軟盤鏡像立即加載生效。
$ L- s3 L. F7 u/ W1 v2 }2 ^5 z! W! [2 G
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
7 E& n. M5 D6 n+ }# E; W- L1 x) N5 a. I8 J
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
* `5 I0 P) Q( C0 U$ S( H8 M! n0 W b5 s* h! v
$ S/ K: k0 Z! p- ?5 J* H
方案三:MS-DOS 7.1 + Grub4DOS# Q9 W) e/ \( U
% }3 {- r8 M0 }$ o( W5 U本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。! x Y: j5 {4 n' P5 a
+ u+ h$ r2 L) m d& m8 x* u本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
' x9 R6 n# I7 e9 A6 O# d9 j7 p* K2 S# ]% a1 @
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。/ O! y# X( Y+ j/ [
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
2 x1 U1 b8 N& v) F, h3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。 B1 O \* s. g, J, k& E
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。. H' U1 g5 h1 Z- o2 g
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。3 t3 E6 Z8 ^- O8 x! |7 v% u
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
/ }6 T1 c- j, v/ i1 v0 Btimeout 0) N, ~3 i G& K- G
default 0- Q9 N1 F4 K" p; Z2 i: o* }
fontfile /fonts.gz
4 S& R( b7 s; W N& a# G! gtitle 啟動 WindowsPE
7 O0 M; [% M5 W( d2 {6 S% P6 Mfind --set-root /grubidx.txt
' N2 h+ s0 x( u/ K" Z3 |# f. f- |* Uchainloader /ldrxpe
6 T$ X' v1 g& U. k/ P* O7 I在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。9 L3 H2 r3 o7 x5 Y1 B
! o( R2 J3 f( n' C' g7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
0 {* |2 z) X& J$ H4 m* p) q% X6 R
) E6 `) N9 Y3 ~+ R2 J# u* sgrub
! n5 J5 ? U" n1 Z& Q
}7 L# U* D. o C* ~ M9 [這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
; R- c1 a ]1 q' f) A/ A) M( v- }6 `( f/ t
Config.sys內容:. E$ s/ g' k0 R' a* _" _1 v
[MENU]
- c' C8 {2 }( o9 E2 ^MENUITEM=1,XMS without CD-ROM support% v! Z2 v) V: ~5 G
MENUITEM=2,XMS with CD-ROM support
9 k' {" F7 t1 \MENUITEM=3,XMS and EMS0 P9 @0 o. y9 j4 l# Z; S, u9 R
MENUITEM=4,DOS real mode(no XMS,no EMS)& r$ R) }9 S5 P# J. u& k
MENUITEM=5,Windows PE
8 B0 u2 o. j: P- N$ s& LMENUDEFAULT=5,30/ T2 T7 O( O8 f8 H; w' V
[1]' f! {% Q5 d' S- U1 b) n
DEVICE=\HIMEM.SYS /TESTMEM:OFF3 w# [: J6 V+ p0 H* r' O
DEVICE=\EMM386.EXE NOEMS5 S5 `% c& o- J# F3 T2 [. T' r" s
INCLUDE=PUB, b s4 I. u+ Y
[2]: A" K$ a6 J9 T# p4 C
DEVICE=\HIMEM.SYS /TESTMEM:OFF9 R- l6 ]; ~ j9 ]. w1 X0 p9 h# g
DEVICE=\EMM386.EXE NOEMS
, k* _5 J! ?5 j2 R P* P+ V' cDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001# s1 M9 _/ f s1 n6 g5 W
INCLUDE=PUB
' W0 l' f J6 ^% Y. s" Z6 [/ M[3]4 ^( b, F7 G0 n
DEVICE=\HIMEM.SYS /TESTMEM:OFF9 i/ O1 c& j/ ]+ C% j
DEVICE=\EMM386.EXE RAM
* w- ~/ D# C' c0 A$ G+ g' J. |, ]. j0 j1 VINCLUDE=PUB2 J! t( T f& |, w8 x
[PUB]
4 h4 ^4 Z/ m0 V7 C/ J/ ?. _DOS=HIGH,UMB
3 i$ U% q/ X% x8 ]/ J8 \FILES=30) r$ R& \; [/ e* M5 F$ g1 |
BUFFERS=20
1 \6 Z& @" m N( |% h) w% hSTACKS=9,256 O& A4 X) K7 G$ Y: S
LASTDRIVE=Z
+ u* ^7 |1 d; M) t[4]5 x3 e S2 {9 L. |; l3 d5 _
FILES=10. P' p0 Y [) C$ i, t+ w
BUFFERS=10( X+ k( \) l$ M) @# p
LASTDRIVE=Z0 { L6 |) a, T% H0 \( g- d
[5]
7 s9 q1 u- R. j/ T% MAutoexec.bat內容:3 R: K5 T+ u, k" V7 C1 R- N7 Z V
@ECHO OFF
! Y& @2 c) ~4 e5 v) C: e7 bPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM- a$ m' s* [. ?, x
GOTO %CONFIG%
4 r+ \% B9 K1 [$ k1 P- q9 b2 T:1
) K* T! W- \3 C' ~, ?7 cGOTO COMMON
7 @: J3 R4 F% u- X:2& B7 b+ g, B, N$ B! `# N
LH \SHSUCDX.COM /D:SSCD001
' g& \3 K3 j- c) lGOTO COMMON
" {! n" S$ c; t8 z:3' d7 z8 `* N- W0 i8 `0 `
GOTO COMMON3 h' W1 [" |& [4 b: ~5 b& \
:43 c& ~+ C+ ^& \& J* l$ v0 h
GOTO END% ^- R) w6 C$ U" A6 r3 w
:5! z- K6 @! W0 S* c( {
GRUB
, O$ [2 m- d9 ^2 w% R:COMMON- R; J: c9 o% t/ p+ x
LH \SMARTDRV.EXE /X" H. W! b7 [% R$ a8 U0 D! e
@ECHO Install mouse driver?0 s+ O7 L( {7 ` G
\CHOICE /C:YN Yes,No /T:N,69 q+ q3 c# _3 h1 G) N+ c+ A
IF ERRORLEVEL 2 GOTO END
: p7 K0 ~- k8 I* u% D5 yLH \MOUSE.COM: [2 ?- N, v" j" z# L
:END
1 G- _9 u6 L2 U5 `7 U) j! c. k) ^- n, T& V0 u0 S
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。- s1 K7 s$ z. d* Q- c
9 G6 u, y/ f% L# o. p感謝5free和david_ge的幫助!
, U0 w3 Z2 Z# M L. i7 M6 {6 ?
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:% x/ H3 s8 Z7 v" d F
$ g; a4 r+ Z/ m9 o* T) k5 phttp://bbs.wuyou.com/viewthread.php?tid=94087
9 a: S, M3 T! ?" shttp://maotao.u.winzheng.com/7 k* {; k0 y/ R1 f6 \, f' D6 @
& l- j3 |3 [/ b; O( g, N3 S! {附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
, n7 ~1 C7 \0 ~- e }8 j {
. P) r% K$ X$ h( J4 T1 g8 ~最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。4 O% Z0 Y' ]/ m* `& S- {! t0 j& q, U
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
, s- k1 P# v a( x" {( H& J) @
1 A6 s0 P1 Q' O3 d5 w目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|