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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」
- f) G$ W& f' d, R$ p7 A8 K本文原址:http://bbs.zuluck.com/thread-1902-1-1.html- H1 Y+ U- ^- V  i% E

# w, n, |- ^2 g8 r+ p% n8 _- {# h7 ?  N; y3 x% u
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
- r' h8 b$ v- I+ Z! U$ X
6 x# X* i; {  E+ `7 T" C2 ]9 z前緣:
6 M2 c* Z/ a# f3 S$ f! k- L5 f1 G  Z8 Q/ B5 c' l
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。" [1 W1 L" N" y9 u( Z
% b# g/ }2 E4 x7 L2 H8 T8 |& J, H0 I
目標:% J  o2 A  h5 ?/ D$ t
1 K4 X4 \5 s8 U' V
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
7 ?; j& P$ L8 C( T8 V  u  A/ y( [( _3 z$ b1 }4 T2 J& P  E
技術背景:
8 a- D. H5 U, c' N  S1 [5 @+ e% B+ e$ _0 a" p  j7 t
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。, i/ j+ J* Y# D) Q1 [; M
& r3 B9 @0 H2 Q! ?
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
$ o" o! f8 n  }. K" O  i8 e7 j1 z" R4 I) a/ m7 k
因此完成一個操作系統的啟動,
4 \4 S1 o" j  ]: n' `( R% c" c需要兩個必須的步驟:1、MBR引導;2、OS引導。
! v. @7 T! E& T' j; u. L3 a; v6 a% Y4 X/ r
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。4 K) c1 g- [5 [$ p5 n: q6 R/ W
; Q5 p6 n! G. v9 Z
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。+ ~- G. W0 _) o8 R7 E( i1 y) Y- x
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
* p( K, B% \8 N- B2 @7 o8 t: }" M# x$ a! _7 j
OS選擇:: G4 H2 D5 k" B7 n0 B" t$ ^* n0 A
. `2 Z  D) @+ q5 x0 W4 [1 h
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。3 t, K7 K& E& N2 b% W  C) |0 G
8 l9 d: a5 N8 y' P' B8 @
方案一:NT Loader + AVLDR + Avlgo$ U9 p( m5 w% B! U# _1 c& c  P3 Q5 b
: I% x/ h/ b: c+ @+ X
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。: P$ [  k' B  S7 X4 ^( Z1 c- K

# _* g( Q8 O4 Z. k工具準備:
) j7 k( r: t+ C% jPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
& u8 g1 o) v' M, _* [5 s2 R: P) {, Y- C" ~
數據準備:  A$ X7 `3 |% U! D
  T+ n! K) f; O' ?
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。6 q9 ~0 G# J0 `& _

/ F! z, @. T: L, r- e1 f6 C+ I$ R8 U) R, A
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。0 Y" k% `3 v) P$ T. v: U( h9 J. c
! l7 x# r9 e4 F8 j6 ^- d

+ Y) F; z3 O3 I* z# S0 i% C' P7 D* i3 a
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
- Y: x1 t5 ^# N4 ~. O- t; ~# W- a  e* O& g4 I) j. Y5 Z
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。* |" e9 R! f- D% ?$ Z

