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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」
/ n5 ^; [9 Y0 B. `8 q8 y% S本文原址:http://bbs.zuluck.com/thread-1902-1-1.html( w- D! X6 E/ e$ i3 ~

0 s. B% G/ l& C3 S$ a. C, n$ x& Z- T/ n; U
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。3 A, X+ K  h1 ^

9 ~+ `  F7 Z" |9 D前緣:
' O: z+ L; R/ h, \+ H- {/ h
: S  e7 T/ u9 J很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
) y' a2 W! X) \/ t9 B% t$ U, h
( E1 n# ?. l+ Y; f目標:
% W4 s$ q3 W8 W/ j1 Q9 n8 t8 J3 m
# _& C/ {$ N/ W# c: Y* o- f對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
6 {# {; y7 ]" P) G! _1 |
1 c% }! K9 }2 c- p/ l2 a6 `+ e技術背景:
" h/ t# X  g; c0 \) I' ^/ [
7 S1 b% N9 ~1 Z- d6 d其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。8 l) R& b! L! p1 b
7 a8 Z6 x$ U8 S% N: v3 H( O) R" u
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。! C. m* J% a* i* k& a( c

# C# R. Y8 b& M  l因此完成一個操作系統的啟動,. @  Q' |5 M8 J- x6 C) C
需要兩個必須的步驟:1、MBR引導;2、OS引導。
: M' M1 v! _7 U- L" {, W
* W7 r# V2 w& g6 L9 i基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。9 C* t$ }8 b! U" k2 U  o% P
6 |$ I8 P0 ^" O* O2 r4 a2 Q
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
1 T4 w* I% {# B4 x& Q雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
( ]9 I0 A4 R: }( I2 e7 V2 a$ d% X" C/ `' J8 V2 Y3 B
OS選擇:
/ d: H. ~* I1 I" R. M- t1 n
- s3 T5 M) J3 O; _  hDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
! `0 ]$ p( |( l5 L- w4 m  t0 V. x- G# h/ \
方案一:NT Loader + AVLDR + Avlgo0 {- w0 V( o- V6 |7 u6 ?
  U( g1 D: C7 m5 j- k
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
/ K9 x/ Q% k7 n3 Z2 F1 F4 O6 ^+ T! I$ B
工具準備:/ K  A% v2 ?- i- x$ ?9 B0 \: a
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
7 ~' v) z: b1 g9 G  M6 d0 h3 _# U9 N/ `4 P5 B0 A
數據準備:
/ W' s4 V* [2 B6 |$ e2 R% p7 J. I6 u& G, t  _' y9 s* j
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
, j7 w8 N3 m1 a* Q
$ ]$ z: t5 K- Y0 V  h8 T
2 t& k" \& z6 F2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
- D6 B' j. J* I3 p$ w, P) `" R2 a$ N) z7 Z, c: t) k: X

