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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」
( ]% L0 S3 b% a: S% @! a本文原址:http://bbs.zuluck.com/thread-1902-1-1.html! O) f' h% s: E; X$ B& h+ Q9 w

+ z; i+ @( V# @, X- ~* a
3 Z" g) }. w# p, q' M沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
+ Y1 f/ n9 e/ Y
  u0 z  D/ c! ~前緣:
3 m2 G% S# I: j! a" B/ t- r- W6 i* M$ |) d7 R! L
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
  Q+ E( d8 H" [" n( [/ C% |7 h1 {
- A8 a- O% q& o7 g& G5 _" G% u+ `目標:3 B& r0 r6 m9 \$ |
" z1 T- S/ M: q/ X. h
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
# P# B9 ~4 T5 J7 b( I3 S3 K/ B7 e3 T- c: ~% f& U$ e2 ^
技術背景:
# H. j) _9 C# F6 E
# G2 s4 A! z8 {0 `# A其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
+ q7 l( R2 w2 d/ M4 p- t% \
+ b0 E0 w5 M$ n8 f3 P! L首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。  q2 w- P; T0 X/ @
6 p- I0 s2 D' s$ B$ a8 ^$ o5 x. j
因此完成一個操作系統的啟動,
8 r7 g( ~6 S% m) x# m$ h需要兩個必須的步驟:1、MBR引導;2、OS引導。3 X8 @1 t( R2 ?' _$ w3 n

% A/ ~- O0 ^6 g, X2 M; q基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
. u  `0 ^- O# @" M/ ]. y
7 |" N5 x6 x- v  Y, V對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。* ~; p" h( v( j
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。' N" y0 O+ L! Q9 v6 i

7 `* v8 ?4 e9 Y4 oOS選擇:
( S$ z; ?8 q6 B' G5 o2 }, [/ \
4 m# C8 k7 {8 a0 g0 ?DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
0 A' ^& g# y$ M0 V1 t
1 w- u5 k& N$ t3 C: I: C7 b: U) z' E2 x5 J方案一:NT Loader + AVLDR + Avlgo
, Z5 d  I! Y3 E. a* Q5 U' e8 K( G! U
; ?5 k& V- f  jMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
5 V% M- z  T3 I$ o" @2 X6 \' u9 t* r
工具準備:
- _! O$ g; F: F9 c5 A0 i$ ~. nPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
) @; u' K0 O" u1 A" l* B9 P
; B' c! a- `+ Y+ U2 R7 R數據準備:3 \9 P: g' Y8 Y. }' a8 R

' a. Z( K2 [8 j6 w; z1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
- N/ d4 C3 K- ?( W! C. w! H6 x
+ c/ L: Z* ~" _# [* h2 e( _1 Y. B" `& u
5 h& i* C3 y' k( Y+ ~/ r' c0 n2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
( ?& c: n7 h" i- {: ~7 E5 w9 K8 ?  L
+ I# w5 ~& z" g+ O8 |/ }8 Y5 v. i. j
/ B, u* \" f( _0 M( _: J" ]( d
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
( r! H& I+ J- {2 l2 \/ h  M# o+ W; W: b% i
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
! h: j1 `9 o5 f, m7 G3 x: T/ v( m& y0 b3 A/ x. P
' i: ?8 H/ U% k# @8 T" z
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
) `9 f$ X7 c) {# g$ M. P; h0 j1 C) B, I! k- w4 l
: r6 e' @* c9 I' @* Z

) x7 H8 d- [2 v" I! f* m開始組裝:+ B9 V- P/ _* l

4 M( O% [: C- E/ D3 l3 n1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
6 }/ F2 F9 f! O
[boot loader]  K2 q$ l1 R: o+ u
timeout=30& z. o2 Z2 k9 Q+ ^& c
default=C:\avldr.xpe
  e8 c  o( G% f8 L& `( M, x[operating systems]  G' Y5 y( T' [. d2 c7 L* x. j
C:\avldr.xpe="Windows PE ByaoMaotao"1 ~: l9 g8 N3 |
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
4 s* D% c- N4 r3 NC:\avldr.dos="MS-DOS 7.1 from USB-FDD"
* _. k) M! V) @5 T% c8 N: X' E
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。' p2 p6 D& R; g+ y
& i9 C! g7 m7 _0 e& `
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。* U' v- z' K3 l* [" S
  ]- A# |: D5 x! m$ u
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。+ d8 X" ^5 W* q; d" X+ V6 F

% u- T  W+ U5 o5 W; X+ l2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。, H4 B% Z9 v7 x5 t

2 l: D6 G& f0 f* V7 D: q3、把下載到的老毛桃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環境下。
* a, _" C3 m8 E2 r7 D2 x6 X/ b7 q
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。% D# `7 O2 B" t5 `
) C# z9 N# y, Z$ q2 g7 @
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環境下。
2 U6 ]! S5 H: X4 {$ \* |6 x/ j3 z4 j9 `# K7 P. U  A" f! ~6 U+ _$ l
7、把前面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環境下。
+ Q5 B) \: X  p$ A% a
- ?9 N. ~- A. I4 L# ~; {至此DOS/WinPE雙啟動系統維護U盤製作成功。% q  E, n0 w" @8 A
" _$ X( t3 c. ?7 }. w/ ]9 F  T4 c
方案二:NT Loader + Grub4DOS% G8 c# S' ]7 w* v8 l

1 U8 W- h2 m3 Z5 G5 L! `因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
( \2 v7 \; d: N. B) d5 q. }. l4 L1 f* j  l* P
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
  I0 D& H/ D5 \- B2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。  [7 `- I: h7 M; f) d5 Z
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:" _- ^& ]2 A2 O) |1 H- t
[boot loader]
' g" O0 l9 S# R% U- S$ Utimeout=0" K, E/ B7 A& z( G. b+ ?  N
default=C:\grldr
2 n5 S( s" f0 d[operating systems]8 t; L2 J" c% K: i9 Q( P
C:\grldr="Boot Menu"
2 Q: k2 i% W# ?( B8 e
Boot.ini菜單各個項目的含義請對照方案一的說明。
1 L, [4 w; v3 {/ h; e- @7 Z( G
' h9 P8 Q) Y9 X& t* f4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
. J6 N$ R6 K0 O# X* o" G0 q% B3 q
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。+ z/ V+ g, C" {5 {
4 P6 N9 q: D$ Z
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。7 i% N* W* b' X: c
2 U9 Z/ U$ t8 F+ `( S
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
* M3 t. _$ H% V1 R$ x4 \( Q8 y8 @
timeout 30
# h' W% e  j% k9 Rdefault 0' \# w# _9 W' U
splashimage /boot/splash.gz5 }5 c5 o) `0 }# e. ^
foreground ffff00
3 V# E, Z  Q5 j/ B7 y5 K( yfontfile /boot/fonts.gz
) A6 o: l4 S  v2 q9 Q9 N. G7 K( G) ntitle 啟動 WindowsPE
% |5 Q2 l* j* |4 Sfind --set-root /grubidx.txt
* a- E  d3 Z  t6 Mchainloader /ldrxpe
+ }# `3 y. f; F, T+ t% W; S4 stitle 啟動 MS-DOS 7.1
: S: [) J( t& |9 q# s% l2 Zfind --set-root /grubidx.txt$ S7 _" x7 F0 a) f: l
map --mem /boot/dos.ima (fd0)
8 L, e* m3 l! @) a$ X0 mmap --hook+ X0 m) x% n9 {
chainloader (fd0)+1# ?, p) a, O( F+ G
rootnoverify (fd0)
1 n/ V* a" X+ [* w
做完這些,U盤就可以啟動了。
% C: G  _( ~2 f$ X; k& T% o2 [; e: X
2 E# f. L2 s; T& \7 E( j8 G9 |1 I3 g) @菜單項目說明:% ?) B/ J  e9 m1 s; f
  j$ k5 d3 E: ~* ^# k: G! ]( w
第一行設置等待30秒的等待時間;
3 E1 m2 _% m8 h
9 J) k$ R% n9 j- O0 [+ c第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
# A7 {% l+ Z7 d' S. @3 R; E2 ~6 ]4 v6 T
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;7 n6 Z3 t; ~; r  O
# [8 f$ Q3 w# k5 c5 s! n5 {: L
foreground項設置啟動菜單文字顏色為亮黃色;' M8 |9 @' v0 {, C$ H

8 A' {8 a4 M8 ?) efontfile項設置中文字體文件為/boot/fonts.gz  r, k- E( E( d8 g0 _+ Z& o: }

* R/ E3 j, ]8 a5 v+ D, }0 A2 w. v下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
9 y$ q/ K6 M3 p/ a+ l7 W2 o& y
% U; M+ N1 H$ s; T$ \* f3 ?' nfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。) \! y, U- d" F/ z% s4 Z

% \+ a- P+ ^1 ]( A0 n! N% m0 t5 ?chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
5 E" n1 K$ q' V: z; \; {
7 x2 ~7 V" X4 X) {$ Y1 Y4 Gmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
0 x0 `- N' i8 N1 [& Q" U
3 Q; L/ |. J( I4 T/ imap --hook是讓裝入的軟盤鏡像立即加載生效。, j: @/ X( @$ ^" Q# u, \/ X/ ?

1 G1 o5 \! w8 Drootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。) n$ T1 y* c8 v6 i. k

0 M8 }  R7 L$ x4 G3 }# o本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
! a; t8 I3 Y: b( n$ _7 a! p3 y: I3 a6 y  x8 l

  ]; J" R' H( q2 M. M, r方案三:MS-DOS 7.1 + Grub4DOS
0 g% J7 N5 m1 M+ J5 I
5 e( ?' _+ B3 W0 C% u. D1 G: a( I本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。' z1 V8 |7 C9 G$ P. F5 q
0 S6 i! x; H9 X% v2 @
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
* M# c1 B9 ?( C0 y. b# C; @5 l0 m2 H+ P3 ^5 q7 z; W
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。% u5 V2 @' I' l6 V  D
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
8 i: u/ y7 u. B; c6 Y3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
2 ]* l! B, x( P6 {4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
( A1 ], O1 i: b5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
3 U+ Y: b* P" B$ }4 p. s6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:; Q! v) T$ [$ a) x7 Y9 j- J1 e
timeout 0- Q+ b, E6 J2 T3 l7 h# i2 d2 A
default 00 |( z8 I! ?5 D3 F' }
fontfile /fonts.gz
& A, q9 R4 N2 n/ x/ ftitle 啟動 WindowsPE2 M- n! n1 e; w! x
find --set-root /grubidx.txt
8 \) f# F) l/ {; k2 k4 Uchainloader /ldrxpe

# E7 M* g# W1 ?5 D2 `6 a在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。$ w9 M6 [/ f" e- |! ~

" Z( {, D. V  F, k( M7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:& X' z7 B' _0 _& @$ W
6 [( {* {. m2 c  n" z3 n. u' P
grub
* \) Y# }2 j% D" r4 j3 a1 r  ?1 B% l, Q9 S. w8 j9 c. m
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。* n# |: Y* N( j8 j9 y& E0 N- @

9 p4 r( k8 i: n. J6 S2 |, AConfig.sys內容:( M, d" S4 F; S+ U4 K" T* ]
[MENU]
/ S7 C6 v& w8 I2 a. u3 i5 mMENUITEM=1,XMS without CD-ROM support( D4 ~* S7 ?7 v
MENUITEM=2,XMS with CD-ROM support
! S' u0 K& w* |: IMENUITEM=3,XMS and EMS
! e; Z0 W/ s. t' DMENUITEM=4,DOS real mode(no XMS,no EMS)* |4 ^5 n. ^; R
MENUITEM=5,Windows PE1 m+ l1 f) L6 q% z
MENUDEFAULT=5,30, n8 c  L9 I! T1 U9 a5 X8 X. q
[1]; ^5 ?; d/ m- n- [3 x
DEVICE=\HIMEM.SYS /TESTMEM:OFF) {" M5 _& @0 ~9 ~/ ]1 T( {
DEVICE=\EMM386.EXE NOEMS5 j/ y/ l: V% o( B4 ^2 r" F
INCLUDE=PUB
/ Q2 ]2 d7 l7 }/ X* [& \, E$ I[2]9 d; I1 k5 K  w+ u9 [
DEVICE=\HIMEM.SYS /TESTMEM:OFF( k; ]* G- v- U: f+ F
DEVICE=\EMM386.EXE NOEMS* H# p1 f  U2 i! J: |. Z3 |( \
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001* k, M5 R+ w2 o% K0 i# O3 f9 m3 f
INCLUDE=PUB4 o) b" x  ~8 M% |( P/ L
[3]! ]- @( y( U) @9 N$ Y
DEVICE=\HIMEM.SYS /TESTMEM:OFF
; B& m3 f; X3 w' F6 GDEVICE=\EMM386.EXE RAM  ?' W% w& L8 O
INCLUDE=PUB0 O& K; o: F; k) p
[PUB]
% r" H1 V- r3 B0 _4 `DOS=HIGH,UMB
# R3 }: ]2 M( W2 n4 y& vFILES=301 h2 H4 ^+ H3 N/ `
BUFFERS=20
/ v9 `6 }7 T5 l& p" @STACKS=9,256
! {0 B, `) H7 `; w- @# XLASTDRIVE=Z
1 Z5 l5 B6 Q% P- F, J/ B[4]  {  N: _+ n1 Q' O' w
FILES=10
' |8 S; }% p  A& U+ @1 PBUFFERS=101 r  D! H) y7 E
LASTDRIVE=Z2 I: \0 P7 M0 e7 O
[5]9 i5 U6 a2 |! V$ p+ D* Q4 O8 p
Autoexec.bat內容:4 K3 z- a) d/ f$ ], b
@ECHO OFF8 K0 ^6 L% D1 ~. p  f
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
: p1 `% O& P, J5 j* y0 v  QGOTO %CONFIG%
& B9 o7 e' d# `2 i, p) L4 U% X:1, P1 ]4 y+ m2 @* a3 `0 N
GOTO COMMON
/ M, n6 D4 k2 g  U* t) P; y7 _: ]:2( m: c5 |# f! `4 q$ E
LH \SHSUCDX.COM /D:SSCD0013 ]' ^' s( N3 f! X
GOTO COMMON( h0 p2 }  @, Q! J( |* L
:3
$ Y7 p5 W$ \) O9 D6 QGOTO COMMON; d# `  e6 y2 l, c
:40 I6 \2 Y$ \; r' j: A
GOTO END
- U' Z! K  P4 I6 a" `( c& ^:52 q- b& |' x! X$ v: g& y; G
GRUB0 ^/ x+ S* I9 `; p+ O
:COMMON/ w6 m# F7 E0 ]& ~2 c$ @
LH \SMARTDRV.EXE /X
( u0 w, V  v9 ]3 H" `1 l@ECHO Install mouse driver?
# @; w; f% G" Q# }$ a  H. i0 s7 D\CHOICE /C:YN Yes,No /T:N,6
/ u! q" }. `: D  P% BIF ERRORLEVEL 2 GOTO END4 F' v5 D, N  v0 g/ R! V
LH \MOUSE.COM% M& u% y2 y" E0 e, I% f# I$ f; u
:END
. d6 v1 w3 d$ c* b/ c" L

  b7 V0 d# G+ k& q按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。0 R, ?0 B. ^3 E- G9 L/ j7 O
: f1 i0 m: h, s
感謝5free和david_ge的幫助!
: G: {4 o7 ?0 b& \# [* w
) Y- N5 g/ `7 n" _) q( Z% w$ _本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:( L2 j" t4 K. i6 j$ C

( l9 D% R3 ^6 H" F- Dhttp://bbs.wuyou.com/viewthread.php?tid=94087
; C1 B. a( A* Y% S9 W; ]2 mhttp://maotao.u.winzheng.com/
* b& N) }( t6 z3 f% j  J6 S, F0 D- O! {! d# k
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。! `0 U! V+ f$ Z: c0 L& _9 m
* `0 I1 Z. W- v: `
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。4 m: ], C& g$ D
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。+ U) L8 v& ^$ n8 P! j, T/ x* B

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

本版積分規則

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

GMT+8, 17-3-2026 01:41 , Processed in 0.410468 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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