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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」
5 c( z+ f5 ]) ?本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
! k. \; ^( }( P& I2 n- U
) j& \, K% M! B$ L1 r9 S- n3 `
* k, L' z: P; Y- Z6 p沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
) ?2 V$ {: Z0 z/ D- @. G& f9 _% ^$ h" q
前緣:; ^- c8 P. J4 T. E
2 ], ~2 Y, o  w7 V
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
& a* \8 @' m7 L
1 k  y( l  c( G8 G% I8 t8 g目標:" z' t& \. i" K, S6 ~6 W
! e  J: z! a% S+ D# F
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!) N3 L# L/ ?. V/ L

2 I+ b# m) T7 D' G9 F% _5 h技術背景:' I( ^5 b6 Q( P# b% Z; X
5 I9 w0 k! f3 G
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
0 a3 R4 D) D  w" b. F7 [! Q2 d  x8 c. W& Z, G0 \) R
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。; f* X5 |; \3 L, I5 H# A, q: \

7 a+ t+ X8 J* v# V( k8 M因此完成一個操作系統的啟動,
: h( \2 d, m3 u9 L* h3 x需要兩個必須的步驟:1、MBR引導;2、OS引導。
& N8 S& n8 |, c! z. h# _/ x% W
. b+ X: M6 s2 \/ \9 o2 n2 Z1 V  E. P基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
  @5 g! R0 W2 f) _
& @. j" w- _& M$ E對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
1 p* c# r( Q. Y! a3 Y: {8 J- p" E, Q9 U雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
4 p  ?4 J$ w# a3 {, @& Y
( L8 }7 F' I/ X! }% aOS選擇:6 z: H- v! P# N" ?$ K0 ~6 v. j7 k

6 @; A; N. p$ K" bDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
7 ?/ O! L: Q( _5 o% }% B5 t
% ]& Y- h; l% ^. _) W方案一:NT Loader + AVLDR + Avlgo6 P, `0 w% J/ N5 w( C- Y

+ i% @! n7 |4 Z( x  `6 M) b9 u! GMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。7 s: o( S- ?# c: Y. S- M
8 h$ X+ U6 I7 \8 ^$ G& P- I( E) y
工具準備:5 p5 l4 j* ?- e5 h7 ^+ l% [5 s
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。+ c" `% Y# E4 E: V6 ^8 N8 J

9 p( ~0 \' g* k. m! H9 L, h! n數據準備:4 [. @# w* h" Y7 y2 q
( a2 A: [/ F" h8 w
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。$ M% E) |* \2 ]" S4 A2 x/ J3 @
. d$ j% s* G! y( h: I$ u
3 l! g" v* q) l( w3 D+ r6 J) d
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。" y2 Y* g: V4 Y3 H% q8 Q
% B' M" L; k1 e. _

4 k: g6 J# R$ H$ X: N, c
9 V6 a  F  t' r' M/ f. `3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
; H% p7 ?, h" ~4 V, k9 Y" N  d' ^$ Q) F9 \& ]: o8 U
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
. W* D6 {. D" F. u8 I* A& @$ y/ o
2 |9 X+ u* a  I9 W. @) Q0 s" Y) u% m+ ^3 P; @. \
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。5 t1 z, _1 C+ Z" o% F% {  C; [6 r4 r
4 N& t# `- W  M' G8 |/ e
$ B% W8 ~, h' V% p- I

% Q1 F9 R. f$ J* m4 b& W9 _  Q2 ^" n( W開始組裝:. h- J7 C7 e9 a
  l) Z! d5 q, Y* ]$ {
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:) C/ |! x' @. _4 x. m$ J4 j7 F
[boot loader]
9 O7 }: b% B4 T4 m- e2 rtimeout=30
6 S* ?% O% w7 @' f% Pdefault=C:\avldr.xpe: N( T- v0 f+ g
[operating systems]
& p1 \6 w6 q) F" m4 H1 g8 e( _C:\avldr.xpe="Windows PE ByaoMaotao"
2 l# R4 [5 R  O3 Q" K+ pC:\avldr.bin="MS-DOS 7.1 form USB-HDD"" `( F& J4 z: R* s- M
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"