. |' G" w$ p3 v7 n, ^2 S, f
: U8 ]. d* b) ~; ?! ^! y5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。: e+ s. Q9 H+ {2 ^2 Q3 `
2 m% F9 |9 _) b3 g7 |  F! z( h% N" F

9 x4 X2 w5 ]7 M: D( u8 Z3 t& F7 n5 \
; A$ t/ _. Q" |; ^: @. y開始組裝:7 t# T( P$ a; S, r1 y

  E( d# _; `5 s# ~0 N  _; Z1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
% n8 M# P$ D( p& D9 Y
[boot loader]
6 s& R3 ?8 H" @5 ]- I5 W* d6 R* `9 {timeout=30
- F" ?3 x9 z6 W1 Ldefault=C:\avldr.xpe- M( N! B' V$ z4 Z: k8 R
[operating systems]; b- y$ e8 C* d% X
C:\avldr.xpe="Windows PE ByaoMaotao"/ d$ E7 K0 u7 |+ Y/ o$ [" H& y, Z
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
1 J9 E& @( N6 Y1 c7 u% UC:\avldr.dos="MS-DOS 7.1 from USB-FDD"

0 @, }, {/ h9 o, V; }5 e完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
, F4 t8 O! m! }) p& A3 C5 b
: s  Z( G' N, w' g這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。( k. l) f/ ~; b. f0 s! h! }
3 M* \, V0 V  e+ k+ l$ [0 U
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。( c! T8 N( ?5 F) ^- T/ b' M

1 g  d0 W) `* @" \- Y  E' s# A2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
( J  i! p4 ?! N* c9 Y* |2 ^/ j+ |1 p# S, ?9 n  D5 j3 x
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環境下。) P$ u/ w7 l# a$ B1 X& ~

6 q8 ^0 E: E7 S4 r' j/ J* d7 T5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。( Q% b$ z4 D8 A/ b  Q& w
! g5 d# ~1 F. \! R, ~( U) b. s& @
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環境下。+ V- ^3 s% e: ?4 o, _7 T  P% Q3 V

5 J9 I" t- S, f/ O* A9 G1 K# l2 b7、把前面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環境下。' o  C5 t1 v$ }- h5 ^) b5 m# W" |

  K, w; Y& {' F: u: ^7 B/ g至此DOS/WinPE雙啟動系統維護U盤製作成功。/ \" p5 L! O$ H

: z& ]1 Q# p! F' w方案二:NT Loader + Grub4DOS
0 H) Q0 {1 M( ?! f3 M) o8 }/ E# G/ \
" Y/ U  c$ l) r7 l" Y因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。7 `$ p2 g  T! A8 q0 `$ D+ \
* t6 W1 D1 e4 u% l# d5 X
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
' `0 _( G/ v% R" c2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。. q3 R9 V7 m9 p$ P/ P7 x
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:' H5 \, x' C% z% J, _% i$ S
[boot loader]
0 U+ t7 Q& X6 l/ y3 l6 z9 B8 itimeout=01 f- _" e# c- p! x, |* L
default=C:\grldr+ l+ y, T% [# L# ?* z
[operating systems]4 C7 {3 L# U4 A2 k- n
C:\grldr="Boot Menu"
) t4 z' |7 D8 I) c* s7 Z5 g3 U
Boot.ini菜單各個項目的含義請對照方案一的說明。
* M' j- f' M: D0 _) x8 c# J3 W$ B, I
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
1 b0 p) I% p; e, W( V. x1 t& g, l8 Q1 ]3 e  y, t8 C
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
5 J* ^% o, y3 j4 _) D! N  n
( q1 L; P2 l% Y& l" ?& X6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
: v! M; w  ~0 e' }! N
, X  }6 b+ X/ `  L8 j7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:! @) @" n7 ]' g9 _1 Y0 O
timeout 300 |2 B, G! ^. O4 R
default 0. }3 J- v' \+ t
splashimage /boot/splash.gz. s% T1 `( S) ^
foreground ffff00' z$ |9 W# t9 K1 W  E3 x( K- ?
fontfile /boot/fonts.gz) Q, D0 j6 [4 U+ U/ q9 x1 G3 I3 A# E" A
title 啟動 WindowsPE
. W2 `4 @1 z5 {- v- n. q" Ufind --set-root /grubidx.txt
0 K4 J  e2 W, z; F  [chainloader /ldrxpe
1 B' |/ ^- X9 ^2 E' C8 @title 啟動 MS-DOS 7.1! ?+ I7 [, `6 w) X* r2 @2 q9 x+ o
find --set-root /grubidx.txt1 J1 q* @0 N, L7 h1 W6 @$ e
map --mem /boot/dos.ima (fd0)
/ k5 e0 h( J/ _( qmap --hook
" t" E0 D/ I9 E0 \# A8 H. h$ r7 kchainloader (fd0)+1
0 E, M0 R3 E: W/ S/ O/ S: L; Vrootnoverify (fd0)
$ A# ^! G, G! ~: r- V6 C9 U
做完這些,U盤就可以啟動了。2 U' |7 t" d& b1 w$ U" u
& B! x+ i# c/ g% n* R5 m& k
菜單項目說明:
3 E' P, |# f1 c# E* q# _9 w- K3 K6 u8 _% n2 M4 E
第一行設置等待30秒的等待時間;$ V( f, q: r8 ^& W& q8 `
% ]; b5 q: L2 K+ r
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
! g/ f7 Y. Q8 M8 d7 S1 Y' P& j8 m7 T& c& ~2 `$ v0 f1 y9 c
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;) ]6 N/ [1 c) G8 d9 Y1 K
  E4 M( ?" j' b4 J- O
foreground項設置啟動菜單文字顏色為亮黃色;: j+ O* k" R1 j8 J$ f, }1 G3 {

$ O# z" i) N8 N. hfontfile項設置中文字體文件為/boot/fonts.gz; B; z, ?, L7 K% v4 N

. K* e# j/ e% b. J4 J; J- ^1 h  j下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
& D/ A6 w$ z" T
/ C1 K3 W* B8 B2 e* p5 L: A6 l0 c6 Gfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。9 ]6 f" U) c2 j5 H

& K3 M6 @3 G: ]7 L" \% pchainloader /ldrxpe就是啟動WinPE的XPE鏡像。* C' ^5 W6 N' E! A2 d; L
7 }+ u* t6 @8 R5 a6 e1 T& p/ m+ _5 j
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
3 f# S5 U  M" G) m9 h
9 D! W" T# n) y+ b$ Vmap --hook是讓裝入的軟盤鏡像立即加載生效。
8 T+ y: E" G) e6 A5 v. J2 x
8 l5 {& s  }$ w- b4 K6 erootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。( ?' v. Z# c1 G  j0 n
2 c( w: }$ c" Q# Q7 a% z$ T
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。4 U- u1 f* G- y! J. u- Q: {

' Z) G% |$ k, r% f! o  c! Z! x3 u! j5 l
方案三:MS-DOS 7.1 + Grub4DOS$ q2 w. d, C, m: S& r. u
1 k& e* I# n5 Q' @9 B9 Y
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。- i6 ^' ]. k) o: [- |  M$ }1 g
9 v% j+ b) L4 l; x4 {
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。  f9 I, a: ?+ K5 S4 `

) g6 e0 _4 S! ?; N  \+ O1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
# h& h9 l$ M0 s2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。( U' l7 ^' B8 T; ?; t! \
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
& u4 N1 Q0 ~- d' m  L3 Z, ]4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。( h6 L4 c" R% L) P) V
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。  F+ H! y: h- T% }3 E+ K
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:1 Q) L( A  h4 @% i7 r
timeout 06 m3 `/ f" N& _$ `" y8 g
default 0
0 |. c$ m9 R3 }" [/ u7 `. kfontfile /fonts.gz( _. W% L% N  X7 d  q3 `% l
title 啟動 WindowsPE
7 N2 @" G2 x( G2 d( T& A# Ufind --set-root /grubidx.txt  M" j) h) e2 g, _
chainloader /ldrxpe
3 }" K6 Q3 C/ a8 M* I0 m' @
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
0 |# ]: x' `* T: b- S  O" H, i! ?2 z2 d- C
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:, Z" r# Y) R. F7 ~+ A" X4 j" N

