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

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

[複製鏈接]
發表於 26-3-2010 14:45:48 | 顯示全部樓層 |閱讀模式
轉載請註明出自「 Zuluck!- 運氣論壇!」+ |! n0 ^8 F6 U) V( w1 I7 l5 Y1 |0 u
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html+ Y; S5 ~0 q$ h# o( r6 |
9 w( D: C8 M) {- Y& X
9 A( z8 ^" r! `0 Q; U% }- q/ v" q$ e
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
& ^& e3 S0 ]4 ^( P; D. s5 e, o
1 e4 `3 L7 U1 r" Z, \8 |前緣:; f( s; ~+ E  [$ k! a
, Q' c6 w- N3 I/ [8 ]
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。( i& u" d/ \1 B

" j; F; ~$ M+ L2 _目標:
/ P4 H. ^( C; ~3 n, T. w
+ |+ \: j5 Q9 c% Q9 c對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
& W5 e7 i& L0 _& h2 O1 n6 F6 _+ E- `7 f7 g
技術背景:
5 a$ V4 i, Y; H7 Z& o0 Q
0 u* t- l; Z( q$ E2 \3 [: i$ g- p其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。  T% E2 V0 e2 h5 l0 i6 F

' I% y2 ?, v& l# k5 B7 \, j' R首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
; _0 x+ W* i/ F! T( k
, Y# H, J  S* M' _! K+ k因此完成一個操作系統的啟動,: u1 g( Z7 X" k& s$ k7 s+ T
需要兩個必須的步驟:1、MBR引導;2、OS引導。
# Q5 F( m$ W! v( e+ j. s& t7 w* |# G8 j% A) b2 M; H# _
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
, Z  Y/ G! ?6 c' |* f1 w& Z
- C' B. c3 _  J對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。" U3 T  \: a: D0 Z  Y8 F$ i
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
( Y3 r# a  k9 K7 P: Q
% {! B+ ?4 |0 W7 Z" y& T& C  NOS選擇:4 I- Z# l6 p' r' e/ s# H* t
3 A, M& V8 J6 |  I9 p  x
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
- w1 {- v* p, F/ L, x' i* J" m' S! p" O$ z! Z1 f) D! e+ ?
方案一:NT Loader + AVLDR + Avlgo
6 @7 {/ z/ Q9 B% r  k" K: G7 t' G* B
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。& d6 Z3 H# @: t
/ m+ Z, h5 g9 q/ s' @9 f. O. s$ X
工具準備:
8 t/ ?2 J. P8 t: K) D) H: L0 SPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
5 l8 p8 O# ^# O( O& r1 ^- ?! L5 V# d. x. G
數據準備:
' H7 f; S0 E9 V3 |7 j( i" m9 f* g$ q" Q/ t" N+ |8 r
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
9 N6 J4 W+ q& d8 l+ w4 i8 O' F2 }

' A* G; L$ E  x- J  y* {2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
0 q& k8 |7 ~+ R9 }# U6 c: |3 P0 D8 D6 u

1 _* E7 h) a9 u+ g! @7 R  [2 x) d- x- a
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。7 Z5 F2 X, M: E8 T

1 ~$ p% Y& k3 |: p$ d4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
! e) l& s. h, k2 G+ M# f
1 {: g0 U& I+ O4 W  p& w; v  x$ i1 q' x4 J9 j
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
7 O) A0 F  Z' y" z" n! l5 Y" R" a/ E% U
4 B, P. p3 P* {& t  Q: Q7 A. x

. L3 ?$ ?- K; L) Q! j, I( `開始組裝:; X8 e6 a$ D# X6 H3 h

( S0 |& v6 S7 b9 O1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
& d, _% G( I! q, P+ [& J
[boot loader]; V; P4 N# U2 Z
timeout=30
  }# ^. `# X0 k3 b- S5 U7 jdefault=C:\avldr.xpe6 x  }& F% M4 o/ ]! Q" p% C3 @
[operating systems]: S4 {3 P" ^; j$ n* I" c( p9 `
C:\avldr.xpe="Windows PE ByaoMaotao"4 {# T1 G6 h( r7 V& X1 v
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
% m; e# X7 g& h4 MC:\avldr.dos="MS-DOS 7.1 from USB-FDD"
- d% V  ~6 W; V( g1 h: V3 Z
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。* \, t! \; X$ z

% D8 e+ o; c& ], _2 t這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。8 Q5 N& @% Q' B

" U$ F" `. R; x- r6 _, `5 |8 O[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
  E  g% z$ y) u% y4 W. U* ^  }* u. [$ @0 A3 y( p; m- Z9 K
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
$ g2 r. G" Z9 H! _' g  w# H& j$ {- l2 h6 l3 m6 M4 e2 H
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環境下。
. u5 j2 l$ V0 c+ T- X
) I# B  h3 C+ O, ^  P. \, m( c5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。5 v/ y  C  t; q# v
) i2 B- ?: a% I' v
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環境下。( y- q) g8 z: [0 {" w3 n

' l) H# \/ W) C' B& e9 r. Q& \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環境下。( I* e+ E4 c, G$ c0 N

# ^- V8 g; k' ~7 F至此DOS/WinPE雙啟動系統維護U盤製作成功。4 u& S, ?3 |4 y/ g1 U5 N& A
) f7 Z/ L: z! ~1 ^% i
方案二:NT Loader + Grub4DOS- q5 }+ H: y: }

9 ^2 q( a0 D7 w7 r& A: g9 T. y3 K因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。7 a& j0 v. N. U8 c% x

" G0 z) F9 h; _1 J1 ?" ?/ H, E4 s1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。* Y/ L5 o1 j9 N6 Z
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
( L1 g9 p) h4 E# \! V3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
$ e$ Z  g$ X# W
[boot loader]3 F% z. Z* x4 V/ V$ w+ D% L
timeout=0& p; O7 M7 R. ^$ F
default=C:\grldr
0 I6 A! K3 g. @  B% x[operating systems]
( W) x& p/ M8 B2 GC:\grldr="Boot Menu"

8 b" P: ]+ q, v+ n# c* NBoot.ini菜單各個項目的含義請對照方案一的說明。
) ~3 P/ q0 ]9 J1 p) t, S# T1 {& |8 s  A
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
5 @. }" b9 a# i( X
/ t  H& I# S4 Q0 {% E3 g5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
2 U& G# t2 j7 F$ ~6 D9 z, T( c$ p0 a  D1 i1 B5 d( x9 b4 I
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
4 n, M4 t% [5 _# C, x
6 n3 f( E% j) F/ A7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:6 S; e# D7 a+ R# ~
timeout 30
0 g3 ?/ Y! A0 P4 ^- a6 s' k/ Q: B9 Q$ a9 gdefault 0
3 C4 g$ `" m( U- k- {9 vsplashimage /boot/splash.gz1 {0 R) E- P& T7 n
foreground ffff009 M  T. i0 B; K) N% U
fontfile /boot/fonts.gz
' i# N$ I/ v. ~  Z: R4 l+ Jtitle 啟動 WindowsPE
7 d) P( }9 g- d5 T5 _4 H# y- Ifind --set-root /grubidx.txt
. u8 Z7 L. W5 k: W2 P- Ichainloader /ldrxpe
' M' h: U' W' e2 htitle 啟動 MS-DOS 7.1
7 Z: E$ \* m- ]7 p& Sfind --set-root /grubidx.txt" p. M* |3 h* I% g+ t
map --mem /boot/dos.ima (fd0)
4 x  L( |% m* e6 ]2 \* ?1 Umap --hook
8 D/ C! A9 b/ |8 u" ^# t& v1 }1 j. Mchainloader (fd0)+1
& H% }+ c( I0 F4 A( e0 }5 Erootnoverify (fd0)

" P' B3 ?5 L5 N做完這些,U盤就可以啟動了。; P4 ]; z8 u% S
" P) i# [! E3 z/ s3 X* q+ |
菜單項目說明:: |: C  Q; f( u
- B/ E4 B& p- v
第一行設置等待30秒的等待時間;
6 l3 W, O, F" \% }+ r9 B4 i+ u
" h  S; m( P2 Q) v& p0 q) i第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
: n- \5 }+ }+ h7 C2 E( Q2 G, _, h8 k) b4 n; z
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
6 j' N& X+ l3 X/ y  x% x( b, ^3 m2 {; g9 M
foreground項設置啟動菜單文字顏色為亮黃色;
* G' Z0 h1 p" M8 J- A
, L- w8 k' @3 P  f7 _fontfile項設置中文字體文件為/boot/fonts.gz
! S4 O; r( ~  ^0 ?% ?$ Y+ g- H$ a, t' Y" d  h  F$ v" Q2 f
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
$ ~  [" H, @9 V" A$ m  p& ~
4 {& Q% R' C! [8 O  Y+ a2 Ofind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。. E0 n9 P+ `" H* F1 W7 N* [+ ]. s
9 i1 i7 @) l# N  ]. [
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。3 c1 m2 y, A3 X" _
6 G4 a% Y5 _* v
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
7 z' I5 D8 ~) c1 P
: l  B4 C" [$ ?: umap --hook是讓裝入的軟盤鏡像立即加載生效。4 A+ o& }3 s/ o* X2 V# w

+ O8 n% @$ }0 ?2 l! b' f9 j. J0 ]' drootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
& E5 `6 R4 O7 o5 e1 ^# p( b% v; Y2 u% I# [2 f; h
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
' y4 P: k, p( |1 W5 h' Q1 r0 M
; t- j$ r: V9 B" H
4 n0 M' L8 j( ~/ L: a7 C8 N方案三:MS-DOS 7.1 + Grub4DOS6 u: }- S. U) b, d0 }
$ o7 y& t* l5 o
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
1 b0 r6 u1 r  H* R- f4 c8 g" _/ g/ t  w# s: q# l8 z4 K
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。/ f, a9 e/ C9 ~3 \4 n; D6 ~

' @0 `9 ?" B5 H3 ]2 i. e1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。: N+ n4 _" J4 p3 m8 U( C
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。' J6 f( Q9 `7 h: A% d$ j; _
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。+ Y: u/ I1 L, [, i2 U( b+ P, Z
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
* {3 `; @& b$ v, X5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
( d3 W9 s' |  d' w6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
. \# @  F$ H, d; Z: V
timeout 0
4 u7 L) i" f% Fdefault 0
9 y  k1 ^, r  x- r/ efontfile /fonts.gz
! v) t9 ^* Q7 ^: O: ytitle 啟動 WindowsPE
9 k# o/ g( l3 sfind --set-root /grubidx.txt
5 k/ L  z9 V& c+ Y$ B" v$ Z7 C! f, hchainloader /ldrxpe
% o; d& ]! V. A! q; A! U$ P' Z- g
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
& `1 t3 i! |/ o, m/ q
" y  z3 R7 N8 c+ A" {, A7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
, b' S* W: N, @
1 F* c) O8 _, }grub
, m, [; j% O/ v8 x- ~, h& ^
' G$ Q- }. l  g& D% k4 a, Q1 J/ i這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。) `  W. {  N  u3 E

% f- @) ?0 `9 H: \2 \. U' IConfig.sys內容:' X( U. f( Y0 {. e9 j
[MENU]* p5 y: f2 r5 X! a4 L# B
MENUITEM=1,XMS without CD-ROM support5 f. F0 G' X# j
MENUITEM=2,XMS with CD-ROM support
9 J1 S2 n7 {0 o4 ~# \) {MENUITEM=3,XMS and EMS
1 A* _! c2 F) f' _MENUITEM=4,DOS real mode(no XMS,no EMS)
* q; f# Y' c5 e, NMENUITEM=5,Windows PE& O2 y) N% h  H. H# ^; V
MENUDEFAULT=5,30
& f' {/ I+ t. R2 ^- u7 x. U4 V8 r[1]2 {5 v, f8 Z9 R) z3 n# n
DEVICE=\HIMEM.SYS /TESTMEM:OFF7 n9 ^! J& A4 x* p
DEVICE=\EMM386.EXE NOEMS% x" p* ]6 E8 h, V* s+ @6 G
INCLUDE=PUB1 b4 c: F. r+ P" L* |5 v* H/ T
[2]; D7 r) `4 ]) M6 ]9 s
DEVICE=\HIMEM.SYS /TESTMEM:OFF
8 A( R0 n, N7 a2 D. d3 N, A- MDEVICE=\EMM386.EXE NOEMS
# ?1 R; `$ t- ~0 t; u& u8 GDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD0018 w" X. y1 A( {3 U3 V) i/ {) a
INCLUDE=PUB3 r$ g$ ~0 j5 x1 c3 z- \9 a( W- H
[3]
7 l2 X' t: [! S. CDEVICE=\HIMEM.SYS /TESTMEM:OFF
3 j# ?4 [# R6 O3 @: `! pDEVICE=\EMM386.EXE RAM* w& |: {5 B0 `3 }# e
INCLUDE=PUB
' ]* J/ [" Z2 Q5 k: C: B0 D[PUB]; ?5 O  H& H/ C
DOS=HIGH,UMB
2 E: i7 X  b* R4 FFILES=300 X6 I, Z/ D# n6 T( ]5 D& _
BUFFERS=20
$ k/ J; B0 m6 }/ T3 MSTACKS=9,256% a0 F! y/ U8 T- R% M4 z& a
LASTDRIVE=Z8 e, s8 w: K: i) g
[4]: C# C: ], S+ b6 ^5 s  h+ |0 Z
FILES=103 E4 L3 Z: D  ?( X% x& _- H0 U$ ]
BUFFERS=10
& ]! M6 D. y! a+ a) d9 r& DLASTDRIVE=Z
  J& f' ~% t, b[5]
+ g3 y9 W5 ]' |7 Y3 e( K: S9 ~Autoexec.bat內容:- L! I0 s% o0 M% W% T' d$ [
@ECHO OFF7 W: w+ |3 O* ?
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM3 @8 I: V3 E5 m: n/ e* T
GOTO %CONFIG%) j* |# r. C6 r( S. c( d& ]6 p
:1
* X9 ]6 W8 M( O. d& t3 J- oGOTO COMMON$ B" r! @: V) W! C  ]5 n
:2
7 P+ r4 k: Y/ \& v% H+ fLH \SHSUCDX.COM /D:SSCD0017 Q9 L% t9 \9 R
GOTO COMMON
% m+ T8 d' x7 q' l0 K% o:3
& ], \1 Z2 L; p6 I  DGOTO COMMON
1 T. x9 N0 T* k5 M8 f3 z! _:4
( y: i* y) I& I8 ~  ^7 b3 }GOTO END; c  \0 {; F6 P
:5/ r# }- \& l4 l" c( \$ \2 G
GRUB
2 T% t1 m2 M& s+ C6 A:COMMON0 z) f; m% D2 U+ [4 X4 H
LH \SMARTDRV.EXE /X
+ ~, D' _$ u4 z8 R( p- h@ECHO Install mouse driver?
) T! s7 ]' W+ m( F. {\CHOICE /C:YN Yes,No /T:N,6
; m* ~  k# E' U2 }# WIF ERRORLEVEL 2 GOTO END6 z; W4 e4 G2 X+ a# Y
LH \MOUSE.COM
9 l5 t' f8 _1 R7 _. U% T4 Q:END

4 j  O* T; L3 C" o; |
! K7 \( C+ [) ^: \  x! X0 A3 e按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
8 ?/ c! ]  J+ z2 h' c4 O7 O
( R1 u7 f5 s' R# K& o1 {& Z) B感謝5free和david_ge的幫助!
8 m1 |5 ?% j3 k* n' w, x7 k$ N% r
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
  h1 a7 U3 _2 r$ K8 }0 e
! C  t* I  W4 {3 s( d! w6 X# Chttp://bbs.wuyou.com/viewthread.php?tid=940874 E, \1 X& u4 y! @' [3 U& R) P0 K
http://maotao.u.winzheng.com/
- G" Y& c8 f/ E$ T5 K7 h$ d9 B! Q7 c- m. T4 [5 t# a. C) w7 r
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。. s$ w) b4 `6 w' x0 a
2 C% W/ |8 g3 V
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
- t+ x. V7 W/ ^' g# i+ f" W: p後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
# f+ ~5 @* L+ J/ y  [7 y# Q3 ^4 e6 c# |" B* F2 f; q
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像?
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 2-11-2025 08:56 , Processed in 1.009686 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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