( W) N; }( J% ^, u; q4 h1 ]8 m7 }3 t( e
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
! \2 {7 ]3 M, N
1 N: d6 g+ c9 Z) v9 M$ b4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
. Q3 v' B4 e% ^. a
0 Z7 x% c# i. J6 ?& r' v* Q; b/ E9 c9 J9 a. R
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
( W; s4 f, K1 [% g, l1 W
6 P. \' u; `% h9 I$ f% \1 d
9 S. o$ \  [1 E& s  @% v' L6 I5 @, Y' d! F8 J
開始組裝:/ ?( s* t7 a5 t2 V- ?) |

& z5 j& u& l! Q3 ~3 h3 L" G1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:+ ]* h3 u" O6 M1 ]  X, C* z
[boot loader]- j. g/ m; I0 o0 w) L) v: h2 X
timeout=30
$ R& l% @2 d  y! D+ J/ X+ d" Ydefault=C:\avldr.xpe
: [; s1 h) h. Z  f8 |2 s2 k* G  {) w[operating systems]
  C; E& ?2 D* |9 N- LC:\avldr.xpe="Windows PE ByaoMaotao". P, |: c- z2 K( @) f( D8 k
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"0 T; p$ y# p# l0 x
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
5 p0 l$ I& r! I$ K
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。6 G" l; R7 W& ~+ ?+ r

* K& I1 H( e& S& i5 |$ Y/ K這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
/ l1 [0 h4 l# D8 z
1 L8 \, h& ^: T7 g& F[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
+ @' E2 o3 N8 k) N' D* v; @/ O5 z4 g7 c1 ?" l8 A4 m
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。+ C. k, t- a8 S' s& z$ c0 a
' p; p4 z* O. X/ R
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 T( x  B9 A) @8 H
4 A( u0 d9 R7 S& Y* s7 u1 f
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。" z* m0 x8 v# D) c) ~% w5 d4 m: u9 W
* f6 l. ^% n2 y; \, m0 I
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環境下。
0 {- T* r5 g) ]7 `! ?. t; u
' k1 N, J; r+ I6 V' I/ R) R7、把前面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環境下。
7 Q8 f/ v) a+ M) z6 ]) e/ P9 Y
& V# b/ P+ u& z, Z, w至此DOS/WinPE雙啟動系統維護U盤製作成功。
: ^3 z# k$ r2 X6 Q
# z# A+ C+ x8 {方案二:NT Loader + Grub4DOS
! M% C5 H- \" h6 O( H
6 I- ?4 p, ?  K4 k2 r4 J因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。6 ~4 p; F* C: q; R- I6 Q$ v
! C% O& S3 N  z7 p0 ]
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
4 U* S4 v: O7 F, M8 o  Q: h  ]2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。4 [5 v% H: x% h# x  v0 |1 V
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:9 M( D, q2 e5 j1 F
[boot loader]
2 e3 o7 s# l& r. Atimeout=0) X6 ]3 M8 n# Q+ t" i: r. m
default=C:\grldr! ]. o0 I  q8 E: H% r
[operating systems]% o& d  w2 a/ O9 ?# d
C:\grldr="Boot Menu"

1 Y) H) Y8 }5 B9 z& v6 b" q* T: nBoot.ini菜單各個項目的含義請對照方案一的說明。
0 f: u. J3 S9 G+ Z; J3 ?' y( m$ B4 \
& @; j. }; X9 c0 Q" T( M9 ^4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
, O7 \: {: n% b
* m+ D$ @4 C9 p; _( I  y6 O5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。  A; S5 }$ u  C+ [* q9 u

3 z$ U7 {0 C6 R6 v5 R1 @7 C6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。6 X" p( s0 B1 X' b

1 K7 X+ ^& B" x% Q+ @& ]7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:: F6 @( }0 Z4 o" C( n7 K
timeout 30
1 T7 E! y2 f' d8 a. N: P  adefault 0! h5 }, A8 G+ _4 [1 ]1 I1 P
splashimage /boot/splash.gz
% l2 J, W1 R1 q  R, sforeground ffff00
2 o8 |7 k# I: ^  S* Cfontfile /boot/fonts.gz* B  f& U7 @, i% {0 A
title 啟動 WindowsPE+ j$ w$ Y" B: [7 J1 D# [; h
find --set-root /grubidx.txt, q& ~& u1 m( X) g# Q0 m
chainloader /ldrxpe
, `  D4 y: _; g) qtitle 啟動 MS-DOS 7.1& l2 [4 ^6 Q# ?3 x
find --set-root /grubidx.txt
: V2 b) t6 ]% ~/ @- k  fmap --mem /boot/dos.ima (fd0)2 f8 \( [) f1 h* s8 o2 h
map --hook; m( z: H% E1 q3 y1 N1 h5 H
chainloader (fd0)+1
8 d- D1 y+ U/ f" f* g( [* U/ brootnoverify (fd0)
' w4 Z6 v, ~/ I% |7 L
做完這些,U盤就可以啟動了。
) f0 E( l/ Z1 [, O! Z+ g4 i/ }6 `. f+ o; i& m
菜單項目說明:
# G$ @6 A. W  @3 O, s$ A) ~$ c  b2 R# c$ U/ Q- q: `5 f* _$ y
第一行設置等待30秒的等待時間;
9 r% z# Z$ B/ z9 k! q) G7 I
  ~$ i. b- O( s) Y% e第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;( Y* x5 o( c) ~$ m( a. P; q

0 p6 U( D) F$ o0 ]splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
  E' z2 J4 u! j2 q# n- i  \9 S8 i1 N/ r- @3 E
foreground項設置啟動菜單文字顏色為亮黃色;
8 P" V* _/ `, j8 U9 l: q" m- r6 Y' x! a" D- E/ w
fontfile項設置中文字體文件為/boot/fonts.gz: p" L" n, @1 [; X

/ @) x3 T; P9 M: O1 O; O  S下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;9 O2 T4 v9 o# m4 U+ d7 Y! u

- m' \3 W- b; \) Bfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
: D+ F5 R5 n% C- K. P9 Y  W- @5 `) S- E
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。# Y7 _" ?9 e) B* z4 W
* A% z1 M+ X* h$ c/ V* |2 Q
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.* Y3 H; E1 K+ ]& g' |
+ t2 F. p3 L( ~! j3 f7 y' O1 F
map --hook是讓裝入的軟盤鏡像立即加載生效。5 I) N1 x1 y8 u+ h, j( T* T- s
: L2 R! l# f( h
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
1 h4 s6 o7 c9 {$ _" l% |' _1 O$ S( e* t9 @8 i
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。3 D6 H' H/ l+ v3 D* U  ?: D
+ q+ t4 s; {7 H1 v0 V& M3 q& ~& J

( e: L- _+ k6 ~+ K, q2 B方案三:MS-DOS 7.1 + Grub4DOS! z0 t7 C% G7 u4 E! Q/ ?

, O0 M& l. I% P6 ]3 D8 k本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
8 f3 F7 z/ B$ D( \5 W
  G2 u. i( L& w. M, |0 o本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。+ _( ^2 x7 U+ n% u7 r
8 D5 }( o8 B& w5 f- U  ~! h
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
" ?3 ^6 g: d) r2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
- ]' t+ I, l4 C0 R1 ^3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
0 g7 Z- N7 W! r+ C# R, s* G9 N4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。- U, W! j# @, b4 r% h
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。7 {: k9 J8 ^" R  F8 X2 R
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:7 y1 P4 O% W3 w0 h: h
timeout 0
. c7 ~6 T1 v- p7 K  \; fdefault 09 Z7 ~0 _( h/ B+ @1 L. L6 o
fontfile /fonts.gz' @. x! G* o. J) L/ ^
title 啟動 WindowsPE
  d6 o: X" X6 s0 l& c% mfind --set-root /grubidx.txt
/ g# G& P. G" t: b3 i2 V. C6 ~chainloader /ldrxpe
) j/ |5 y' v; e& m) \+ x+ K
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
, t, w9 e* s) [/ j' c0 C2 {$ T2 b1 d0 Z/ _: J, Z6 [+ r
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
3 ]5 Q! I  U3 X: X2 m4 r6 l* i) o
+ r" K( C) C. Pgrub
( J5 H" p4 S3 e# R; k/ T+ Z8 G1 {* J, h: A! @
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
9 x! u! Y$ }! f) P: }. M4 f! i( W$ s* p, y% I
Config.sys內容:$ C" ]% N- d+ K1 a1 w& R
[MENU]
4 R( g# \& h( c2 i1 a/ v$ IMENUITEM=1,XMS without CD-ROM support2 a8 P- @% V: t+ {+ _: ?4 K
MENUITEM=2,XMS with CD-ROM support2 j. L. |/ R5 N8 F- h
MENUITEM=3,XMS and EMS
+ T. R( M* s& {  ]MENUITEM=4,DOS real mode(no XMS,no EMS)8 G3 j( U2 E0 }8 P4 a
MENUITEM=5,Windows PE8 }* {2 z# _  `" N6 F9 O
MENUDEFAULT=5,30  H( U8 X6 |! a3 N+ o
[1]
$ z1 d5 \1 z/ T5 wDEVICE=\HIMEM.SYS /TESTMEM:OFF
8 U$ U1 G! L5 r( {9 e5 rDEVICE=\EMM386.EXE NOEMS+ J7 e$ [, W1 p6 h# J9 {+ T& A) b
INCLUDE=PUB( {5 {: n; _( v  V
[2]9 I# p6 z* Z4 H3 o$ j: ^% `) L% p
DEVICE=\HIMEM.SYS /TESTMEM:OFF
; J9 Q" [' }3 w$ }# ~DEVICE=\EMM386.EXE NOEMS; F& i7 _; K, x6 o* N2 y
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001( `7 S) F* h) A
INCLUDE=PUB
* q4 C: k* W/ J1 p* E9 W7 M[3]
; E  r- N. ~/ m, F; eDEVICE=\HIMEM.SYS /TESTMEM:OFF
3 w# N. P$ h+ F- LDEVICE=\EMM386.EXE RAM' O3 e( Q3 U( l* z
INCLUDE=PUB
1 r0 c  |0 V8 x, d4 x[PUB]
0 e' {. B" L9 j6 h5 S% a) eDOS=HIGH,UMB6 E& Y# v6 q4 y) [- k  d* v$ e# g
FILES=30
7 l! A7 n- r2 H( ?7 [BUFFERS=20. w: |7 T7 F- Q! g: S
STACKS=9,256
3 A2 i5 W5 X, K# Y6 _+ KLASTDRIVE=Z
' }% N0 m* c+ ~" `. q) Y[4]4 `9 P4 V8 b+ G' e! v' n5 l6 v1 [
FILES=10
4 A, A1 E$ F% R; a" ^& R; sBUFFERS=10
+ N( ~. w3 [4 V, U7 YLASTDRIVE=Z
; f4 g  K5 k  [# q[5]
; n9 }3 W  t' U  y/ h& n/ A" IAutoexec.bat內容:
/ p7 y8 K4 H+ V: s@ECHO OFF$ F8 [* W" }) n% U. l% B
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
- O' x- e$ X; }1 x( m' Y' |$ nGOTO %CONFIG%8 w: I$ \* I4 _: w3 P
:1
/ N  K, P! ]  e$ z9 D0 ^. uGOTO COMMON) n1 @1 G: k8 ]. f
:2( N8 M2 e6 N, `# I& O6 `; M
LH \SHSUCDX.COM /D:SSCD001+ K. _, s+ o' l0 b. y/ _4 w
GOTO COMMON/ O$ {. C' v& V8 i8 R# e
:33 i$ n* `1 g) Z- f
GOTO COMMON# `/ a/ j7 [! S$ I8 v; h# R
:4
; w8 ^2 e0 g# |" v3 }* JGOTO END
! `/ M, K; l* T, @:5
6 j2 ]9 p0 o0 }: N& t5 @GRUB% i( i" k  n0 R+ m& t5 A
:COMMON
; `7 e$ z# F5 I  W( qLH \SMARTDRV.EXE /X$ X# n0 W4 u. G+ v
@ECHO Install mouse driver?  v1 C3 s7 Y, [  u0 r
\CHOICE /C:YN Yes,No /T:N,66 M/ S" O9 c7 E$ R3 n
IF ERRORLEVEL 2 GOTO END
! W7 c' }/ L; `/ s0 eLH \MOUSE.COM
7 g4 b8 L: f8 p7 k; c# Y; p8 X:END
1 N! Q* ~. e2 h" J

# |5 m# G6 z% {: l9 Q# p按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
( p4 K4 U4 d9 d& V" n
1 }: u4 P+ Z* d$ ?# b感謝5free和david_ge的幫助!
) F# T$ ?) J' T/ G+ \$ f
. ?+ L& F: l6 Y% W( p. a9 A- `( ]& F本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:5 W6 o9 X/ y$ E- ?; ^
2 t, c4 N, Z: R5 c) ]  M$ x
http://bbs.wuyou.com/viewthread.php?tid=94087
) P2 E& ]6 f/ K" z: ^3 vhttp://maotao.u.winzheng.com/
8 o1 P; Z( U; W- @9 n$ l% Q0 Z, N* \' C) C+ }
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
! O9 ]3 |% g; z9 B: f' a  y) S: X! o5 G  c; N  J3 g& Y( m. M
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。- \, V' ?; C- H, Q
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。- F* \, Y  _3 O6 w% z) X9 G7 D

, Z% _  ]3 n1 i2 \! M目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 31-8-2026 02:45 , Processed in 0.177094 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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