|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」/ V3 Q8 O5 Q7 a1 z3 v7 N4 d
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
9 N! y/ ^7 M( Z! b, @! w D7 Z
+ i4 t8 ]; `; O8 @! q8 J- p/ u- u! q o, v: O0 v t: n M& K
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。& ~' m2 X! _3 H/ P) |. e2 O
) {# o* u& j; W前緣:
/ ]7 w, c. L: ^: F/ `6 |& ~9 g- |
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
+ h" O$ s7 g* F u% P7 D8 O% ^. r+ g0 C3 Z0 Z: `% t
目標:
! E+ G& ^$ V) |) o9 s
) D$ j$ P. T2 S$ ~對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
8 f6 i/ E! y9 b; e& b: R6 F. z
8 ]0 ]" `. J1 J6 p2 Q0 T技術背景:
* W6 x5 W/ D3 x/ a
( ] |5 B4 b9 [2 `3 R5 t其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。 l3 q8 u# k2 E8 [
0 U- v2 J- y1 o3 r. Z$ j6 h首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
$ z0 x* p1 {$ d( Y5 A9 E) I- w* Z. I
因此完成一個操作系統的啟動,! }' Y* w7 B ~/ w2 A) e3 e
需要兩個必須的步驟:1、MBR引導;2、OS引導。
3 l% T8 \7 x3 [% r+ X5 L6 \! w% s, c# [0 f, X& x7 ^5 |) K
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。1 L2 r% o: K2 B: f2 Y$ O3 H" d
/ Z9 l9 q+ M! Q1 ?: F( o. {
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。- i9 m/ J+ Z. Z
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
* ]2 _2 q; Q: x t# k8 }, n! M; F& W" v2 Z2 o6 g6 l0 X
OS選擇:
8 t9 |9 P# w2 q
/ ~/ I) Q' [% w0 W. R; XDOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
2 ~' j$ E, }) n! d7 a( ~
F! H. N3 C1 D5 \# p2 A5 K& }$ ?方案一:NT Loader + AVLDR + Avlgo
6 [$ ?( u7 J; ^3 r; {& j7 ^" h/ D# M7 b9 g' k
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。+ h- M9 k. ?2 Z4 d7 ^; J8 }
4 G* P. F! d) y! l2 I9 A) [
工具準備:) }4 G1 \; K+ g' i* c
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。 R6 G7 i2 G: q+ b
) J5 {, x% r- f) H
數據準備:, a0 v, o8 ] l. x) M! t; b0 F! J4 X
# l+ }% V5 `; i' R9 m
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
6 i( g# P. I" F
: [; z5 b& g4 a R+ Q" P& M1 I
* c7 f. V u R+ i5 p+ l( o. c2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。) R1 N+ ^- R0 H* r/ W& L' b
% \5 \2 h5 I) e1 x# j, v
+ |. l. ^7 ~( b1 q3 B
7 n) a1 ?: d6 j$ @ A! W' Q+ _; D0 W3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
+ Q) ?2 L) `0 f
/ [, ^ v$ @+ z4 d( o1 i! G% E k8 L9 r4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
8 v$ B' I" Z) D- P) L, M2 S2 l- P4 n" M. ~# R5 Q ]. X8 ~4 G9 Y9 f
1 G; h5 j3 L! K
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
, \* ~) h* j2 O- O$ P/ [' E' m/ i q, w1 L8 Y. F$ z, D
, O# u D! U2 p. B ~* S0 F6 P
, K) {/ \3 Y" ^! K6 a) v
開始組裝:1 y) h5 E7 _3 w9 u# C
. {$ R3 i! L5 s6 K' L
1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:. ~2 S" W- F7 F' L: {# @1 M$ R
[boot loader]
! A6 a' R5 F# H4 X' Ctimeout=30
0 y6 Z0 [+ v; T0 V: d( w- adefault=C:\avldr.xpe
$ p- K6 d; X# D0 s/ J1 X. ^3 [7 S8 p[operating systems]
* Z+ E! A# Q7 q; L7 \7 o/ UC:\avldr.xpe="Windows PE ByaoMaotao" h, E% L, G( g# f- z
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"1 K$ T c- i6 ~3 A
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
# y( G- V# v3 b9 s: x% ]* v完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。! q2 }& D! t }- \
- b, ~ e' ~8 [$ _6 [
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。$ C' P& Y+ E& T. t
( ^; ~3 I$ D$ r: L) w$ B& s! H
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。3 d `5 ?5 g: a% i- r
7 {# H8 S$ p" ]6 n' W" T- t ^# o! c2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
# z- R! c" ` e. @
) e+ Z+ S" e; ?) F) U$ c3、把下載到的老毛桃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% r: m$ X; d0 f" @4 G+ N+ t$ M
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
: d5 s. I5 |7 D/ h: A5 B; P8 r7 [1 X
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環境下。$ y8 W& p, t/ Q+ m( F; L
, _( w# ~# Q) L0 d( b) c: `) f
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環境下。
6 T; ^7 A, G+ P5 m5 p! M, i7 v3 ]2 n% @; O. h1 E" R
至此DOS/WinPE雙啟動系統維護U盤製作成功。7 k9 R* C3 \. c# O
! z4 K$ R+ M, P& x& J. O: E
方案二:NT Loader + Grub4DOS
! R! O- u( o: Z1 a! [; b; |6 C
7 K ?7 P$ Y3 _! l因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
6 ]0 [0 {8 c1 L
, Y- c/ ~$ `# k0 I' J0 W! m$ j0 v1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。# c! d) `3 I( @! {* V
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
- A7 f7 r Y1 ?1 c' Y3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
& [4 Z( i: |5 i" V[boot loader]
6 Z/ N6 x, r, v1 f) b, ctimeout=0* s8 u' b9 S0 [( u/ w
default=C:\grldr2 U' o+ c1 H; t8 B' l8 z8 h
[operating systems]% E0 ~6 O. j( }
C:\grldr="Boot Menu"
_, ?) y0 s. `; N. ?Boot.ini菜單各個項目的含義請對照方案一的說明。% ?5 ^+ N( F; p
0 |1 h. s3 U2 D8 j* p2 Q2 s
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。% _3 k$ z/ u# Q% A S5 Y3 ^9 {
- j) l+ }$ |: I- |5 k5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
$ r5 p) k* G+ S6 E7 {! y* I& }: p/ C1 O/ F, } G/ H3 I# X
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。: _7 b: `' I. x1 m) W) Q& f( l% M
1 n2 i2 D" G" p( F. P/ S3 N
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
- ]' E' ?% I& b; R& L1 Atimeout 30
! h7 P0 `' _ Z( N, I$ {default 0
9 k' f: G% m! B+ ~splashimage /boot/splash.gz) i/ o! r: x. @' }7 I
foreground ffff00
. {. a) f1 W* ~) }" @# M* ifontfile /boot/fonts.gz1 s: U* o& Q% Q# w
title 啟動 WindowsPE
& o% h2 o1 Z! efind --set-root /grubidx.txt
$ w# U/ I8 C: |2 z' R" J# kchainloader /ldrxpe
2 U, p6 S) k3 C, z8 q1 Ntitle 啟動 MS-DOS 7.1
1 c$ R% z3 E% `; u1 r/ o. i& I$ A7 `find --set-root /grubidx.txt
% ~9 P# R! o" q/ h$ Nmap --mem /boot/dos.ima (fd0)
( F O b5 o/ \: R& W: Cmap --hook
& d0 o8 p& ]" f+ ^( }: M, i1 xchainloader (fd0)+1, ^" N0 E4 q, d+ F( S0 H+ b: O
rootnoverify (fd0) , k" Q* A( S! z( a: ^7 u5 {
做完這些,U盤就可以啟動了。
6 q0 I' ?. P7 O- k: o4 U: o: d
' _# @9 W1 J* U5 }& @/ e# H' T菜單項目說明:
! b8 P. {2 M+ u6 h% p" B3 U6 D
9 e. m7 h. E3 ?# M5 N2 s! c第一行設置等待30秒的等待時間;
; f) |7 b7 U9 B7 M; I0 D! u( u1 m H* y
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;' w9 z+ p! _) o1 F' m" Q
! _- N( c6 e+ {5 l6 d& c, }
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;2 X( y8 t( m% l: }: w) C8 w8 d; c
8 @4 P. N6 x* M+ G5 T( o
foreground項設置啟動菜單文字顏色為亮黃色;
3 C7 r- H- Z# e& q$ y4 H/ w4 _9 g* M) {1 G% a1 x5 h
fontfile項設置中文字體文件為/boot/fonts.gz, G0 ^! b) f7 F* `2 d
$ a( g9 P2 k. H% T' s0 v: w* `5 s
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
. Q2 a4 f' i. U3 `
9 k+ g) q# y/ ~find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
; k- z% r# I$ _* k6 z! C, m4 G1 H J; S$ k/ W1 ~
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
9 t5 N J/ _: W$ n8 |/ R' f( ~& k3 ~$ ~2 y, A i. O0 x
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.2 Q5 Y0 E+ ?* Q: n' h( B. T* l
5 s n5 r# Y+ r6 U
map --hook是讓裝入的軟盤鏡像立即加載生效。! X; T0 g' N1 S4 x
+ z% P; A- O3 c7 B n8 M( i
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。7 r$ N' L% F% |9 T' r) k" h# A
7 ]0 x: d0 |: X3 C. m4 a3 I4 y
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
) k3 h& i" K' \& z" `1 E X, B
) l( `6 `0 F; a m0 p
方案三:MS-DOS 7.1 + Grub4DOS
* c) r& _ T/ I
3 o1 F! F. E9 @) D本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。7 h9 { [7 ?# f9 I
# q% [1 y. w7 W; ~* O本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
, v9 F2 G( N! W! E
- ]5 W1 T6 f1 J: Z1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
* v! I9 B5 X1 W8 r7 q2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。1 c& W, ^. x' b2 p3 h5 }$ c
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。 t3 s& i, K" l2 o1 k
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
9 T, p& y( l* O) d5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
; C, b8 B6 g: z/ z. \2 m( l6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
% L# M# r' h/ G3 M/ c; A, htimeout 0
$ a% z* S; U& o8 `8 xdefault 0
2 m- ~+ _9 n9 t$ s& F( u0 l3 l2 ~fontfile /fonts.gz6 ~7 L3 q2 e! a) _* M7 j
title 啟動 WindowsPE3 K: ]1 L$ o. J9 K* u
find --set-root /grubidx.txt
4 x! o1 _$ D) r; G- ?2 gchainloader /ldrxpe
, q4 y2 k \ K5 L/ z在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
) L7 `) E: {+ F# [. |, F8 w: v- p" @
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:! f+ g+ U; B+ }8 f$ T6 `
- j* v3 e% W {( r: n; O9 q- l
grub! C) i2 I: H/ R, ^. B
6 ?% c9 s% H$ f8 {9 c! l這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。' [" v' n* V( G
- u8 D$ R0 D6 cConfig.sys內容:
* L: n4 \4 \/ {$ E* ^[MENU]" v5 i* m8 Z2 z" O7 X0 Y' ?2 x
MENUITEM=1,XMS without CD-ROM support
2 e5 N0 k7 \, ]0 w! JMENUITEM=2,XMS with CD-ROM support
7 V( c+ e z; Z& n# ]MENUITEM=3,XMS and EMS* ~ M" `; c( ~, e
MENUITEM=4,DOS real mode(no XMS,no EMS)
% R) i4 F! B: \# I! C: O0 EMENUITEM=5,Windows PE- L5 K l9 I; H( }, A
MENUDEFAULT=5,30
* j6 y$ j3 ^) ], B! g[1]
, [- t7 }" K) lDEVICE=\HIMEM.SYS /TESTMEM:OFF, s( X' E: Y4 t4 M. j( x
DEVICE=\EMM386.EXE NOEMS' B6 T% j r% ^
INCLUDE=PUB* c, X( A& ?, I5 q: ^
[2]# A1 A% f3 L. p2 b+ e5 P
DEVICE=\HIMEM.SYS /TESTMEM:OFF
! r9 M- |3 R1 r( a4 i: mDEVICE=\EMM386.EXE NOEMS b" @# X5 C j" w
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001, D5 W2 C, }/ o. H" l& y& X9 s
INCLUDE=PUB
- O# _" u, k) O9 b* l+ p2 g2 X[3], ~; W1 @# T8 J6 J1 E- R
DEVICE=\HIMEM.SYS /TESTMEM:OFF
% A. G' t; Q$ C# t8 @DEVICE=\EMM386.EXE RAM
3 @6 Z2 Q( a1 m7 y* K3 `INCLUDE=PUB
: E/ W8 M/ Z! O3 f[PUB]$ ~9 S" S0 U. o* S8 ^/ P" H4 E
DOS=HIGH,UMB
1 ~6 ]- d2 ~) N/ E: X; |! xFILES=30; {, T" \5 C ~" P: @
BUFFERS=20
9 u% o, f% l: {2 S8 M' O/ d% S, s" wSTACKS=9,256
' J! E" n' _" p1 m# cLASTDRIVE=Z9 J7 i* w" }$ s/ Y0 i
[4]& u6 y3 f& |- q! @3 s3 b2 m' ~+ V
FILES=10; \& N/ {4 V, d
BUFFERS=10% J1 m5 I$ r8 J
LASTDRIVE=Z
" ~+ z& i. p% j# I& s[5] I) ?' ?% k6 d3 d
Autoexec.bat內容:
9 f: D* Q; g5 Y@ECHO OFF
+ x7 ]& q. ?8 @4 z& A" gPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM% V3 t! T$ @6 E, h% g+ \
GOTO %CONFIG%
5 {4 s4 n9 [: ~/ G2 C: |0 ^:1! s" U4 t3 E; O" s( I
GOTO COMMON
0 W! t& E& Y( Y4 E% c:2
( n2 G N' V' `LH \SHSUCDX.COM /D:SSCD001
9 K) l6 M- n7 D% G9 d0 FGOTO COMMON7 q2 N/ r2 ^9 O" u C$ }
:33 n' T+ s6 W; `: G
GOTO COMMON
' h, U. U, Q( M5 L) w:4
& U: u7 m4 N) n6 XGOTO END) J6 u( ]4 l; Y
:5/ w" j8 M a( @6 a2 P8 p
GRUB+ K# ]6 w% G7 _5 g. r
:COMMON
6 \3 `4 \3 d! _* X6 m+ WLH \SMARTDRV.EXE /X' C" J' t! i/ H: x9 i
@ECHO Install mouse driver?
6 { i: Z [4 Z# t) ^' N3 E\CHOICE /C:YN Yes,No /T:N,6
+ q5 F2 t; c# S+ L' LIF ERRORLEVEL 2 GOTO END
' J) [9 g; |4 _7 B- xLH \MOUSE.COM; k+ ^* P( q0 @* w6 U' {: k& ]
:END
2 T* C( _! ~# R+ R0 B, c
3 B. |9 L: `' }" {# R按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
& ]' L5 z" N" I/ v! u9 ? A
; ?2 l i" O# S$ B. P感謝5free和david_ge的幫助!
s' F" b A0 W/ E; K0 @ {8 ^ C3 d7 j
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
% w. W! m% R2 p) l" f: Q* `& t$ E ^. h6 O" J: C- u
http://bbs.wuyou.com/viewthread.php?tid=94087
- c+ g0 \ V8 \4 z. Z' khttp://maotao.u.winzheng.com/
4 A6 m0 d8 k. B3 \( ^9 y, ?0 _ }) P) e0 z+ ^% ]
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
$ c0 F& y$ t8 f! j+ }" f) h0 W, |) R" g: f. v0 S0 ?
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。# ? {7 c, Y% L& o5 G( O
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
$ Z! Q" Y/ s1 X3 a
" U, }1 L. ?- @; S0 `" K目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|