|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」
& G1 j. @* m- {- B本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
5 u5 y& [6 @. x8 g8 j7 @* [' w$ ?" _
x7 F5 B. R4 X+ V* C
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
3 c* s# K6 M: C; a! s1 `
5 Q0 J( `0 m; w前緣:' s+ t- M2 v. q3 s- }
5 i# b7 s8 t6 M3 L. b" J6 F: O很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
4 [5 a. J; j; ?' _- H8 O
) \1 F4 v6 U$ s4 m5 R- g" W目標:) {% q( K5 C1 v2 N. G" i
. N4 r* c& j5 U/ t
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
# h) k% ~+ J0 v* l/ X
6 x6 F2 k! m7 ]$ X o5 k" b5 P技術背景:
V% k: O! M+ G) {
6 X, ^6 \& a" t7 O! A4 }3 l" W, [! n8 T其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。; Y s D/ [9 L% Y: C' a+ G+ z
2 n. N1 ~% `, O$ d& |
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。- O% a& \- r2 p5 T
* f+ d/ {% K8 k因此完成一個操作系統的啟動,
( U8 l6 ^ q7 u" r Q需要兩個必須的步驟:1、MBR引導;2、OS引導。- N4 G) _/ G* _' B& R, z7 t
4 x/ ~ k! D: |- `基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。: Q, Q9 @: v# Z& V* t
" N4 b( h5 V& X6 U$ s8 I: h
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。" X* ?' C. q1 R3 f) g2 H' y9 m/ p
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。3 t0 D8 x" X" @* b. ]
2 r" h+ |! M+ K( W1 @, Q: t2 bOS選擇:+ t6 W2 c" B3 ]- l9 F( Q& |8 `+ ], ]4 s
+ n) E* e$ W& X* C8 PDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
' i" d) D8 R6 W: m# r( t! v7 H0 e4 ?, o0 J6 t' H1 B8 Z- _; j' C
方案一:NT Loader + AVLDR + Avlgo& Q, \1 D. H* ^; w8 \0 {+ V6 F! k3 @
+ s' N2 V% }" v% ZMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
/ w4 Z+ K8 V9 O$ ]( `/ w- v) q9 I4 ~1 z
工具準備:
* A6 f" s( R" e- z! y& L; A! WPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。9 ]' T* s' i9 A4 ?
+ Y8 ]1 d4 o6 `8 O- `/ _ f2 W5 s
數據準備:
- k! N" j, w% z2 M" t/ f( j0 B# t; l* H/ y( p
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
: p0 I- x9 G1 }4 U4 b( u" V3 }+ ?9 N9 y9 J
& G. w% l) z3 v% |4 v
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
! N5 A3 T6 @' y% a/ d
9 \! o/ F7 D" o2 h% x$ u* k& R2 x# m$ V& g
$ u/ Y4 r( w% C# q! V6 x5 m _3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。$ j+ C e- C( {, V! X5 @0 h
' [. k( b: }2 s X! c3 r! S4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。6 S. A$ S' ~% o5 T+ N
# u! y$ P/ w" ]( Y- ]1 H/ x% }0 M
. R3 v2 B( Y( ?- S5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。# l/ Q9 U) j4 |6 R3 w5 P
; L# K: _ n! b4 H+ C: K) K9 f# J( f: y6 k. k+ K4 i' I* `
! y9 F% x5 R' l5 ?) x3 }
開始組裝:& `9 Q) C/ B5 H. s `/ U; A' n
8 m9 ]; D. V7 i
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
. @1 A+ j1 M9 d8 g/ T; Z; n: v[boot loader]6 t. z3 v& u& ?' l! D" G3 V
timeout=30# ^. c0 D8 l9 @! K7 k% t7 Y
default=C:\avldr.xpe4 a2 n8 b+ j' m4 y$ u+ h4 u
[operating systems]% S g3 X- A( w# p5 f6 p
C:\avldr.xpe="Windows PE ByaoMaotao". @5 P& \% h$ ]; i
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"+ s# I' J1 b V0 m
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
' x" h# f8 _" Z4 W- ?8 `% H完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。8 }+ ~2 G$ ^" T' m) N6 {
0 _8 H5 T& o7 S: g7 T- B' M5 O, F8 S這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
0 X. c8 M# i8 |9 o# S) ^' q! w3 T- H4 B7 j" _3 y
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。& \% w9 n" ?! t0 v t
2 v5 M7 c, U7 I9 F7 a$ I c
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。1 U( x1 W$ ^; T" S
: B. x8 T' v4 k* ?0 a! a/ K' E) v
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環境下。
$ E) q& I5 |/ `: R: `2 w$ a. C n: v' G9 F; \
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。9 K+ g) p3 S8 U
5 S1 l: F' V0 s4 z1 I) T2 ?1 Y6、把前面生成的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環境下。
9 K% j, b& q% j; F/ V
. _7 ^$ b! }9 M; B3 M( I7 [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環境下。 {( j8 m/ w* Q5 K" c
, n' N, `9 u0 E: |
至此DOS/WinPE雙啟動系統維護U盤製作成功。
7 a% {$ Q E, o" @. B% o+ y6 N3 W9 x& V1 s2 |; ^4 J9 o. s H/ i+ Q
方案二:NT Loader + Grub4DOS
4 C& S8 `) }; c
- M* I5 Z1 {! V, T& ] x因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。( h2 i) c1 C/ ]/ h+ O: K/ e! U+ r
; E* E3 Y2 E M }9 j% x
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。% ^ N Y: l% r( }5 H
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
& u7 r" O& s$ A3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:/ i2 m1 C: i; w/ T( s1 C5 N1 U( ?
[boot loader] ] ^1 L7 \( U7 B/ s3 C2 j) V
timeout=0/ f: T. [8 t$ g; B& s1 r
default=C:\grldr$ l3 f5 `4 L9 i* C9 q3 d, ]
[operating systems]5 Z0 \0 J/ q$ ]3 z# B
C:\grldr="Boot Menu"
) P W: x" i# @9 L0 ?1 ]3 mBoot.ini菜單各個項目的含義請對照方案一的說明。) i0 p- D0 [; l6 n" i
2 ^+ Y( Y9 w8 ?; B- G
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
[4 u, o0 r( ?2 y
. b9 g! C8 s6 A; M5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。6 V# O: ?/ k' O2 H3 h
# ^3 ^2 L: _' B
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
2 w0 }& s0 a. h' S/ ~4 s, T1 L N5 Y7 h8 {! Y- v' {0 {
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
$ H6 T8 P1 H, V2 V& }timeout 30
9 U. {1 s- {( zdefault 0- `4 w0 ?; ~/ G f' v9 v, p
splashimage /boot/splash.gz
/ m+ H. s2 g" D- {; g' e+ \foreground ffff00! g8 C+ V5 k& p [
fontfile /boot/fonts.gz
% z; C4 r. ?$ {- D9 T4 wtitle 啟動 WindowsPE
8 L& _# I7 Y, R( Ifind --set-root /grubidx.txt" H: Y7 S& e; k, O# }
chainloader /ldrxpe5 e& ^. c: m. P- v2 y" C9 X
title 啟動 MS-DOS 7.1* w! L. A6 z: E" n# C" {
find --set-root /grubidx.txt- T* \2 f1 v' Z4 X! [9 L) q
map --mem /boot/dos.ima (fd0); I9 _" {2 F2 @6 T& r
map --hook, m: s! ?( g! i; o1 f0 V, ~
chainloader (fd0)+1
- c& F6 r0 O- K: D0 b q, ?: Qrootnoverify (fd0)
/ b; v# Q4 |, S7 ?: M做完這些,U盤就可以啟動了。
; {6 s( S+ ~( R( b% J8 x9 e: @% H5 A! }$ I
菜單項目說明:
; j3 j$ P' d. K7 b: ^6 s& @) F, C* a+ D+ y# c6 A5 d
第一行設置等待30秒的等待時間;" p6 B+ u6 g* v) |* q1 W8 a& K
3 E" |# { V. R2 }/ r! O0 d( ` ?第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;7 j" T( v9 B0 V0 O7 u
h7 a" `- e7 ?3 a' H% ?
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;9 S; C! d' ~) G
* m2 M. P# y c/ jforeground項設置啟動菜單文字顏色為亮黃色;* b% A" J9 l: b9 f) Y5 K& i+ M0 e2 f, a
/ m) l. M# O" q4 V9 g5 A
fontfile項設置中文字體文件為/boot/fonts.gz
/ F, [ Z5 l& }6 x
: z# ?2 t l: S/ U1 V& r下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;8 b7 U+ l: w/ v! j4 L4 e4 e
! t) Y' T! X4 p" u3 Y0 _" jfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
5 k H0 [) y5 `& F
/ k; f# T" D% M' _chainloader /ldrxpe就是啟動WinPE的XPE鏡像。$ d+ j5 s- }1 ?1 H2 |
0 M3 `' r, r; V2 h* G% f
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
3 F; r9 j& e9 n! m0 P8 H! R4 X% Z1 l! s5 x( C7 k' b K
map --hook是讓裝入的軟盤鏡像立即加載生效。
" R; D1 A6 v6 a9 Q1 Y$ i! D4 ?- O5 d, \, G# y1 f
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
+ C/ E% ?: O: a# B% Y) @* ?9 q+ [( h1 W4 y+ C9 t
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。3 L+ T0 \1 U+ G9 Z# Q# ~
0 Q5 x$ d# v- x
& e a ^1 w/ i7 s. p5 K& @方案三:MS-DOS 7.1 + Grub4DOS+ N+ H! X* u2 x5 r" _2 V4 k- I
2 P1 t; N, U; z: n+ O% Q
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。& p- T8 L0 i3 Z4 t! N+ u
T" j- f! t. H) L% E
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
8 | v4 B U! b, U
% h* Q+ D: m3 G: j9 n1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。! V( e) e1 m7 R0 X+ g9 [+ U0 z( ]
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。6 q: M( z% c5 l0 |! f7 H9 M# E+ j
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。1 C! @% y( K5 M7 R8 y( r6 J
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。( i( N s; H6 i5 L
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
1 C! o, D# T8 L( |' m6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
8 @. H2 j9 ^; Ftimeout 0
) h. |" o4 o: x1 T# v3 Q; h& Mdefault 0
4 A0 I+ z0 a. L/ i' b8 b) Sfontfile /fonts.gz- _9 V0 R* |" x4 | o* |- Z1 \ }) K
title 啟動 WindowsPE4 v: d5 h2 r$ H# E. r
find --set-root /grubidx.txt3 v& S7 I$ Y! _; N2 i) |) G* }6 w
chainloader /ldrxpe
8 C! N5 \# `; o. z2 ~' _" Y# a- K在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
0 ^4 }7 H" E. b; S
2 }( |$ J5 b/ D+ ]7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:5 S1 @! S( ?3 ]' B0 _- O4 H4 [
# t u/ M3 `4 D( s" r# f* |grub( Q6 k, g8 k5 |, e9 g
( G( P" t/ E: ^
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。: O, ?# Q# R% {* L
0 D+ ^# }* ^* p) ~1 u4 yConfig.sys內容:4 N+ h8 e8 b. j' T: P
[MENU]
6 Y7 j- M9 q9 _; E7 L) lMENUITEM=1,XMS without CD-ROM support9 i6 q' \5 a5 ]0 Y( g5 M- `, R9 o$ F
MENUITEM=2,XMS with CD-ROM support: T) W& h. U0 ~1 q+ l( e! Y9 Y2 q
MENUITEM=3,XMS and EMS
0 S# P$ i) n% r: U# j; V: ^" C X0 UMENUITEM=4,DOS real mode(no XMS,no EMS)0 E& _9 O7 I$ e z
MENUITEM=5,Windows PE6 I1 d- e. y4 L/ y7 t6 g/ e
MENUDEFAULT=5,30
4 w; C* K) B/ W7 J/ ~: Y4 b[1]
4 Y: S( {5 P9 S$ ~DEVICE=\HIMEM.SYS /TESTMEM:OFF0 @1 j+ x: G, u: G" I( I
DEVICE=\EMM386.EXE NOEMS
$ j7 {" Y K8 n) `0 @INCLUDE=PUB
0 m3 \ |) g! G4 B7 H[2]
# p. Z# j$ q5 \& B( VDEVICE=\HIMEM.SYS /TESTMEM:OFF
7 M" P1 ]1 a( b# }$ XDEVICE=\EMM386.EXE NOEMS
# P2 |, q2 c: n! j7 ?& N: gDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
6 q+ U: l! e: L, B& U* JINCLUDE=PUB
# z+ S) `4 w' ][3]3 p" C# `5 P* P8 j
DEVICE=\HIMEM.SYS /TESTMEM:OFF6 M' }8 i2 q: b
DEVICE=\EMM386.EXE RAM
$ a' H9 C6 v+ J2 T1 ZINCLUDE=PUB
- ^, n/ O- x' b; G[PUB]+ z$ O2 `& E2 Y# A/ [6 u
DOS=HIGH,UMB; Z0 D0 p5 D: [7 h/ f2 ^2 O& R
FILES=30
! \' a- a+ ]) u% X$ D/ TBUFFERS=20+ c* c. w9 ]( L S9 l8 t/ S
STACKS=9,256 W8 `9 g% h; A4 b' s/ d
LASTDRIVE=Z
7 L( l0 ^' T0 ~% G) O9 V[4]0 a+ O. y6 t" h. L
FILES=10) \% b: i- |3 x9 J* _% q
BUFFERS=101 h% ~- E, h o u' I! V0 a
LASTDRIVE=Z
/ E! _& X+ [: ^[5]
3 o) x. z. X5 T6 q% PAutoexec.bat內容:
* }3 Z& ]9 \+ E5 i( C1 |( Y& Y@ECHO OFF
1 Y5 v+ k$ D; `7 J9 K! ]PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM& M5 I+ k) v+ y3 K
GOTO %CONFIG%
; \# O8 W; ]3 o% p:14 B: }* t/ B% \+ j) c
GOTO COMMON, k& f4 Y* R3 j W! m
:2
- Y3 `# i) @% A: h) h9 Y( ELH \SHSUCDX.COM /D:SSCD001( _3 k* S# ]" b- ]+ q p0 N7 Q J0 Y
GOTO COMMON
2 ?! g7 C' g0 U! `0 f4 ~& e:3
. a6 J/ e0 {" w1 k0 nGOTO COMMON! N, m/ ^7 e4 }& W6 N% ?2 F, D
:4
- \( f( [* y) t/ N$ hGOTO END/ O' j+ ^: }5 V6 \% D* @) c6 c
:5
+ a- ^$ e& C, Q8 }( ^% m. F2 OGRUB
# I5 ?% @4 y. ], d:COMMON0 }7 x0 u- n; R% @# V
LH \SMARTDRV.EXE /X
, h2 S. k z E% R! L- E@ECHO Install mouse driver?: _- B8 G$ R3 U1 l
\CHOICE /C:YN Yes,No /T:N,6
! _6 a' u5 K; A9 o3 p3 MIF ERRORLEVEL 2 GOTO END1 `1 ~6 o+ z- H4 z
LH \MOUSE.COM
$ W. p8 g) ?5 M9 U8 l+ S8 }:END
. [: g2 E( s( U/ F; u
) q9 Y& Z6 _0 W, W( s4 V: U! \$ c' V按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。5 e0 I1 C, ?7 S9 c( f
$ c' _ B) I" p2 |4 |感謝5free和david_ge的幫助!+ x0 C9 d3 c L4 A4 T# y8 j
( z$ x5 @6 o' h
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:: R+ S7 z/ Y+ }3 R/ k8 \( N
# C2 t \1 w8 a9 Fhttp://bbs.wuyou.com/viewthread.php?tid=94087
% Q$ Q# m! e y L7 l5 Mhttp://maotao.u.winzheng.com/
# j* J2 g( r# @
6 U4 J; f" j% b5 F5 [附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。% ~3 H- c/ V _/ T! k p% ~( L
% C$ }. s9 P- X2 @3 F最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
" W7 _9 H9 n( j: M. t- d後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。# y2 M% o4 s$ O9 K1 h9 Z$ ]
3 g0 z4 K$ g& ]: L( R: e; _目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|