|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」; [% \5 `/ n7 P9 Z% a4 `
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html, F# ]$ g" z# V6 t5 p
& P" j9 u' }7 G- M# l3 {
0 k9 A$ U: |9 ]沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
# h6 k w9 R8 g9 o% s9 J- S% h" `; E u) B/ `: Q4 Y
前緣:
5 C# \8 \3 |# U5 ?# i. z& Q. z& z( A1 z y2 K7 K. ?* i
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
4 y, T+ r+ ^+ {
; n9 I5 {0 J O目標:
! t+ u7 |7 S, u' W, Q* L4 F$ X( m) w4 u% _0 d5 h
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!6 h+ I4 \. r9 X6 B' R: `
: ?: ^' f; ?( C
技術背景:
0 @5 F% n% h/ Z/ m, ~% d9 c
. \8 \# c! n/ Z) i* K8 F) a7 A8 t! s其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
4 C- g+ j% B# \2 a8 X& ^/ h2 W/ G+ P) s7 p. M. H
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
/ v6 K2 w" F2 A' y, U3 z0 k8 m0 a
7 ]2 ~ f% x$ V9 \+ A: R因此完成一個操作系統的啟動,
* L/ B" p: c% P/ l M3 A" ^2 ]0 F需要兩個必須的步驟:1、MBR引導;2、OS引導。+ P- K( l& y3 C" }( N
, w& w- q* _# Z
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
! T0 k8 g4 s1 Q) Z k2 \( P; E2 o: c& `
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。# q1 Q8 v' Q# f4 U4 f# L# ^! r9 l) I
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。+ C6 @4 G5 s" R5 W: e: h+ i) o+ q
1 b) w. @- z. Q; r5 x; h
OS選擇:
, G( S2 Q+ R6 o
" d1 t5 |4 ?3 k9 h. m* DDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
7 a& D, P9 x) y& Y) I4 Y
& U: }9 F& h9 h方案一:NT Loader + AVLDR + Avlgo
- V+ F$ a& l% D8 T- S5 Y1 E4 [/ f' e, C7 K5 H8 k
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。* b' c0 p8 u- `
+ o- v* C8 i1 w/ ]工具準備:
0 R% I. Z* p" g) c/ f$ u' B0 ~' ~: \PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
7 e( ^9 ?& F0 q5 ~ W( R* y' c
6 a+ V6 \1 {& |8 v數據準備:
9 Q) f( p" H. G2 u" ^1 f
[" a2 k2 T9 E6 z8 q1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
! f+ i5 g( U. n# _, z7 ]( p1 _% o' {4 m# K
& I0 ^' h1 R4 O2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。) Z' d2 |6 S# _! k: d( y" W! [7 m
0 b& O8 w. a c {/ F# T
) e: f- l$ f; E5 e3 W. W
; k! e( X# G2 y, ?8 g3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
1 q; Y% `6 Z7 n1 M' ~6 J( q7 }( h$ d! y1 V0 B$ L" f7 A
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
$ X5 ~: c% K) ?. G- Z! y5 t }* O# q
' _2 n9 u- _! A" \) k* w8 [5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。3 l& F) ^3 K3 A# g1 L$ ~' B7 R
- c: X& w) T0 X# {
! _' R* ^) W; m* V- u' j. n/ {4 \( s( e& G9 N4 o* S+ p1 v2 @4 W
開始組裝:" r _$ z+ k8 y% M) h
' z; B- B5 U7 {# `; O
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
; f( \' U8 P9 n8 [+ l& D, @[boot loader]* N' F; k8 v$ y j6 L; L6 R. s0 ^
timeout=30
6 P; `, w/ Q" D U4 gdefault=C:\avldr.xpe( ?7 v- b# a, X: k
[operating systems]3 N, r. V( P4 U4 H# F7 O( A8 a& y+ O
C:\avldr.xpe="Windows PE ByaoMaotao"8 I, O2 v" c) w+ A
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"* _% @, z) r( I! q
C:\avldr.dos="MS-DOS 7.1 from USB-FDD" 4 C3 w2 L3 \8 r
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。' K7 n# f) x k4 d) J
2 M: y( |6 Z, H/ b; f
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
: w& z8 V8 S0 S7 n5 _2 N2 N5 G6 N0 U" }" O- b; q. M
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。/ { R, p9 q4 ^: X: N; r
) P; Q* k: X, [
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
* s, ~) h3 e2 R; l* L% N* Z9 u3 p
1 N4 n7 u+ g% q' a% _. R3、把下載到的老毛桃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環境下。
" c' H! L7 ~( e( y" r9 A5 o. {
. P: ~- ^+ K ?1 h1 m! G1 O5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
' ?9 { n8 A1 c- C- u) ^" ~+ e- S. \: `% }
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環境下。
9 {7 f' Y! @2 v! ~9 h8 r& |& P9 q% T8 y* m1 s1 v3 U; S
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環境下。/ j! p, y: N7 A7 U2 `
% n8 B. v% i4 ?7 c: C/ u至此DOS/WinPE雙啟動系統維護U盤製作成功。6 \! k* k# J, ], _ _' T+ h
" U7 a" j- }; `/ _3 e6 I
方案二:NT Loader + Grub4DOS
5 \0 |3 ~6 o. e9 R4 D' `" y; V! H( K' D$ a
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。* y& e0 }2 h8 m: m6 T
1 ]0 Q# K- L8 l1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。+ L" C9 v' ^$ r% x/ I! s5 C: `( U* u
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
% }3 j; C9 t* q8 S9 k, x2 K3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:- L9 g3 j2 I. U7 d k( N) I
[boot loader]
3 k1 P/ u! [/ C( `timeout=0( c$ _' H8 @% h; {
default=C:\grldr
- m4 T4 a& i5 P' m[operating systems]
; P3 N+ F0 O7 ~9 u, J, Q$ F# M& I1 l5 MC:\grldr="Boot Menu" + A3 n: G+ t4 }& Y$ ^0 P) `5 R2 R; f/ H
Boot.ini菜單各個項目的含義請對照方案一的說明。9 j3 \& f5 l2 t5 A: d! P
6 y. C$ w1 `& h6 U B4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
5 C+ `0 ]. p: }; x, P6 L1 E5 P4 U1 l* O( m/ b
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。# {1 e0 K+ |1 X1 v: b
! ], p+ k. g9 c1 o: n6 L/ z/ A. E6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。& a/ Y% A" }4 W! m' f, }' K
9 Q8 u4 d* }3 Z+ J I
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:! T& u/ e+ z- L$ W
timeout 30
2 I4 ]. l/ n/ ]! F% kdefault 0
5 `$ V7 c2 N$ @8 ?5 ssplashimage /boot/splash.gz
% T: ]0 s' z% D( d6 \foreground ffff001 u& m( `4 [! x( u i2 C0 B
fontfile /boot/fonts.gz& l. G2 I: l4 `. L% {$ ?- `4 I
title 啟動 WindowsPE
& [( ^0 M! Y7 m( j4 [9 u! F# ofind --set-root /grubidx.txt6 |5 Q2 Z" @ _) }, ?5 Y. J
chainloader /ldrxpe2 J3 t" O, G: b" v0 F, G
title 啟動 MS-DOS 7.1& a$ T5 ^' ~/ s2 V
find --set-root /grubidx.txt
4 _% c8 s5 Z. W. mmap --mem /boot/dos.ima (fd0)
' |+ a1 P6 n8 r! Y) f* nmap --hook6 o* A( j. W9 F" ^# [
chainloader (fd0)+1
( S% I! V! l. G0 p; [1 l' _9 ?9 Trootnoverify (fd0)
5 z) s* ]. t2 Y# i4 I1 | w9 E做完這些,U盤就可以啟動了。: A) D9 T6 `) [
3 C" p0 z) X1 G
菜單項目說明:
; i: M. M; D6 }% h/ g2 h
m$ H1 D5 `( ~9 v( P' D第一行設置等待30秒的等待時間;# |' U. n4 Q- F+ Z2 k6 O$ L
( M* p2 r% K a8 P) }9 n: O
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
( Z5 U8 x& I0 v3 W# _! Y
% s7 Y# q. Y( V5 {% v! v' S7 psplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;0 f& t9 Y- x8 Z
2 l: D( o6 n4 a' s) o
foreground項設置啟動菜單文字顏色為亮黃色;8 \& w; t! U; i% ~
4 Z5 d7 N$ D: H0 U& O% N1 w
fontfile項設置中文字體文件為/boot/fonts.gz
! ?) q2 S4 i1 R* t6 z) T# ]' x) U' M" P! Y
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
; p& j9 V2 |/ ]: p) L
/ j3 N7 k- J8 w: z: V6 L1 ffind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。- i, s4 e1 k7 e' L! f+ P) t0 p
# O$ m: J1 b% `3 @$ `" hchainloader /ldrxpe就是啟動WinPE的XPE鏡像。
9 U- K* s3 v O/ T' e: N: v( @+ v& |" N$ x
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
u1 K* i& ~! P1 {: s/ g T9 @7 F0 ?0 I$ X. J# f" N: F& b
map --hook是讓裝入的軟盤鏡像立即加載生效。
) k" B: z" g- @: `: s; Z
% P4 j0 V9 n) I; h; O' Z) Z: Krootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。" C7 q, N7 b) y: @, B# [
% v: M# U; `4 L% J; s
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。$ Y" i5 ]: m' V8 g g, {' w+ |
; J& L" N. \' ~9 i/ V. \- u1 e# Z* S
$ B) @; F8 P* I" |3 k5 A方案三:MS-DOS 7.1 + Grub4DOS, h2 M' X) w/ U7 U, x, r2 ]" Z
l" [) U; u6 F, t% ^8 v& L
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
3 q% h/ A: @' y0 I* w) ?0 B
. b0 v7 n9 ~) j! r; j4 Z本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
) A2 K) H3 _2 I2 k d: Q7 w& s
* E8 H; D# n6 y; p2 g1 C1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
: G; Q7 W, Z0 R7 c6 } h2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。0 Q# x2 a. S0 S$ h3 N2 G' v* B
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
4 _/ i0 n; j4 _( y4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
" d# }1 U9 l. {2 j% E% c5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。. H/ ]3 L0 T/ c( v2 l9 W
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:$ k, _" D0 t" A8 X. k, Z1 W1 M* ^- d- U
timeout 0# s9 m1 v# B, g1 [+ y- G
default 0
- l9 A/ ?: k+ w; }" V! D$ O& ~. f& ^fontfile /fonts.gz t& C& I+ B- N" y" d
title 啟動 WindowsPE
; d0 ~; E0 x# l1 J6 p4 hfind --set-root /grubidx.txt
9 Z' C" e) D# w4 z7 y$ ychainloader /ldrxpe
1 V9 j8 z7 K5 `2 P2 c3 f) c在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。6 l( k/ I; }/ b. W1 T, b* H E- X2 f
5 {! \; T) P) o3 K1 ?. M
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行: Z# Q0 R4 V- U, h5 ?; ^4 R
! e3 ?/ Z' [2 a9 _
grub
5 t v8 T$ ]" C, O8 f n8 N) {/ v0 k+ |) z; \6 v+ u
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
* ?; H/ q2 H4 r% k' k/ H$ p! h8 ?
Config.sys內容:1 K$ O- A+ i" L1 n8 Y5 k: e9 S
[MENU]( _9 f- I; \7 w2 B- }+ }6 J; |
MENUITEM=1,XMS without CD-ROM support- F( I q7 A* L/ Z8 A
MENUITEM=2,XMS with CD-ROM support# r! h, x: ]9 e- \3 r3 L3 l* k
MENUITEM=3,XMS and EMS
4 l# B' M' k1 s9 J1 ^MENUITEM=4,DOS real mode(no XMS,no EMS)
. w/ o2 q8 v {( Z. @+ H2 ~MENUITEM=5,Windows PE1 [: u/ J; M t; S
MENUDEFAULT=5,30. _# Z1 w. F4 u& @, X
[1]
1 y# i* C% N4 {- ?' {" h* [DEVICE=\HIMEM.SYS /TESTMEM:OFF
4 w2 {+ b2 k( v( b# x+ ^DEVICE=\EMM386.EXE NOEMS
' J, R- _$ X$ X5 ^INCLUDE=PUB
1 X' h- h ?# f+ h) P z. _( v4 }( u[2]8 P# c# M- c/ U0 z0 |2 `
DEVICE=\HIMEM.SYS /TESTMEM:OFF2 [. C y5 Y) e4 i) C2 l2 V
DEVICE=\EMM386.EXE NOEMS
& V j/ k. q7 Q* l1 c7 Y) J1 }DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD0010 y% X( I1 _: x$ G: L0 b' b
INCLUDE=PUB
% K" D7 X# X b) u- b[3]
; p+ m# ]$ H; RDEVICE=\HIMEM.SYS /TESTMEM:OFF
& I; G5 j9 x: Y4 [: h2 fDEVICE=\EMM386.EXE RAM( ]; B9 c/ C* }4 j: g2 S
INCLUDE=PUB
2 O5 I* {' T4 s6 z[PUB]
& |! N; W) ^ h# k0 c- D( ]' o% Q1 FDOS=HIGH,UMB
) U/ [$ a; ~0 b5 JFILES=30% W1 g" c2 h) y/ w7 i5 [
BUFFERS=20
. F2 p- [7 K6 Y; m1 B3 R4 c9 SSTACKS=9,256
4 B* R# U1 _- P, X" O- `LASTDRIVE=Z
. q* s) J- k! B. c[4]
% H/ n9 I& z% a: yFILES=10: r5 l4 {/ X7 b$ O) P
BUFFERS=10
2 R; s. V& S, B f' n) }+ HLASTDRIVE=Z
$ d4 E( n& S7 W[5]# n' b; w5 P: ~/ ?; ^/ O
Autoexec.bat內容:
. U+ ?' B% m# r7 ?: i! b* Q@ECHO OFF
4 c) a# L) ]0 r9 j6 ~8 c* OPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
4 }6 u/ V$ p: x6 ^* cGOTO %CONFIG%
2 C4 U! e+ R9 `8 f) m4 a7 q:1+ ^" ]: Q# r" i! d
GOTO COMMON
+ S9 t) |0 C0 l/ N8 t:2
3 A+ g& h/ s7 h: S: Y9 FLH \SHSUCDX.COM /D:SSCD001! |* z3 _1 h3 ]7 \2 ]
GOTO COMMON
& e" K; f# E# d0 h: o" F+ ^2 ]& c:36 L( r" y) D. f! O/ B9 T
GOTO COMMON
# a$ H' D) F9 W- \8 w! v, K8 A:4 [% Y6 |/ b1 w7 W- M: z
GOTO END
" ^& }; d' X. l5 @# S:5* o1 \% P6 q& W0 n( \
GRUB
9 D) a. s$ @4 | x:COMMON
' z1 j5 f3 \7 o6 q4 I7 ELH \SMARTDRV.EXE /X# M, b8 {* Q* q) i
@ECHO Install mouse driver?0 c8 q: Y" U5 V4 T. s
\CHOICE /C:YN Yes,No /T:N,6% j: T; h7 b- P/ E; U6 d
IF ERRORLEVEL 2 GOTO END
) B7 x, M! T, O1 N6 P0 V0 uLH \MOUSE.COM. z2 u j Y, H
:END
, ^# i$ L0 p+ s+ Z6 P5 g$ u. i) y. t0 q& A% K
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
9 E& i2 c1 H1 g3 v$ c3 s) f7 z- o2 L3 M$ ?! w& c, e" _
感謝5free和david_ge的幫助!6 h, s [. v" |" r/ B
7 j! m7 r& s/ R& h0 g本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:% H ~4 }" N$ x5 Z4 ]0 i' a
% z) u. O, G6 @+ i, z; w6 V g
http://bbs.wuyou.com/viewthread.php?tid=94087
( t* ^7 W4 x6 V; u ?" shttp://maotao.u.winzheng.com/
% a9 t5 W/ W6 A! I4 G5 e! w- m# Q6 y; F7 e
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。- w4 |! Z) ]# `( V# c
" n- `3 s+ w/ h H
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
1 X! e4 l' P. j- J }' j後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
* S- A4 V* P- b5 K0 l# W# ^$ P; O" L3 d( b8 k0 s. U# }
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|