|
轉載請註明出自「 Zuluck!- 運氣論壇!」9 g3 M. ?# N6 _ @2 Y
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html; R" x" {& `8 D- ?( N
# W6 V1 H ]) F
T1 N4 O( b9 S8 t9 Z沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。( o! D' t" S3 y. Z( y
4 ~( \: v0 S5 H- o: Z
前緣:
4 E3 P. s/ \) t$ |4 t; }2 j! @5 X5 z0 W- ]7 v* U( N' V% i
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
" q$ p6 |) v& b+ H' l* z- Z0 ^+ I5 ?1 K( g
目標:
; `9 |+ T; \- F
3 o2 U5 w6 `- N' b3 P對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
5 F8 x) ~$ |! d- q, Z9 I# @# m9 i+ ~. q, F1 R W5 T& x
技術背景:5 Z) p) \5 ]/ Q, ?
) a: c2 @2 h% \3 p% Y
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
* A" g$ A h$ B X, B h% w( ?; q% ^: N4 L m. b. M- w8 b
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
; p. S) I- y- T0 x3 \" G
* a% Y4 U. m/ h5 C. @: z* h) ]因此完成一個操作系統的啟動,# a( E, S3 m: L* A0 D
需要兩個必須的步驟:1、MBR引導;2、OS引導。! C+ A a% w9 M+ T3 C& [" a
w, u2 ` C/ J( ?+ `3 a基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
' W4 E: y9 Q9 U+ F
8 {2 O6 y" e: K G3 A對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。6 c. {7 \! h) y
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。: B3 Y% c& W; V7 \ @; D2 ]
: U. Y5 V: g+ i: a, Y6 V$ w
OS選擇:
+ T) |- Q) M% ~2 ?/ q. D
6 Z! u8 J+ i0 t# Q+ {! WDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
2 q2 t" L& G0 u3 x$ f+ F8 F* T- b7 c* L' s+ N
方案一:NT Loader + AVLDR + Avlgo
2 Z, I' m$ H$ x. y, C9 ^7 |. [% E' n( U8 |
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
! K: b) U6 H. B9 ?7 J2 \9 d) V" Q# b% _3 U. ~% I
工具準備:
, U/ O9 Y3 U4 m9 Z* @; J# S* MPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。) `! V# Q `4 [$ w1 |& T }& e
; z6 W/ H0 A1 i) I+ x/ W( b數據準備:* ~3 E% T% c9 B4 r
. @" F7 d4 h" @' U1 M1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
. L# @! c( ^0 _# r/ S* r
0 \' Y* A3 i: K6 z; Q$ g8 S
1 y% Y2 M8 r5 |" D, P" a2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
?" B# o2 g/ ^0 c3 q0 ?/ I' O
! ^4 H3 X. ]7 z0 G$ Q- }
o) T& `3 {5 b$ E/ ?( l k
, t2 s0 }$ v6 Z2 s3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
, N/ t/ u4 ?2 ^& q8 ?6 H- A3 b% o; b0 A1 F. M$ G0 O
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
! i1 t! H7 q8 X6 S1 d5 E1 ]( k
! L* N9 M ?) E. ]1 e! u) S! k1 s( L9 ~9 S; q
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
) F _; t' x0 J
/ e! J( Q: G9 j2 g' R9 s4 w6 V* z+ R3 d1 L3 U. l) S7 C$ ^, v
# b5 f4 n+ Q; o, B
開始組裝:
& e) w( w9 y3 Q! W9 a1 s, Y' Q; N/ Q! G. u1 _0 D7 t7 d$ |
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:: g5 e% M/ J1 w% Y
[boot loader]8 }% @3 p* W4 B
timeout=30' F" n" B8 E4 t1 ]
default=C:\avldr.xpe
4 t7 l6 u7 V7 k8 e$ ^[operating systems]( @0 K, k, G9 P* \& K
C:\avldr.xpe="Windows PE ByaoMaotao"
: K# P4 a/ W+ J5 Y' X' D- J: \& C% SC:\avldr.bin="MS-DOS 7.1 form USB-HDD"
}+ H0 Z3 ?! l" v8 uC:\avldr.dos="MS-DOS 7.1 from USB-FDD" 8 T- ]) q7 [ n. L+ R: x& B
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。& K- Y' v/ R* _! }2 L% P# A7 S
; v4 C& D0 ?8 g這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
0 `$ J8 N5 s) l# Y+ P" T1 e; o3 x, U$ o( p) X4 P2 N9 ]+ h6 Z
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
# Q; q8 d' ?3 Z* `- ~# O4 e4 |0 z! s* ?) t1 ~6 ^
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
3 ^- l6 U- J$ P* n8 K- Y0 v5 M7 e; b3 R, F
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環境下。" I0 b; J5 b x3 h5 q& o1 \9 m7 R2 w
% ?, j- I! ~ h& g7 V9 X
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
7 e: @7 W$ t7 D
+ i$ B6 v0 p9 N6、把前面生成的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環境下。' N4 W" F3 f1 v- X7 P. |# F
& r1 S# B X1 c0 U7、把前面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環境下。, p) y0 N% L0 B
4 ]. W! v, I5 N z3 N- I- G: k
至此DOS/WinPE雙啟動系統維護U盤製作成功。
- v& j6 k9 r# f$ }+ z3 {" }' y8 {. l5 {4 x J
方案二:NT Loader + Grub4DOS
: a- D+ ?8 C5 l9 v6 K& f4 s
. ~ a* J1 p) E2 b因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
5 B( i2 f$ ?5 Z5 L, f# y& }# {' ?8 }1 A
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
+ j6 i: s& Y# S& o( R$ o2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
( @/ L a$ y8 J) m3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
6 a9 ^6 c' u: B; _[boot loader]
3 G+ W' ?* t0 w4 utimeout=0/ ]; ]! { O: {. l+ N& [7 x2 ~) H
default=C:\grldr
: U8 r+ F$ S" g% u0 K3 |2 u[operating systems]
$ Y' M, }4 d$ F8 m( h% u" K' ]8 }; zC:\grldr="Boot Menu"
. `" G* } N. w oBoot.ini菜單各個項目的含義請對照方案一的說明。
$ |- i- |4 E' |* U, r* O# Q9 x# W) H8 S; M
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
: N5 p/ P! l0 \ L4 \9 `( D% s0 R4 Q. j( ~8 ~
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
$ ]& }- }/ X: G( [- w9 {; f7 P# a) B9 q' T. p' g6 B- x8 R& s% q
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
; m' d3 ?0 Y/ }8 Z% `7 {# u
5 s9 @) s/ E; l3 j- i3 @7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
- L. H: T% |; Stimeout 30& Y# {1 J2 Y. U' i, q0 t
default 0
( p" L4 F+ h; l/ N; a8 tsplashimage /boot/splash.gz' O& B- c4 ~& s7 E* ^8 T
foreground ffff006 a0 \7 ?2 Z5 D- I' D
fontfile /boot/fonts.gz G7 ^7 L% P' p, ^+ W/ F
title 啟動 WindowsPE
* v/ P; }+ s: r! {1 dfind --set-root /grubidx.txt% Y$ o }; G: E
chainloader /ldrxpe( v" ]0 H. f3 P3 d
title 啟動 MS-DOS 7.1: Y8 _; f0 P0 L
find --set-root /grubidx.txt9 I7 ^: Q4 n/ j
map --mem /boot/dos.ima (fd0); u# d( `* v( {, p
map --hook
* h* K8 m, ]& j9 D/ U. Jchainloader (fd0)+16 _, x4 L; H8 `/ y) ~1 B9 X3 w
rootnoverify (fd0)
, Q4 H3 B) C6 N/ _8 V4 `# |/ k7 k$ H做完這些,U盤就可以啟動了。# o4 d0 J( ~2 _
" I9 C& g1 ^# a8 C7 f' d
菜單項目說明:
& e" a# U/ Y9 p4 e: \$ t/ Q2 N2 ^5 Q4 z
第一行設置等待30秒的等待時間;) T5 U# A) G& g) }
3 z& x3 ?2 V5 o1 K4 r: W
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;/ M& E( ^* B+ l3 R& R- P. l
% M$ l' L" V0 t" d9 _0 G7 ]- x* {$ Isplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
( I! W. [6 p5 n4 K# h/ _
6 \3 E! F" E7 D A+ [4 g9 Cforeground項設置啟動菜單文字顏色為亮黃色;. u: I. S; ~$ W @6 [( r
9 w; }4 t1 |; {# s0 ?fontfile項設置中文字體文件為/boot/fonts.gz2 H; h7 K4 ~+ W$ ~/ _; V9 N2 I
" C, Z" V6 v; v4 A2 r$ z
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;% Z, Q% ~* ?& I# g- H
- G6 V9 c% p: Z! n) g) {/ v
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
- z/ f' `8 m* m
% V9 C% r7 G0 qchainloader /ldrxpe就是啟動WinPE的XPE鏡像。
7 b9 y) a; h( @+ a
' D; a% z$ `! s1 K3 M5 _map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.1 b6 l; f0 H9 K0 r5 J* W) E
# r3 v( C+ c! d& [9 u& v9 B
map --hook是讓裝入的軟盤鏡像立即加載生效。- A" i: m) T F" x1 y% y( R# n
" [' [. ]- m, Irootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。* ~& g7 r+ k9 k& }2 v% f9 {- U' k
4 e7 H B }0 o& r4 V9 l
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。( M# d2 `3 u: u' \
2 I- n; Y& u# o% X% K' @1 e8 R5 g, p- r4 F- i3 z; I6 \9 s
方案三:MS-DOS 7.1 + Grub4DOS
1 }$ r- T1 I9 P1 |
" g6 `6 @: t# P+ a/ _7 t, A本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。/ \9 C' Q% M5 s4 k% x
5 l$ R5 B0 Z1 F) o- q( s+ y本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。1 z( ], }- l- J. M5 A' Q1 o
$ m# J2 {. m( h: k0 |% x% L) d9 k8 c1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。! L4 n' \9 L" M% }2 m7 Z' @! g& X
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。2 O4 m* S$ J! x
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
0 J3 H/ Z- L7 U4 a& d4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。* _2 ^+ o* z6 I% m% _; y! Y H2 Q, B
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。3 y* B: R* H3 }$ T
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
- a2 b- W' s: T; p( q/ @ \( }" }timeout 0
7 V: P0 L: e) x0 qdefault 04 F3 b0 c6 p6 I4 E# Y
fontfile /fonts.gz
$ h2 u! g% N& |. _& l m) Vtitle 啟動 WindowsPE
2 c ]; z- s+ N Y9 \find --set-root /grubidx.txt
/ M8 t5 R! r- |* C2 l1 L7 _chainloader /ldrxpe 2 Q- a) n+ X9 A9 c6 m; p
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。/ Y8 P$ d$ t! O4 a
$ k; M S: e L6 T7 z
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
# l# V) d A/ I4 ^& Q4 b3 x( K% x' b/ t3 X( h! t+ A$ o2 Y. E
grub
1 G8 Y: B) E( v- i8 K2 e/ ]; x2 q! H/ C' n2 A! K+ ?) _
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。/ z; U" H' W6 G0 F" x2 F/ S6 L
7 k6 E- e* h: d7 g# {- W: I$ |
Config.sys內容:
, b2 g- D2 m# K1 I% Q$ `6 J[MENU]
7 Y/ X% d$ H2 W9 KMENUITEM=1,XMS without CD-ROM support" T# R* p; l/ L7 D
MENUITEM=2,XMS with CD-ROM support0 a, J) D u- r0 ?* |# E# `
MENUITEM=3,XMS and EMS
$ J- J: m m0 E4 K% c8 PMENUITEM=4,DOS real mode(no XMS,no EMS)4 N4 u1 n+ h" I5 R3 l3 L; a$ t* P
MENUITEM=5,Windows PE0 Q- L8 q' L. k' H( O- O
MENUDEFAULT=5,309 @* _2 O, _; @+ B) B4 ]
[1]
: @' J r) U6 g% s/ P/ T _DEVICE=\HIMEM.SYS /TESTMEM:OFF6 ]4 \' K4 X3 b7 }, I' }
DEVICE=\EMM386.EXE NOEMS
. m% J- _# O9 y8 k. PINCLUDE=PUB6 q3 d8 a2 y( m3 q5 @/ w8 k" h
[2]
" A8 E7 [$ E5 g3 h/ C* h- g& iDEVICE=\HIMEM.SYS /TESTMEM:OFF0 f: Q4 |# H2 Z6 h4 ?; d
DEVICE=\EMM386.EXE NOEMS
+ J, O. `. @. a$ I mDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
+ ^" L( Q2 U& S- }/ l0 y x/ C+ NINCLUDE=PUB* O8 S6 {& I) h7 P0 w1 X
[3]( X' \2 Y. }5 m8 X6 a
DEVICE=\HIMEM.SYS /TESTMEM:OFF
- x9 T6 [* t8 `4 oDEVICE=\EMM386.EXE RAM
5 V' d+ t+ [( t% R1 t' k' zINCLUDE=PUB: m- g; |, f% j# @9 j! @ w
[PUB]
. O; g) }& j0 Y2 o6 \: ?DOS=HIGH,UMB
4 G2 l K' e) b5 z9 D1 FFILES=30
7 T( V+ }) I! D1 L3 s2 `BUFFERS=20+ F! r7 B7 L& N% P! M( q3 M
STACKS=9,256
0 m/ A) |% V( wLASTDRIVE=Z
# K2 u( W5 M% K( k+ M, k% ]$ V[4]" g+ v C6 B$ q* h# A
FILES=10: l9 r! m. c- H9 ]0 o/ p* t
BUFFERS=10
8 ?/ x+ \. U6 tLASTDRIVE=Z# J9 P4 y; E/ S8 `" y( m
[5]
6 ~, |* \! d: W& cAutoexec.bat內容:3 V4 n% M* r- c- g" U
@ECHO OFF( x) k4 A* N$ M0 P) ]9 D5 Q
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
& c4 A5 \- W% oGOTO %CONFIG%
, y$ ~* ~# d' O9 w2 O:17 S4 W# x1 W3 P/ n! S8 |/ s8 K0 S
GOTO COMMON
# [7 y3 l8 R6 V:2
# i" \( s4 P4 A MLH \SHSUCDX.COM /D:SSCD001/ B+ x* D; @- J
GOTO COMMON& \9 Y6 `; x& h" Q$ Q& ]
:3
' u6 @' k2 r" s* }, \7 p/ h* NGOTO COMMON1 W) ~5 L" p- D. {, x( d
:4. |0 ~. Q' y$ G" ?% y1 v
GOTO END
2 ` E7 [8 ]6 [:5, A2 x0 Y0 j+ a) f5 m: H
GRUB' r# G6 s3 j& l# C0 }, e
:COMMON
/ H8 p- G$ f9 }2 kLH \SMARTDRV.EXE /X! {1 O: V4 w! @5 u: W3 u# [
@ECHO Install mouse driver?: ~" s! W+ F9 |% ~- t
\CHOICE /C:YN Yes,No /T:N,6; D3 T7 _# ^" h% K
IF ERRORLEVEL 2 GOTO END* u, y S! Q, b; d4 j
LH \MOUSE.COM
0 m! {5 i( ]9 M+ ?:END ! k3 h* n5 b- O2 G1 H
5 i( ?- e7 V! L/ ^按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
) O/ N. o+ K. n+ l& @
& N* V& t4 G' W感謝5free和david_ge的幫助!' H6 E" y) t6 a! ~
5 E' i( d) @4 Z: Z) J& ^本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
. ~. _# d5 M6 |% i, Z% V% }& u ~
2 F3 ?% s9 o) q% }6 ~, H# N6 Jhttp://bbs.wuyou.com/viewthread.php?tid=94087% N5 ?# ^3 x7 e1 ^$ U2 k4 H7 v
http://maotao.u.winzheng.com/6 K. R5 B4 k( r* d! q8 l6 G
8 E7 U) ?: w9 [8 M1 K) ?
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
8 t4 X1 n; w* U5 p+ j: @& D$ j4 v3 r/ l: q
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
2 Y9 J% u/ m3 C: u. v6 @0 h5 X後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
1 Q) U( _' j# u( ]0 c# d) g" d1 \) y" v! Z
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|