: T( h1 P; [! e* xgrub( C* B4 y4 |6 y3 R8 j( A. x

& u. W* K2 b7 s: B這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。5 c" u7 t1 v3 \
( U8 T9 \! ]' f; Y9 w) T7 @! \
Config.sys內容:$ }# Z3 c5 T) N" b: p# |) o
[MENU]
' _. y2 a3 ~; |; F% iMENUITEM=1,XMS without CD-ROM support
$ W8 o" e0 W6 u/ [MENUITEM=2,XMS with CD-ROM support
1 x) J) S6 V5 ]MENUITEM=3,XMS and EMS% Y- E' p6 r* C5 t$ i9 Z7 \9 f
MENUITEM=4,DOS real mode(no XMS,no EMS)" @( ^; B$ z0 K& P
MENUITEM=5,Windows PE
7 B' X# t' x' n  V/ T2 @MENUDEFAULT=5,30
7 R# i9 T( Z$ r& y[1]/ B8 U5 {2 W, }  m4 O3 k; u8 K% [# G  j
DEVICE=\HIMEM.SYS /TESTMEM:OFF4 ]4 g0 X0 O, z$ C
DEVICE=\EMM386.EXE NOEMS
3 u" y5 F. f) C" t# h7 EINCLUDE=PUB
9 O6 i0 B8 r3 a7 E7 n0 a[2]
: e; q$ {3 }, {1 ?* H# PDEVICE=\HIMEM.SYS /TESTMEM:OFF
0 e) Q9 w5 \' E" h0 ODEVICE=\EMM386.EXE NOEMS' Z" `' u0 Q; H
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001. c1 t* Q, L$ h1 r
INCLUDE=PUB7 k9 z  P- j3 J* N+ ~2 _
[3]: ]0 o7 g9 u9 D' ?, g% D
DEVICE=\HIMEM.SYS /TESTMEM:OFF
; k; F0 W' h6 q6 KDEVICE=\EMM386.EXE RAM
- V1 k) ~6 T# J4 U$ W* C: |INCLUDE=PUB% _* x2 o7 f9 \. ^1 ]- l
[PUB]
) u( N$ b: `4 H8 h# ODOS=HIGH,UMB
" B4 r6 @5 `3 z" s7 VFILES=30
8 p& S) I2 o' A- ^" M; KBUFFERS=20
4 A% A- o8 k  _: M  I' p; gSTACKS=9,2562 V% K! k8 Y# Y& ?, n. ]# F7 z: E
LASTDRIVE=Z7 f% o" k/ h3 N4 ]- }# P
[4]
8 ~0 A( O4 c! M* lFILES=10, J: X& Z) f% B: B: t
BUFFERS=10) [8 d. O- F/ k( P& j$ {3 y. [
LASTDRIVE=Z: M5 d7 y+ \) T. \& T
[5]* ], z. P* y& }( w
Autoexec.bat內容:
4 }" ]* q: T4 x# E@ECHO OFF
& S$ K3 F/ p) f# v- BPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
$ l5 O8 V1 L* I0 u' C4 aGOTO %CONFIG%* e1 s7 r$ c$ o' h" q
:1
3 ?8 Z5 k' A: CGOTO COMMON( t2 j+ Y' I& n. q1 I
:23 {9 p( r; s- \4 P3 _1 v  ?
LH \SHSUCDX.COM /D:SSCD001, e5 Q& C  o  c1 Q! r4 u3 x
GOTO COMMON
  w+ L3 w) B9 [" Q2 }" j:3& W' o4 j7 y; a1 L7 M2 H! X1 g' }
GOTO COMMON
  C1 v& z. E& b' @! S& g:4
) y5 d1 W; F$ S0 IGOTO END' e# Z3 n5 f" q9 m  L
:5  i: A/ c+ a$ _$ }5 W* N0 |. @
GRUB
7 Q8 Q9 A) [- P( r0 N1 y- y" e:COMMON; Q* }; M* x6 {" ^
LH \SMARTDRV.EXE /X; {$ z3 R% ?, R1 g
@ECHO Install mouse driver?
9 M# R# l" E* Y. @% }7 D\CHOICE /C:YN Yes,No /T:N,6
2 {6 j+ n* c  {IF ERRORLEVEL 2 GOTO END
2 }$ B) j# Z8 z5 {LH \MOUSE.COM
2 E1 `2 z" R+ ]& z6 x, T:END

1 q5 P* I+ R! G$ _9 `0 H3 @* [' a2 B+ R6 ]# a# k5 p* `2 z4 c
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。7 j& h9 d! I6 L" h. J

1 s; Q# u$ ^, \感謝5free和david_ge的幫助!/ r. n* J. X$ b( x. p5 X* K% t/ W1 Z

( V0 O6 m+ l/ e% i1 ~6 S本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
  u8 U! H7 c. c" g' G: i7 O! d2 \% @' \1 W3 o/ m" O* {
http://bbs.wuyou.com/viewthread.php?tid=94087
0 c( h5 c' s& `1 a  O" mhttp://maotao.u.winzheng.com/: c: X( _& [2 M1 {( l1 [$ x
1 }6 _( S  Q  {) N0 g  ^! @
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。2 g6 m# T+ G) n6 X" Y4 K3 p* E) n4 n
, X: u  E* {& A8 s
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。: j2 c+ l$ ]5 R  E1 ]9 S* p
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
- E6 D5 P! n/ Z) v0 }' \6 q2 \7 J" |8 Y5 `# Q5 g
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 2-5-2026 19:02 , Processed in 0.932837 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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