|
轉載請註明出自「 Zuluck!- 運氣論壇!」
! ^+ T+ x4 T; m1 ^; C5 U; ?本文原址:http://bbs.zuluck.com/thread-1902-1-1.html" U: w7 g. Q0 {& u
" m! H' r3 ~8 O+ t! V Z# s. P
! @: o0 r6 z! t( [9 N6 G沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
9 i% B% n" |$ q9 [9 u! e) L9 M+ `3 P5 X! k
前緣:
. | `1 M! k+ b/ k) |7 d/ T4 H: x) H" O4 o0 z! `3 x) g# y
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
' ?5 e+ o0 \' D% W2 `" z8 B% ~
8 D% S. A6 d" X, y) q目標:
0 f. k$ |* G' e+ x' K) H/ @( j4 a( l& ]; W9 ]
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!4 A: l3 K4 ~, v! i/ i8 J3 F3 B
, N8 \4 o% `0 S3 A
技術背景:
" G* }/ i/ [ \9 \" t0 |' F# \$ L. k" f; c3 V' M% B6 W
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
1 a% G/ y9 `8 y
2 A' N# U8 q n首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
- Q& c2 L9 Q) _$ X+ e3 h U. I1 y. A. } q- x, R- s
因此完成一個操作系統的啟動,4 H) k+ }% r0 U+ z5 U
需要兩個必須的步驟:1、MBR引導;2、OS引導。/ y9 I0 M" s3 j# H t3 p- y: Q
; W9 [8 z/ V) \) C基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。3 ?: O# I) r# M8 S B p
' e) V- \% g6 f, \1 R) f
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。. r9 a, Z# h; @- J- n
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
4 N8 u- W" p8 B5 P! B
$ }5 W. ?: b V/ y. nOS選擇:
8 s# n% W0 k; l% I) j7 B$ Z" S! U- ?; Q. i4 ~, s
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
9 d" T3 F! \- d- B2 ^2 U g% U8 Y. t( @9 e7 H/ {8 n9 E! S( R
方案一:NT Loader + AVLDR + Avlgo
2 S' Z* N+ I) `9 H7 Z8 X# K0 V4 A3 F- w
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。- N7 l( w% R* X! v3 y, P
( {4 [7 k, a. ?# }# H2 W0 \
工具準備:7 w" p' c; h' c' A7 Y- S
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。. m. E7 E) G' s% ?2 M0 h2 v5 v
" A; L) ?$ }/ {/ S0 }( o, x
數據準備:9 u0 `: _: k( B' F$ M" x9 q) I
" G) V! m1 N" q- Q% h. i
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。/ _3 ?! L2 Y" N: U
1 h' S9 G! v* G! q8 |, q
6 `- E9 x5 t* l- j$ r7 T2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。. S/ _ V! Y; h4 [
/ H ]9 x8 y& D% r
' T2 A7 } s( C" [0 L1 N% O- a1 c+ l% ?9 W6 w+ u6 s
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。$ k- D# N' r# p1 ]
# W8 M5 S$ W4 g w$ N+ |4 j; p4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。4 c' ]- @, Q6 H. [+ V* d
: T- l3 S6 w) P/ F
j: P! g6 k7 c. @ W ]( V2 N
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。4 \, a7 j9 _. K) c# M5 d: r
8 I8 [# {1 L! ^' U: g; |
, y8 E4 e5 ^* C4 L0 S
# h! s6 K) r! W" _
開始組裝:1 o9 a9 ~) O9 B# ?9 F7 w4 W) |' U
7 `+ O* R# V4 }3 W0 W1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
% ^# n/ Y4 }& H2 H0 R[boot loader]$ Q: J' k# O% D7 y7 M
timeout=30
' [7 p" J" @9 J* ~default=C:\avldr.xpe1 q% }2 j+ p ]- j
[operating systems]4 a: p8 S$ m+ V& a+ T' l
C:\avldr.xpe="Windows PE ByaoMaotao"
" Q; p- E. t' T: j/ U3 S# {4 h- SC:\avldr.bin="MS-DOS 7.1 form USB-HDD"7 F( T: {. N2 c3 K* b4 \
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
" M8 [0 B5 o' o" ^6 E% a完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
; F, J5 W, v8 t) _0 t- M; s# n! w" S; P/ X6 {
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
' V+ i4 r8 Z1 I- E" E1 M. c9 ~- [
8 R- p/ ^7 ^ ^. d w! ~[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。+ l+ Z9 K4 u3 _0 f! H) |; p! v$ q5 G
: B3 i1 \. q$ T; z8 B3 h
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
( U0 K8 S! m0 R3 z( Y* j: ^' q3 r" t
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環境下。. {: t/ c8 d d3 e) U1 R$ j3 e3 f+ L
1 ?1 g; l5 l. P# w5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
3 V" R$ |3 A- g: t
, f, \. d4 h( b( r8 Y9 W- L: m6、把前面生成的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 Y: B0 ?) j; ]4 O0 v) R- |" G; t3 }: M. I* Z& ?8 {2 S
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環境下。
7 Z. h2 H) H% C; P4 I# N. y: H3 u- S
; O7 J! ?' M: d4 e- E- P& n至此DOS/WinPE雙啟動系統維護U盤製作成功。0 k$ [2 S! p1 X: l J
$ h: M$ }# M3 i方案二:NT Loader + Grub4DOS8 c! M8 h, X7 d
/ v& C& P- K9 W: U; ~: Y因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。5 C# e# ]; F- r$ L( Y& |. K8 ]3 R2 A
9 q" P7 S# O0 Y6 h% p
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。 i" I* W# d6 v2 d
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。/ o. ^" F2 [0 q+ s
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
F$ {# N7 H) k* J& V4 i[boot loader]! m* \# w# o2 F6 A/ R, \1 s0 r' f
timeout=03 A2 J4 j3 I7 B1 i0 M4 ?. C, C
default=C:\grldr
5 y7 {$ \* l U( P# j# {( [& u5 {[operating systems]
& j' a( {6 S: J& T. l! Y7 z8 @C:\grldr="Boot Menu" : M2 ~, }2 I1 I
Boot.ini菜單各個項目的含義請對照方案一的說明。
# {, V! [& p) R( \" p3 H8 }8 p% I6 T) o7 E
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。+ J, T" f* ~9 a/ R4 Y
5 D( c% p" t# \ V* N
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。" O+ J( E' I4 M0 M' p/ u6 ~! h
' W2 M6 o0 L, f3 W6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。$ `* ^# W. c. f2 ]1 ~1 [
! L; A) S9 u! }8 X7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:/ p/ t# ]* n# ~+ C: A2 F
timeout 30
% I/ T6 [: o6 R9 _" e( kdefault 0
; o3 t8 O0 g T3 \/ Msplashimage /boot/splash.gz3 d% M0 c8 |( @$ c9 t* {
foreground ffff002 Q$ l3 _2 e, [6 p* B" K
fontfile /boot/fonts.gz/ J) X0 M/ I9 T
title 啟動 WindowsPE9 } ~% J& E6 t w: A# \
find --set-root /grubidx.txt
7 C3 \1 W& }/ v8 o* w9 \4 Uchainloader /ldrxpe
. G# K0 A4 h$ x# l- V* etitle 啟動 MS-DOS 7.1
" h. Z/ [) u! Z7 I' ^find --set-root /grubidx.txt; g- [3 _ G+ J {4 H8 }
map --mem /boot/dos.ima (fd0)
; ]8 z- {: d$ L/ m, Y1 x& a9 N1 _map --hook: q, F) H0 J, |) ^6 ?: w
chainloader (fd0)+1
) A/ [; T+ _) Q j6 z8 n7 A! d' ?rootnoverify (fd0) 3 t* [" p1 b0 k6 Y$ N" Q7 l/ C) n
做完這些,U盤就可以啟動了。
) }; @. H- D) O6 h/ `9 j$ h$ A4 }2 E
菜單項目說明:5 Q+ z- b* q& g _% N. H: }
! w5 ]* g Y* f( l& q% t/ X: S第一行設置等待30秒的等待時間;
" w5 Y7 [# }1 H1 @) d* v- p* W" r: k: V7 C) }
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;, c8 h3 r9 J4 U" Y( E* f% ]
( G" @' v. h# [! s- t0 s, @splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
9 p6 U9 ~" r# {5 W/ O
* t2 g/ w* K, _9 d. V+ Wforeground項設置啟動菜單文字顏色為亮黃色;
% D- j$ @0 H+ _4 B0 G9 V/ w5 a5 R6 C- ?( k, `. I
fontfile項設置中文字體文件為/boot/fonts.gz' I9 i; `% r3 D8 g5 L
+ a( I9 D6 V! {& f, H2 U
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;3 e! E2 R7 c% G% ^) L- }4 [6 A& D
3 ]5 F# ?3 |6 |9 m2 J; |( mfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。9 ~9 K9 ?( s. P& k' X3 a8 ^
+ U) y0 t X3 p* N! ~. z3 r
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
) n, I+ | a& Z4 L) E# y! V9 z$ `% h& x
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
8 s$ ?1 d- {: K" m) Q( O7 _" N6 Q3 l, N3 V' H7 A8 N
map --hook是讓裝入的軟盤鏡像立即加載生效。1 ]8 x, l& w; k: Z0 {$ n2 E
' u! c) |) R4 ~9 F( ^, `) l
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
& q: ^- _! `* g; _
% `- P( g9 F H3 K本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
- l- p* Y. o. f( q2 }7 \+ Z/ g
# ~" g) x, n5 `+ k' w p4 N3 H! E$ w' I! ~& Y0 l
方案三:MS-DOS 7.1 + Grub4DOS- R2 Y" A- N3 T0 a
) {3 j# P. N3 O2 v& V. h( s; h本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
5 W9 W {% p. I# j1 _/ Y) W$ g: B8 [8 s6 u" |
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。* r4 { Z: b( r. F# w* _
; k! } |) w& c: `' P1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。6 Z' D! f8 H# R% U
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。9 ~4 }6 a B( M, F* R
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。/ d4 o$ S4 i3 q, F' w/ _
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
; V( H6 b6 k* b! H0 ]5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
- S) N+ [7 _+ E- x# {& |( s3 L6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
' f ?; b0 Y( x% [$ ?( S* gtimeout 0: e% U* ~, v+ E" G
default 0, z y8 }7 A' i) `/ {! v9 n# T
fontfile /fonts.gz
* U+ X. \1 M- [$ \4 P6 R0 ^# Stitle 啟動 WindowsPE
3 a% ^( J; d M+ vfind --set-root /grubidx.txt
, N0 v. Q+ n. ]chainloader /ldrxpe 4 p2 d3 ?0 b! N" L" i! N
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
1 Q8 g' G; a( S- F
% F+ F; U6 E+ N$ U( Y7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
) h6 R% M& K* o( W2 G
4 H! m6 z5 @) K$ O% `grub7 g8 S# u! U" |" H6 J7 K* o/ S& d* X
$ z+ \* n k/ L' C
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
/ g) E4 ?2 J# x M1 W) l4 \
3 m7 |$ {" t- k& ZConfig.sys內容:7 _; B/ D8 }( [" Q7 n
[MENU]1 z2 U4 }3 y. k- e" J' `: m
MENUITEM=1,XMS without CD-ROM support* K- a5 @1 ?' R9 t: J2 E+ B( K8 Q" D
MENUITEM=2,XMS with CD-ROM support
0 D6 Z0 @3 C, G: m+ Y& a2 k9 r0 K) LMENUITEM=3,XMS and EMS, Q0 J+ d, W: F" M4 {
MENUITEM=4,DOS real mode(no XMS,no EMS)
) ?. T3 }9 [0 l; sMENUITEM=5,Windows PE& A1 D# j( D9 N: }* A3 `
MENUDEFAULT=5,30- U* X% P; |! {- m* _
[1]" ^. z* q3 n: ]9 P* }, o3 t
DEVICE=\HIMEM.SYS /TESTMEM:OFF
2 ~5 {! C' P) K2 y5 KDEVICE=\EMM386.EXE NOEMS* H. D, Y& y A$ s3 d* B
INCLUDE=PUB. h0 C% k" n9 M3 M
[2]
$ X B7 {' W4 S+ Q. A/ G* `DEVICE=\HIMEM.SYS /TESTMEM:OFF- ~, g& {+ d" }
DEVICE=\EMM386.EXE NOEMS
. K& X3 S- o! j) [- s5 T; iDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
8 M& K7 W& N' q% ?/ c* YINCLUDE=PUB1 u. e& p* U! w) n3 D& x D. N) W
[3] d3 K( D m6 `
DEVICE=\HIMEM.SYS /TESTMEM:OFF& B- E W# j- C- @0 w
DEVICE=\EMM386.EXE RAM5 a& k: {$ `0 K3 k
INCLUDE=PUB6 P! U, H' J: t5 F0 }0 h- |- q
[PUB]
7 B& i7 T, F! B4 XDOS=HIGH,UMB& L. z' z* n% j& x
FILES=30! e w- l8 v) U4 }- V; S
BUFFERS=20
" s. U! l; J/ M; xSTACKS=9,256
1 p; G- ]# P* I4 ] s0 p" X5 m iLASTDRIVE=Z6 @* i1 z9 f0 E' I7 \/ w5 T; S( _
[4]
u4 m1 C( u/ V$ _FILES=10& z9 S7 }" n6 V% b
BUFFERS=10- G& T6 v$ z/ f! ^ m5 @
LASTDRIVE=Z; P& Y7 ?+ i9 Q: q p" v
[5]/ m' g6 V% l/ i( ]% T! O
Autoexec.bat內容:
- ]3 W5 \9 ^4 x5 P3 t0 e3 S@ECHO OFF
# Y4 |8 R! D/ [PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM) [1 f$ e: z8 I
GOTO %CONFIG%
3 M/ ?, _+ d# @. w:1
; k4 N/ j* W: ?- jGOTO COMMON
- _5 @; C7 t6 |3 Q+ t:2
5 i6 \2 ?% |0 ]% ~1 x" U5 Z) FLH \SHSUCDX.COM /D:SSCD001- Q( V/ r& \; G
GOTO COMMON
% J$ o2 [! B7 J* L( ^:3( v1 _$ f. p/ H, @( ~7 E
GOTO COMMON5 T& p- w) y! [+ c5 z% r
:4
$ ]+ E0 f" p9 _. v" eGOTO END
! L* F( t( k. \: b( x:5, O c7 v; b+ z# p9 U6 S
GRUB. F1 @% S* P' E$ r* J1 O% o
:COMMON9 ]6 A t* s( B/ O5 r* S% G
LH \SMARTDRV.EXE /X8 T' a0 Y8 y: s6 D# D7 v
@ECHO Install mouse driver?
9 F3 ^. n7 i. q: ^, \' R9 w; [\CHOICE /C:YN Yes,No /T:N,63 O6 d/ D. o) b
IF ERRORLEVEL 2 GOTO END
+ ?3 [0 @, ~5 y4 J4 Q- V) v2 w" hLH \MOUSE.COM
y; D8 U1 A6 {5 m, V:END
& P% U% G) S9 d* y# Z! U; X# l. m( Q8 r, `* k6 N
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
: F Q3 w4 K0 s8 h* h; Z+ | y t* a5 c
感謝5free和david_ge的幫助!. Z) i; h) r6 \0 S. L6 S
/ \0 g: g, Z- o- ~/ u* J本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
% q& ^" T6 e6 T9 d3 |
, k2 Q; c. p- A- |& K2 Bhttp://bbs.wuyou.com/viewthread.php?tid=94087& ^' }/ H4 C. \8 _* Q% O
http://maotao.u.winzheng.com/$ O2 ^( T9 F5 s+ C$ M8 J/ g
6 I* \- H0 _( b" U
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
) |: `! i* g. ]1 z& A. a3 V9 v" ]
, p( t& e* d4 Y' t最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
- s. ?- w: H8 a) K. u; s後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
% C* s% l$ @3 o* R# x K: [: ?4 L9 N1 y% W; k" C) n
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|