; T; v8 V$ |$ y4 u  A: z完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
9 B- L& Z4 i( ~$ f
6 d$ Q+ l! z9 }2 X8 p+ E1 ~9 L這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
( d# f, n0 u; _2 f! U
4 d) a; Z1 I7 I8 T! R[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
: J, H7 Z$ x* I, e# Y, E3 G+ Q; B4 `0 v8 s5 q3 @0 Y8 \
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。. F% ~5 _+ ?; S( P8 S

! J3 E' {" ?/ k1 V3、把下載到的老毛桃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環境下。
% l+ o  o( H' }5 ]# F4 K
' `+ D& I$ }" I# w7 C( T5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。9 I% h$ y1 d! V: {  F9 J8 u

3 H6 w8 J; W9 e4 ?$ s& F. X1 ^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環境下。/ J0 X& _' H; o  T$ F

" ^3 W, ?# h- A$ l. q' _7 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環境下。) K& r7 E: X" u% q# J1 \1 `

+ N* y' Q# b: X至此DOS/WinPE雙啟動系統維護U盤製作成功。2 m2 U5 Q$ |6 B! ~8 N3 c
) J; R$ P' M* m6 r
方案二:NT Loader + Grub4DOS
, t6 {) p/ [  m* K# ]5 n' D. `3 h; G9 w' [/ ?( @, F7 r( B/ X
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。0 Z; Q. [& t( H+ a: ?" T5 b5 t+ ^

% h2 [; p4 R8 }1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。! G! i! p4 h) w
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
6 |. c% k( I2 Y3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
/ D' J5 j8 w, Y9 }
[boot loader]
, N! w; k2 ~) h& R% I( Utimeout=02 }0 \$ h) e) X. c8 y, j3 J8 o6 Q
default=C:\grldr
! Y5 `; W) @2 z1 J6 ~' x[operating systems]0 |4 m8 E) C; S3 U* H! L5 f3 C
C:\grldr="Boot Menu"
0 h0 Z+ B7 }2 S, W% R" [
Boot.ini菜單各個項目的含義請對照方案一的說明。
" b' l/ E8 r* D. H
, o! ]; v6 E+ [0 |9 e( P1 [& j" n+ y4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
7 K1 C6 h7 p: T: p: Z& [/ c+ s- ^8 P9 |  o* Z! ^
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。' `, K0 n& {- Z

  F  D: I0 f8 A) h6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。- V9 Q6 e! E/ y
3 s- z0 d3 b) U: A
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:& U) S+ f' u0 W$ O) |2 c
timeout 30
8 H# ~% e5 C- t% d% p0 A2 }9 bdefault 0: v+ D5 Z$ m- H  N. d; P2 B
splashimage /boot/splash.gz
& Q9 Y2 l6 s) |, `foreground ffff00! O7 @' M; Z4 b9 n, l. Q4 f0 t
fontfile /boot/fonts.gz+ y/ A) A# m3 U, E
title 啟動 WindowsPE  p# Q/ O# L8 g& E8 X6 R2 F$ n
find --set-root /grubidx.txt5 v1 e5 M' ~$ [* F( h( }- A# ?
chainloader /ldrxpe4 r4 Q) s% D# P; t/ @4 J3 u
title 啟動 MS-DOS 7.1# S1 _8 W7 z% t1 O
find --set-root /grubidx.txt
& X, Y) z0 @$ O0 b6 y+ {map --mem /boot/dos.ima (fd0). Y0 P" m  g! D! ]* m4 x
map --hook% z$ u4 _/ J4 h( [2 r/ h6 D
chainloader (fd0)+1& O. X: O* R1 p$ @
rootnoverify (fd0)

$ A6 K, K; e3 B. H做完這些,U盤就可以啟動了。5 ]3 }, ^0 K; X) S+ V

; ?2 L2 Y6 ~' s0 L1 u菜單項目說明:
2 Y( m: a+ z2 r3 t0 M$ t( `5 E6 K- z4 F  [$ o; A! c/ C
第一行設置等待30秒的等待時間;
# D3 S- t$ p% f2 q: Y
% z9 H1 j0 y& r" v' ^第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;( W7 Y0 i& y8 u6 z) [. W( ]5 |
& I* m9 T. b5 k" g) D
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
* T* w$ c: j+ ~# U$ m/ w1 C: Z0 a- V
foreground項設置啟動菜單文字顏色為亮黃色;7 h  a. v9 `! C* j

. A* F5 [- M4 K- ?6 nfontfile項設置中文字體文件為/boot/fonts.gz
/ R2 M1 ?- L: J& r* ~: v4 n; q9 I9 c! |' K
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
& ^& Q3 o( a5 K( ^/ U+ I! h
0 O# H0 b  v# @( C; N* Jfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。9 \+ Z3 x- n" E7 N
: k3 [* }, z! F" g  q8 K: _
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
6 v+ {) s/ y8 z/ i0 O
$ _4 l. ~) p9 g$ x6 r$ g" x) c- q, Lmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
3 s/ V) Z& H: V, @8 e; N4 a9 y# G, E  @5 N
map --hook是讓裝入的軟盤鏡像立即加載生效。+ s0 ~; B7 A4 v3 {
% b- p1 }( x# t. M& a" I* i
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
, y4 K# t4 h! s
& J. ]8 r  E' v" Z本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。) z( B. a: s, ?# b( Z) G. [5 G

0 R) e; Q& X) t; I. M/ z$ s; c
1 m3 r9 d2 Z( E, l+ O/ `方案三:MS-DOS 7.1 + Grub4DOS0 \/ [0 C) ]- }8 z3 x0 d8 ~% W* `
* }; k/ z2 O% D  K5 X: d. ^
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。+ l4 Q/ e0 @4 d. y" R: t

. a  F8 Y5 z0 ?6 ^3 Z8 U1 Z- u本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
2 B7 u) B* u: t6 t% ]* z5 T6 V# p# N1 t  d  H3 E# e: R0 }/ v  g
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
; m: f. v# [* d# s# T2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
! n8 k8 u& a( j$ ?" ?: F5 }7 c% g3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
$ }) d% v: w  Q: ?! ~4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
* X  c, s& g% I4 A- \5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。  k8 c3 u0 E4 O, z  z7 H0 M
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
- P2 i: m' E5 ~5 @4 S3 H; I
timeout 0/ d! l9 n1 r0 V
default 0
$ ^; @/ k  Y1 _% x5 Y7 d( F8 Ufontfile /fonts.gz, \/ o1 I! b$ @/ |
title 啟動 WindowsPE
- J1 S: W& f, N% D! ^" x7 Y" @find --set-root /grubidx.txt' Y! Q5 r; ~% O0 h! P+ [
chainloader /ldrxpe
3 `; r: y9 s8 N8 [$ U
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
% ]4 E9 |7 B$ B( }9 r5 o. r
  r2 b! l! E6 I! l: G( I  b9 }7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:, k* G9 X- L" }) \7 L
