|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」- `; S& E. w% A# X+ G! Y
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html& J! |$ m$ m* I5 B5 i5 q
) |# P$ U! \3 p# e' @4 j C$ s
/ s3 H& u! @8 ~ z
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
4 \& F9 o. }5 p4 v
& K) r7 ] q6 s v前緣:' u, a% H. C4 }, w& v
# C; U% d' U5 n+ d
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
: h1 {8 @2 A( j R- O7 u9 P* {1 X3 I0 O! h- ~2 `' V% k& q/ v/ V$ D1 i
目標:+ }2 H& h& f C8 h2 g, {! \
# Z+ { ~ }9 U+ `' c: C
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
2 d% B0 n% @* ]5 m. M
% t; ]& R5 {! }技術背景:
. m* P$ X8 m2 m5 c' D' G' h5 _3 w, C# J" m
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
( K. R. ^. I( m. V% ]# n5 n. w$ r/ X! X; T
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。5 t; o' g% h) }
/ q* o% p* Z2 U4 q& h因此完成一個操作系統的啟動,
3 F7 z5 A. C* ^- @; B- H8 M需要兩個必須的步驟:1、MBR引導;2、OS引導。2 t9 Q5 ] I D' |- n7 G% t' c
1 x$ R. W) R" [ g
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
L+ U* T2 K; ~ \7 ?& r, H8 K: D" g' `: m( o- v& I3 W' K( H
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。 K7 w3 T" ^3 U+ V" }
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。: O) ~3 F$ D) C7 I
) t' _* g9 O4 m& \2 F. k. d4 _0 H: nOS選擇:0 U- C5 l$ ~. B
$ T7 W2 Z2 d/ d7 l" O# v: C
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
* }' [5 j: v6 s. E
Y2 C ^# Y7 C9 I; z [ |3 _, k方案一:NT Loader + AVLDR + Avlgo# I/ }& X( W& T
7 h# U$ g7 K+ V
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
' o9 \4 w' Z( T. K1 H K6 ^, H- U
工具準備:7 Y8 a/ t: y" n% l( a* o3 g
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
8 G f) a4 R1 @4 g, T, R4 d1 f7 ~" i. U5 |4 C
數據準備:
6 _9 ~. ^2 z' _3 O( R. {
. x$ S7 L7 f5 O6 u j1 x1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
) Q& s& F' m: i' v+ a( Z9 M
; o; n% K% l4 o& ^5 G6 g8 u: T1 e( C6 X$ b
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
6 a% B# m( H+ t% {; w; a0 a; k0 W ~! x! T4 w# j$ R7 }# [4 W
( u5 C) E! u( l# V
8 d7 W) Z* ~/ o% G3 C9 ?* D3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。; P& j N W8 i V8 C0 L! X- C
4 d( ]4 N( f9 H) z+ q/ v2 ^# r
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
0 d+ s! z' V! S! D. S5 ?7 R0 U1 @0 K Y/ s* P. Y
/ k5 f% A2 _8 U5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
- H% F% r/ g g* d7 j. c3 U1 |* R( z/ S
8 F/ `' E( {) A* ?; d+ _! E$ K' [
4 ]6 m" }3 G! Q! ~/ F+ s開始組裝:8 d* Y2 {* O& H
, X2 y' Q4 \7 K* c1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:& K7 A& n! l0 J& s/ q" \8 b
[boot loader]- [( w# z0 }! P" h# A
timeout=307 B5 b3 X1 A+ L2 x7 u, B+ M# H
default=C:\avldr.xpe
0 Y9 e. w* i6 W[operating systems]2 |# g% x3 }# _5 l2 d( C
C:\avldr.xpe="Windows PE ByaoMaotao"
1 [- F8 ]: O4 u( Z: z) w9 nC:\avldr.bin="MS-DOS 7.1 form USB-HDD"% t( X; A% T% H! @; t4 B
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
) C) B! X- [: Y/ y1 @- f完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
8 x$ K) w# ^' y
. \" |' {9 l. U4 b6 f7 f( V這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
4 D3 t% _9 y; [2 w8 K# [
! s1 W/ s* O e# z5 N# Z% ~2 r+ c3 {) [[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
' _. b8 I1 G+ n. C* E1 `
/ u: p; j5 h$ z% _2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。) U5 @. {4 G: u+ I
, f# U' n* S% A+ u
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環境下。
8 ?0 l4 N1 J0 ~2 v/ N) p8 w: z) C. R' [6 q8 z& t
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
5 Z7 m3 x: O. t6 f. j
( r9 y) t- k* x6、把前面生成的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環境下。* d! B) J0 K$ m( A3 i- \; z4 B
( J+ E8 O3 G2 A: L% A; F7、把前面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環境下。* Q" P- F4 f; H8 O/ e0 C& H
' }0 f2 ~( @+ |4 L! D: @至此DOS/WinPE雙啟動系統維護U盤製作成功。
# k3 S9 g1 C3 O6 ^
( L! f- f1 E9 e- ]$ j方案二:NT Loader + Grub4DOS
' Z' J" R8 t8 ]3 h/ @
b; l/ @9 u& s5 ?, m7 p因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
$ w! n. ]& v( W0 k4 _6 J5 p
( O% S, X8 i- j2 [1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
# A$ w0 p9 y4 S! l' D. p2 v2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。. M( S; u4 O- Q" [ g3 \
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:$ B3 j' W8 O' P! u, _6 L: o1 f1 w; |
[boot loader]
1 Q# @/ B' ^( U) I% vtimeout=0
0 B9 o k$ Q* A9 U# ^default=C:\grldr
* P" s6 ^4 l& u) z2 t2 K[operating systems]( u( k& V" C) `
C:\grldr="Boot Menu"
& h1 X7 P4 u; B9 TBoot.ini菜單各個項目的含義請對照方案一的說明。
& o4 M; Y4 G% {2 `7 Z' l
: V: G' ?# V5 \$ h' D0 s4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。0 D2 Z8 z3 U, g7 l9 j
5 n. K. k7 ~( Z! Q; e, ]
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
7 Y8 ~" q3 B+ X( X+ K
/ ~6 C$ d+ a$ z. G: m5 J6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。7 `. M4 X) I1 {6 W
4 N9 a2 P4 y% n
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:; z- ^. \/ q Z& f3 q
timeout 30$ C+ K% Q, ?) d( b+ y
default 0
0 A0 ^! H4 D1 t$ o3 W- @splashimage /boot/splash.gz1 |0 N1 r) L( J. J" Q4 ~- h; v
foreground ffff00
& H! p2 O2 x) W. \! ^) z6 ^. nfontfile /boot/fonts.gz
% ? V; P4 }% m/ e' {" m7 S3 _5 w+ Atitle 啟動 WindowsPE
& D- k# ? ~7 V3 z- \3 w$ ^) e3 j4 dfind --set-root /grubidx.txt, D$ H' t, i* _& T0 ^8 ^
chainloader /ldrxpe+ i# e& V0 N. a
title 啟動 MS-DOS 7.1
( }. A+ J* m4 C# a/ b% Z# yfind --set-root /grubidx.txt
* J, b. b9 `/ }# }map --mem /boot/dos.ima (fd0). a' B1 E& p: N! k1 [" z) O+ J) ^
map --hook3 j- ?0 O& g& f9 O: o# M
chainloader (fd0)+1) h6 d i; Q# S* _: S# j9 `
rootnoverify (fd0)
: ]- G5 S/ j% i' d4 U5 t) o做完這些,U盤就可以啟動了。$ [7 ~; x0 t: c- c8 I; l
: z% E/ e ~% V* W" ^6 r2 S
菜單項目說明:
7 D3 \. S R; W5 j% U5 ?7 ~
6 X$ H, m; e* V6 x# K* x第一行設置等待30秒的等待時間;
4 n( Z0 t: L. N7 T( n0 B* E! f+ l g- p+ J9 f! w4 l# W8 y4 j
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;# N5 |, B; r3 ]9 j
$ Y9 ^' e9 X6 ? ssplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;( n3 J) \: Z2 |+ m1 r) q- z
$ ]9 H- w5 L% ~8 \ Qforeground項設置啟動菜單文字顏色為亮黃色;
5 d8 I: ]5 n. H$ G
" S! M( `, D$ N; _. C( U8 K1 mfontfile項設置中文字體文件為/boot/fonts.gz
4 c' x' J" @1 A5 t/ A, r) m
7 i! m: U" B/ Z下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;" A) m7 i# N/ c7 p+ i- _* h
0 u% o' b& b) N( Dfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。, f! b; x' L( d6 i7 E$ [9 q Z, n
4 f6 A3 { ], l" `, x
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
; V9 O* j9 Q0 G" j8 S
2 ~5 L+ M4 u" ^map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.5 [$ s+ r! {* z; a8 R
1 }9 {( v% T* ?7 x* }' s) M, l7 h1 V
map --hook是讓裝入的軟盤鏡像立即加載生效。5 y9 q; ]. S) c+ G) a! r; T
# W D# J* T6 f: m' L
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
! |6 u$ ?6 q3 X
( R- B2 g" q" A. r7 R ?% E. q/ J/ g本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
5 H! G8 K4 J* ?% j' ?9 f) ~8 j$ {/ ]1 p7 C; m& p3 j+ \' t2 q
- u$ W- I4 s! F/ B( R+ |方案三:MS-DOS 7.1 + Grub4DOS' G+ U# M$ s" K5 ~5 d# Z! S
# \; D+ q- T9 Q1 F0 z/ H& [! e$ k本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
7 ~' ]8 T. W. t" a0 K0 }( W X$ k3 G: [
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
; ~9 G/ D" J! S+ [3 v
! B9 H+ M' ?" H- \+ _: u; P6 O1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
1 M) U0 x7 N/ E2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
8 w4 H4 d9 ?4 p5 n0 l7 d2 ^/ [ B" J3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
7 e/ [" \: Y9 G3 v2 W7 I4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
/ E: _! S: v, N( E4 t* C5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
$ m6 ^$ W" Y4 U6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
5 a, i$ N- }) Ktimeout 0
. H0 T6 r( @ |8 x- V$ zdefault 0 a0 G" F( C. t
fontfile /fonts.gz( u2 d: [ p4 G/ o* M9 ?9 D
title 啟動 WindowsPE: T* H* {/ `; T; J3 b
find --set-root /grubidx.txt" n5 k- ~; \! ?! L
chainloader /ldrxpe * H7 e6 Q2 T6 w2 R7 V
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
5 A! F; a7 { h7 O/ @! R& Q7 F$ s X5 ~ M4 `0 D! e" i
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行: }. p! I( h; z* D! y
0 R" m4 m/ Q% u! A( p. F2 C1 ]grub
t2 E/ |; w5 X" Q3 n
. ]0 h" v7 [/ t這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
% a, E& q% i/ p* D- x/ X& @: h+ U
7 D2 Z+ I7 ?7 y/ X. Z2 }% iConfig.sys內容: y# s9 U& R$ J
[MENU]$ F2 a( x5 q; [/ r7 p
MENUITEM=1,XMS without CD-ROM support- G7 G0 @ k4 O6 a ]! q
MENUITEM=2,XMS with CD-ROM support
1 k; w( Y/ H1 Y$ n; c7 lMENUITEM=3,XMS and EMS5 ?, ?4 i6 i! S
MENUITEM=4,DOS real mode(no XMS,no EMS)
8 [; T+ d* M/ |2 r+ R9 [' O7 YMENUITEM=5,Windows PE
. U% T. Z8 {; e+ j( R- m3 W; NMENUDEFAULT=5,30& g$ Y; ]: r# Y( i; J m7 R5 m" f
[1]6 F' N" W _! j: s
DEVICE=\HIMEM.SYS /TESTMEM:OFF2 E( {" Y9 x7 X8 z% X% _' [
DEVICE=\EMM386.EXE NOEMS2 T5 k5 `: }: ~0 \! X
INCLUDE=PUB
0 Q) w# U8 l7 U' P[2]
5 Y6 _* f5 U* t2 `5 c* A+ eDEVICE=\HIMEM.SYS /TESTMEM:OFF
7 a' s3 ?6 ~1 Q; hDEVICE=\EMM386.EXE NOEMS* R1 T, F2 V J+ Y
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001) F3 K+ `! @3 {% m& }4 S1 Y
INCLUDE=PUB
0 z; o7 ~! K3 z6 Z1 M. p- J[3]
4 }9 u5 Q3 ?- lDEVICE=\HIMEM.SYS /TESTMEM:OFF
+ L: j' {; s$ B2 o7 {DEVICE=\EMM386.EXE RAM8 d, V; Y d' M" W0 O2 s
INCLUDE=PUB) J; {6 H) g$ F, J% |
[PUB]- f6 G; Z! p* O
DOS=HIGH,UMB6 {/ C. a8 v. s
FILES=303 l0 Y; y+ n3 a+ R3 m9 V6 F
BUFFERS=20
# c: i4 R9 j# PSTACKS=9,256
& C v( l# E3 jLASTDRIVE=Z2 j0 z2 m j) |5 e
[4]
" z! L9 n# [$ v; M. UFILES=10
9 {; Q- G+ Z; T- _BUFFERS=104 F8 d$ Y/ J! z4 d. E/ w2 [: U
LASTDRIVE=Z. J+ Y8 }2 Y: \+ j3 q# V
[5]# L! S8 q' d2 v* ]1 j, e. w
Autoexec.bat內容:
4 z5 X9 t& |( m) z# ^5 h@ECHO OFF# E/ F+ \4 ^7 C2 e; l
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM9 X- d5 i2 m4 V2 r8 ?, X# k
GOTO %CONFIG%6 ?. D2 Q& G! U& Q, k
:1
/ d& ?5 m, A9 N# t% E( q5 m; @! IGOTO COMMON/ I5 g6 }0 h6 d1 L6 W* ~
:2
* X- M, [3 b+ J& gLH \SHSUCDX.COM /D:SSCD0011 W1 L; z6 F; [: L0 }2 u
GOTO COMMON
~+ o4 s* g7 W% t$ n+ \:3$ x1 `. b9 j: `* `9 O
GOTO COMMON) D9 {# Z& C' e- ^6 ]) z4 }
:4$ q. r, B, b0 |; x. r: ~( J [" R+ b! W
GOTO END
7 w! W. u: k$ K: f9 @9 N* N2 r:55 _5 y7 Y1 ~# n$ x
GRUB
. O/ f q# i# ]( S2 _8 q:COMMON
7 p. }2 |! c0 @% g+ T* K0 gLH \SMARTDRV.EXE /X
, G, R1 P" s7 s' W( m@ECHO Install mouse driver?! X4 W" |6 _, z* o( x
\CHOICE /C:YN Yes,No /T:N,6
# i# N: i5 C- A- B, [- k6 bIF ERRORLEVEL 2 GOTO END
( p5 A% C, u8 [7 a8 bLH \MOUSE.COM
$ _- j# I( @9 J' s' _! n:END
; X2 m6 m, Q! G+ ^7 `/ G x& @2 n9 i {) g+ H
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。' E4 N& I2 ?7 a6 s& b& l
6 x7 @) m& {, F
感謝5free和david_ge的幫助!3 D6 o8 @( {# x! p
2 K+ L- E: O3 ^- r* [ w本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:% @6 V6 y8 m* h1 \8 w) U
2 x! _% Y2 X! ghttp://bbs.wuyou.com/viewthread.php?tid=94087% e+ W/ i& U+ Y: ^3 U5 Y. \
http://maotao.u.winzheng.com/! c8 y4 i* t8 H) W
" h$ W% ]5 z! T1 W& ]% z4 l
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。$ l+ i1 S) i- k/ {+ H
/ n9 v8 C8 }* x
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
# f, |2 U6 L/ X. s3 i2 O3 q後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。1 u" t0 }: i* |
+ B+ w* ]' T4 @4 r目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|