找回密碼
 註冊
搜索
查看: 4713|回復: 0

三套方案制作DOS/WinPE雙啟動U盤製作詳解

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」4 V% A5 \+ ^; j0 k# E
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html- V- {5 Y3 m, n" O% d$ e- g

' v$ U1 a0 i- E9 ?& G- s1 H* ?% u7 u3 h1 P. e
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。, y+ t6 Y8 @1 T8 A9 V
0 ]' `" Y! @" P6 c4 U2 R
前緣:
" i' H8 _% u$ j; x: }1 k3 R* f
# J  w6 I  {/ _3 r/ T) J! y很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。+ H1 W: L; K  C" Q5 M8 r! o+ c8 x/ O
9 I& [7 U" i. l( d+ y% Q+ Z, [
目標:
; s0 [* \5 N: K  l' K: z' a9 p
# J% Q1 t8 P* U對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!$ v/ v( O+ z$ m9 q& N& w
2 b% K0 S2 L2 G
技術背景:
: X$ l, N3 Q5 b: T9 ~1 M3 d+ C! C5 X4 b3 W. t" }
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
; J0 O+ Z6 Q3 q, ~# z& V8 Y* e3 e/ Q# x2 t. F' t) U5 A3 v
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
: w" s/ j$ i/ ]9 ?; I
! M) }& s9 e+ A" \; \: J2 K* B3 _因此完成一個操作系統的啟動,
$ }; C% p. x2 I: p4 }( T需要兩個必須的步驟:1、MBR引導;2、OS引導。* p! u3 J. B9 V: C! b/ s
2 |% B! n+ x2 W. C8 T/ w! k* j
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。" i) @' q) N, O/ j
3 `, C# o! O/ a. F6 @2 m
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
2 k( B  v# a; R; Y3 V  K. o雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。  _* J3 _. U& Z
( g2 z7 F( g/ @
OS選擇:
% X) i* f8 o7 H% u4 v: i6 J. G, h, @* q# S
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
( t' |, [# x6 E0 [6 m- O
7 n$ S4 G  ~1 n" k3 E2 r方案一:NT Loader + AVLDR + Avlgo
- L) ~3 f- g& k9 B* _
* x- p' Q6 Z* U  H+ i+ [9 L/ \MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。+ F0 I- T5 o) Y) B0 a, ~$ X& ~

5 i: b" ~. C, v7 z/ K工具準備:* ^) F& ~% Y5 H$ G$ _7 m7 ~
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。1 R& K7 p3 _. \

/ c& g' V' O' t. U7 _9 X) V' B數據準備:3 R* I/ w& v- s! }
) f  ]9 g0 e! Y) l* A; `1 [. a
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。7 r* G/ T; j: w

6 q) x$ S. q! V! s; M8 u& {
0 e2 F" l7 r  ]* F/ J2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
+ ~7 p' M, c; V0 C& D1 ^1 c
. \  s( @/ r! x- I, u! t
/ T7 i1 m$ u6 L2 h9 L: V8 v$ V
0 W+ ], s$ T3 B1 a/ J  {4 |3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。. f9 H4 X4 H+ _9 z
4 [8 N5 r% L2 f- {( G3 U6 B
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。4 r( c; _& S0 v5 }+ Z( j0 i
2 F% s$ K$ R8 ]% I; p
- ~  t( L* q% n4 i3 u7 I( x
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。1 u6 U& W) I% f7 Y4 j

( o0 T) F; G- |, \) k) W& |. n
( r& C: m; F0 m5 L3 s. F
% F4 g  {" i/ ?' ~2 q9 y開始組裝:
4 e, N  R( s" K& M9 Z
1 g5 l; L8 v( H% v/ }0 N# K9 w1 T' E1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
0 E1 j; H% @  i: F
[boot loader]
: a3 ?* H1 z# P7 `8 ^timeout=30
" ?& i1 K' Q0 Q$ idefault=C:\avldr.xpe
" H: Q2 t4 \2 X[operating systems]
: }! p+ X9 I4 y! ?' j, E, n; wC:\avldr.xpe="Windows PE ByaoMaotao"
' z( O( m9 j' \$ s3 DC:\avldr.bin="MS-DOS 7.1 form USB-HDD"
3 P4 ^7 d! e6 V  K% @( ?( _! mC:\avldr.dos="MS-DOS 7.1 from USB-FDD"
2 j' ?' D7 |8 w# c" Q
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
# I! e) M# H: f' U/ [
8 Y/ Z. v+ a, y. J這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
1 p3 m* |" l$ u" X
5 H9 E5 \6 P, m[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
' O; B# O- }1 T* I
( R) d* E0 Z, n2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。9 r5 L2 G+ P% m( L! V( q8 N

6 S. \  T2 T& K, r4 \  b3、把下載到的老毛桃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環境下。
6 C0 k8 ^, c0 s" z% m
8 q+ e" C& n& ?+ y8 }5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
9 K$ b2 Z5 p' a' g  c. s) h) N9 _1 t# b+ o
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環境下。
/ e1 }  N0 F+ d
5 v5 \5 ~' z5 J6 \) F5 m4 B4 Z; b$ J7、把前面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環境下。% ?1 w8 z2 k5 O; _% L. [
% u7 E4 T' Y8 T3 S9 g' h  X
至此DOS/WinPE雙啟動系統維護U盤製作成功。' P- I4 y' U0 |: k- x6 a- O3 E

' x; Y4 w, I- d' @" O6 Q9 o& Y2 i4 o  y方案二:NT Loader + Grub4DOS- {6 G' N+ z4 c& c# a5 {
5 O3 {) M9 M7 ^3 c- Z; u" a
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
+ r5 v! l/ X6 B) q* P4 o$ X: s
( s8 u* R( M' S8 f% f7 l1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
% P/ V# o# v0 `2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。# r0 J& y/ B5 G
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
( W9 m# i/ p& v3 r
[boot loader]
$ }* k% Y& ]3 Htimeout=0
. |1 e6 _4 d3 {& r' H5 ?default=C:\grldr9 O( t+ a9 x3 _' O; P9 F% r' I9 Q
[operating systems]* m& G1 F7 g3 M( J: x
C:\grldr="Boot Menu"
5 l3 O7 w* |# d1 F1 p+ k& J
Boot.ini菜單各個項目的含義請對照方案一的說明。
1 Y$ l7 z) P* J+ J* G7 F
2 g) x' e( o0 y& P. w4 d5 i8 o- A4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。0 ~. `: U1 o+ w* I% C

5 W. v( k3 L9 N4 v5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。" M- }5 C1 }  P1 o, p- n% X6 M* F

! n. d2 t6 F- N9 n; z9 g6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
0 P" G, v  L3 A9 h) o, F" e
9 [# e) L) B( I  `2 q. ]: X7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
& C: t8 j9 @9 [/ P' ]
timeout 30
" Y+ V4 E& w4 ^+ X8 Zdefault 0$ L/ @5 C# [2 q; o
splashimage /boot/splash.gz! d# z% @1 }- c1 }
foreground ffff00
* R. F9 D2 S. n4 m% rfontfile /boot/fonts.gz/ _9 f: b2 G1 S" r2 p2 t/ |
title 啟動 WindowsPE
$ {0 Y- X( F: U0 {) U; K# A9 ]9 Ofind --set-root /grubidx.txt
5 i: q! X, C7 {% ichainloader /ldrxpe
& A8 e0 `$ o+ r: P; T1 v6 Ptitle 啟動 MS-DOS 7.1/ i, r3 o) f0 Z, v
find --set-root /grubidx.txt8 l4 Q" J/ J$ ^0 j  r6 k
map --mem /boot/dos.ima (fd0)
$ T7 W6 V1 w7 tmap --hook4 R& L* L; y; g* U& U7 ?4 M$ r8 o
chainloader (fd0)+1
" Z% z, W7 Y3 l4 q1 Jrootnoverify (fd0)

' F2 Y9 J2 g0 N" z. L* O做完這些,U盤就可以啟動了。
( g% S7 E9 H, P0 H* T" f3 ?$ J9 q5 D1 U
菜單項目說明:
$ d$ i: \: F% o& W" i/ {3 f
- ]% B% W; N1 y* y; I第一行設置等待30秒的等待時間;! I+ n5 E# w! B9 m

- V1 ^. l8 {8 Z$ _: w0 Z9 r  U第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;' N3 y5 i1 H% F, A$ e
( Q, s2 T8 Q, i7 b# ~2 U3 Z
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
7 ^; J. H: T7 L  @* |. Y4 Y6 x3 Z+ c2 T3 @, n4 n' H! _+ a
foreground項設置啟動菜單文字顏色為亮黃色;( @2 ^" u  g0 ?- I" o8 k

% x# Y' c- _4 G- K" k& l) Ofontfile項設置中文字體文件為/boot/fonts.gz4 I4 B! F; G+ n) V+ }& ]" N
: r) b9 ^" Z4 M
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
# O& w) S& E) l: k
3 U1 o+ @. ?' R- E; ?find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
. @& q6 s2 z! T( X2 `  U% A" Z" w6 k: [" z" X8 u! T3 g
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。# j5 U% q+ D( l, \- a5 V

5 t" h5 @% u: V6 X$ Z% v' dmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.8 z* Z$ l7 O' k- m) e9 @# j9 d

+ k/ S' [3 t2 ~. ]' Vmap --hook是讓裝入的軟盤鏡像立即加載生效。8 D6 J5 \- y! A4 `! m
+ q+ x4 `) {' ]' Y3 J0 B- ^" l
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。& W( z. [1 W4 R1 t
5 [9 Z0 J6 I0 ~1 l+ T% N* E2 \: {
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
  v. q" }6 A' n  D3 d7 T
* `- k% F/ M% }" r
' [2 d- T! f+ ]. n  y) H方案三:MS-DOS 7.1 + Grub4DOS
( C0 M( M+ V. L5 G0 W& B
0 X! q6 f# f: n5 z$ g8 @本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
3 c0 }7 m) G* u, D# v! D
7 E7 N6 {. _! k8 q本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。* q9 v$ H2 C2 P6 L" X; F8 ]1 p

0 K7 g) a! \1 ~$ t* f% i0 C4 O1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。, c# g' u" }/ P9 b! w7 T
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
$ d1 g1 R" y; X& f, I2 r3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。; e5 o; ?" b/ u7 m( R
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。9 A; y/ A6 {) @0 j9 a' H! u1 H
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
8 d, I; c8 t3 x$ z  [" [& C* n' |* Z6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
# K6 v% M' g+ g8 V; i! i2 Q9 V
timeout 05 I% ?1 @, a, ~) _! o4 V/ v
default 0* |5 _9 }" t- d) v6 B. A
fontfile /fonts.gz% Q* Y+ p9 B: V$ \# @  E0 T6 a
title 啟動 WindowsPE% o6 K4 N$ t2 S2 Y
find --set-root /grubidx.txt
9 B8 W1 z& L2 Y$ k( @+ ?. _chainloader /ldrxpe
* t( ?; Z/ T7 Y2 g* f
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
* c& `) Y/ I: W+ f/ \4 u; z  U
  A8 d3 t' b) |6 |# w, U7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:- C  ^8 A8 m3 ?
. m) K. T+ ?- @4 G6 k& Q" M
grub
* ?+ X8 {( G) f) T9 ~! s' e5 G  F
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
: q6 C( c7 z% y  p3 E: T/ Z- P
" P( a; }6 T: a7 Y1 \- R$ t- G# uConfig.sys內容:
, r* `) i# e* I$ x* f7 k; ~+ ~
[MENU]
- ?$ l6 A* J( V( z9 B' ], z5 rMENUITEM=1,XMS without CD-ROM support, {' a! o, X, F6 M6 t# h; n
MENUITEM=2,XMS with CD-ROM support6 t5 K  I; n& R1 e# O
MENUITEM=3,XMS and EMS
. C4 k2 ~( y- E9 X/ eMENUITEM=4,DOS real mode(no XMS,no EMS)) E: ~* [/ l. Z# c0 B. f3 S
MENUITEM=5,Windows PE6 D8 [' e4 n$ _1 _9 Z- j- m- V
MENUDEFAULT=5,302 }" K, _4 J; v/ G7 @$ ]& F, e
[1]) a! G- F+ O( \, H, s* ^3 ~( K1 Q
DEVICE=\HIMEM.SYS /TESTMEM:OFF0 f0 H$ ~& H4 h' }& H0 p( Y2 n9 ]
DEVICE=\EMM386.EXE NOEMS! ~3 K5 M  S; G- D) F1 D
INCLUDE=PUB
! X0 ?# K, G- w2 P% B[2]
# z- @% [; K9 `/ Y( tDEVICE=\HIMEM.SYS /TESTMEM:OFF' W3 x3 k7 j" \% N2 K% t: d
DEVICE=\EMM386.EXE NOEMS* a2 t+ j1 E& e( F  w" m
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
0 B* S- d3 m. \+ aINCLUDE=PUB! H3 q  Y5 V7 {$ ]+ B# b$ s
[3]' k9 ?- ]" M/ ^
DEVICE=\HIMEM.SYS /TESTMEM:OFF- ^' f; Q$ ]( r7 J( X% x
DEVICE=\EMM386.EXE RAM! `- ]3 I, Q4 F% S( C  \
INCLUDE=PUB
1 e7 \, P2 f. \, v; ^9 j# n[PUB]
2 O* b$ W: d6 j& t+ L2 |DOS=HIGH,UMB8 M4 A0 ^0 v& ]2 i0 @3 k+ F0 n0 Z
FILES=309 g5 B, ]: S# n- p% f
BUFFERS=20
" H5 Y: M- F4 T! s) WSTACKS=9,256( q2 q2 a- ^  c1 _" i
LASTDRIVE=Z5 @/ q, A' Y! C
[4]
" K6 A( I& E/ i5 Y' g% [FILES=10
3 W2 t! ^9 z  fBUFFERS=100 M* y6 U- i+ |: p0 F- W8 N% a: W
LASTDRIVE=Z
1 ]3 E$ G" ^( s' o% M[5]
" n7 X9 t" H# I$ x& F6 G& {6 p6 \Autoexec.bat內容:8 U, V9 ]% a9 l- s) R5 f, L/ W
@ECHO OFF
3 v2 w4 T, o" Z: P; n8 u$ d, I2 zPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM7 V3 ?  Y+ z0 F3 b
GOTO %CONFIG%2 g6 P. ^! \  P1 V% |- e5 D" p
:1
2 k( o9 p8 w3 i( S; J6 q1 ~" p  _GOTO COMMON/ f+ S6 i* r: Y5 r/ y  G
:2
5 F2 `" q+ u+ r/ _( ^8 [7 GLH \SHSUCDX.COM /D:SSCD001
; G: \0 L- t8 t" p' LGOTO COMMON( h$ L% ]! e4 C. G$ r& H
:31 r( g' n+ |7 A- F7 ]" A' ?
GOTO COMMON
3 w% V. t+ G' k0 w' W' n9 b:4+ Y: I3 z  [$ P6 S; N
GOTO END
1 a! d- B0 X8 F:5
. i6 @7 B, F6 t( e3 ?, gGRUB
. @. L9 G" H' q( L9 ]' F:COMMON3 @6 @6 Y  H, e$ P, D+ x# m) k/ w$ F/ v( F
LH \SMARTDRV.EXE /X# }, d/ x: k/ [! w( X% Z
@ECHO Install mouse driver?2 S$ T2 c! z" c+ N
\CHOICE /C:YN Yes,No /T:N,6; p  M* X5 L' U# j& W/ ?  A9 M! q- N8 n
IF ERRORLEVEL 2 GOTO END
( F* y( E$ f) O) R8 oLH \MOUSE.COM
% M2 h3 g" s7 \5 y- e8 Q+ X:END

6 K9 V# X  P- [: m# {: b4 e; B; r1 l: ^# _& J8 C! D; s0 W: {
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。4 ^$ X1 Q7 Y) ~7 V0 _0 F1 s2 d7 E

7 |+ m# w  t; b5 c5 V8 O感謝5free和david_ge的幫助!$ |6 c( c6 R7 b1 Q" F. |

% t  P) G( M) E" y9 i本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:  A; Y  w) N; }) x7 ^0 P4 ~7 ^

$ Q: R( K. V3 ]http://bbs.wuyou.com/viewthread.php?tid=94087
% r& ]# |9 s( G* w; E" khttp://maotao.u.winzheng.com/
; A' Z2 T" \' P2 C: z2 k3 ]# [  _7 r
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。( i; i. U2 V( M& D% b: \

* _% r1 F$ o* M& T5 ~8 ^2 |' c+ c最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。" d( E. C4 T0 k, U% `/ m
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。9 F  @1 P. W) U5 v# v
& C9 o* w. w$ r# {- \+ R
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|小黑屋|歡迎光臨 Julybee Club

GMT+8, 17-3-2026 00:04 , Processed in 0.130574 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表