+ ~+ d5 S9 d+ |. M5 _3 L
grub
4 c( `0 h- K3 m% s( R+ x0 P0 S5 g" F8 L9 e: I8 h! b
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。8 O. N! A9 ?8 L
  _# i! K9 a1 }% X0 z
Config.sys內容:
0 d5 b5 U2 o$ U! X
[MENU]. r' h. h9 a) V2 r; r- D0 s0 Z
MENUITEM=1,XMS without CD-ROM support
- n% Y4 {- r: _7 a7 yMENUITEM=2,XMS with CD-ROM support1 ^1 d3 T. {- G" q9 {" Z; Q9 \
MENUITEM=3,XMS and EMS
  Y  O. w7 J& w2 @% ?5 m7 IMENUITEM=4,DOS real mode(no XMS,no EMS)# X! o6 B! o* i
MENUITEM=5,Windows PE- n  T1 t, t% N1 @0 ~6 w
MENUDEFAULT=5,30
3 F/ ]7 m0 q, V+ a% ?$ x9 K8 z1 o[1]  }4 D7 C& B& p  G
DEVICE=\HIMEM.SYS /TESTMEM:OFF4 |$ @; c, y& z  p9 M
DEVICE=\EMM386.EXE NOEMS/ n- b: {& O7 e' d3 O6 Z
INCLUDE=PUB* ], M+ [& R9 y% A3 H- j
[2]
7 Y2 N  h& B0 N" q+ p7 R/ Q' ODEVICE=\HIMEM.SYS /TESTMEM:OFF
- o  V. a( C# b) TDEVICE=\EMM386.EXE NOEMS+ D0 V$ K: q+ L4 V
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001+ e  \8 R2 r; z  c; ~! P# s
INCLUDE=PUB
0 i; ?5 ^: X5 ^* R[3]6 F. U* K/ A# X, E" N; s
DEVICE=\HIMEM.SYS /TESTMEM:OFF2 y2 c7 A% Q7 Z
DEVICE=\EMM386.EXE RAM
# Q3 P( F9 ?7 _5 j5 aINCLUDE=PUB9 g1 U& Q4 E3 v) w  e7 E! ?
[PUB]
; |; r( N/ {& P" w  R( o$ k  ~DOS=HIGH,UMB
* X9 H  x: I0 D$ fFILES=30
& k9 ]! Q0 o' {, ?BUFFERS=20
. S# [" d  f% ^. Q( BSTACKS=9,256
0 U+ o0 e. W, |* ]LASTDRIVE=Z, z0 H* Y4 h5 z  e! F( k
[4]" U3 d* S6 m9 z" C6 d
FILES=10
* w6 M# x! M% G, Y3 I7 o3 hBUFFERS=10  C4 p/ O, C" K7 H- t( j3 A! z
LASTDRIVE=Z8 Z3 f* U6 t: A6 n/ Y
[5]) V+ n1 n- P5 H
Autoexec.bat內容:0 |! z, v5 }2 ]" ~! `
@ECHO OFF( x; g- j7 y) d  ]0 N  @
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
0 D7 ~* A  v& U3 n0 MGOTO %CONFIG%0 {* e/ f8 b. P( S4 D! P
:19 T/ a! O1 Z9 Z( X: u* }
GOTO COMMON
0 B7 L4 M& |, W: o3 |1 \:2
) Z) B1 ~" G" B+ R5 VLH \SHSUCDX.COM /D:SSCD001
9 W' P8 M& K. `6 PGOTO COMMON( O2 \2 |( n- X3 U$ k* P
:3+ R. i4 j( p4 P
GOTO COMMON
! x, o* ~2 t; p9 M( u: t:46 h. T/ y2 y+ ^3 G% G
GOTO END1 B; e  f: l6 x% P, G) T
:5' M0 _. U) E  ^4 [' c  h6 [6 S
GRUB2 U3 ^2 V# }9 n. [/ P* @: F  P
:COMMON8 {7 I( h7 W( f
LH \SMARTDRV.EXE /X$ a, P% w; n# J, Q6 \1 \+ [1 k
@ECHO Install mouse driver?
& r/ c% J/ q: Q  o! r4 Q9 C. a2 l* S8 z+ Q3 [\CHOICE /C:YN Yes,No /T:N,6
) A9 q" q6 c: @, oIF ERRORLEVEL 2 GOTO END
4 q0 u4 ]3 K1 U9 \LH \MOUSE.COM% I, O& N) Y6 B$ j
:END
& r) c7 s6 ]' i; _) H' B
1 ], E! G" Q$ n$ c6 r" c4 C
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
; q2 N; i) h2 L. |. _4 U& p' L3 O7 y3 J- W
感謝5free和david_ge的幫助!' ^) M9 q. G% \% l
5 O  F: V* Z: n& w) y: u0 t  h6 `2 L9 {
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
! }" p% v; F. K, h
+ q3 [) |" V4 g8 I! fhttp://bbs.wuyou.com/viewthread.php?tid=94087; U4 k' o' _3 A* A
http://maotao.u.winzheng.com/
  q# I8 p7 e( j7 U: z+ `: r
9 \8 }2 P/ m' {! N- ~! C! ]附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
4 E6 u& e% S8 c/ A6 z: U9 i1 ~' [6 W6 S7 D2 E) ~
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。( s% y% h7 S' t5 K' e2 s2 Z! V4 v" S6 m* w
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。! g" X2 n9 l/ |* y( R7 T
: M1 P" c' @: ]5 Z8 ^+ A: K
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 1-8-2025 17:10 , Processed in 0.169590 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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