|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」
$ e0 ^ B" C7 Y1 k! e2 f本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
, s1 i2 u- y* ^+ R! L$ L$ Z4 r
4 ^' q7 e; u0 q; }/ B0 I! k8 @9 z i6 U
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。$ v: C9 H& V' U
6 T0 \6 o/ U& J5 T- r0 D7 l. l: Z前緣:
6 O: G) ^6 Z: M
4 A. e# w l; F5 }; g5 c很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。2 A& k7 V2 `- \" {2 J
; z% Q5 {3 [6 l' p& R
目標:/ [& I6 N+ ?4 T! F) U
& d. J) P3 {6 M- E j' O. Q
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!5 j! C$ m$ Q" D
1 J! Y/ H0 H' g& v5 X4 f; x
技術背景:# T* }" i, h0 M: ?$ b
- A- T. o8 g- E5 S: {其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
" O3 m6 a( f' O4 `# L
! s! f0 S5 ?4 f1 r. ?; x; `首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
* o0 W; t/ \. }$ f/ U$ \6 b6 W3 s9 P/ `
因此完成一個操作系統的啟動,4 W) V1 y! O2 x6 T2 b2 t
需要兩個必須的步驟:1、MBR引導;2、OS引導。
# S3 [+ B' a/ O9 t+ j' w. M; `. l2 M+ p! N9 K
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
) d9 H" n' {. h, s) b- K6 y( M- Y# j) z9 f& X2 Y
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。# e$ H, j8 v# m; d
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。8 ?+ o0 w3 d0 _
6 F9 c% K; q! W9 u& @! z0 BOS選擇:" f1 x: |3 s7 F# `% c) g% i! T
) a5 @% \' b7 G# ?DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。1 X. z" }. o+ f( c% v3 [
7 k& P. g+ F9 u; _: ~. ?方案一:NT Loader + AVLDR + Avlgo, w$ U. k3 c$ B2 ?+ e
' j' r$ _) w. N+ b
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。- z& E5 C" y' L J5 y2 u& ]
6 j: J- E' k9 Y2 B, ]3 d
工具準備: Z$ Z: H; T h m5 e, q9 u# W1 g
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。+ I3 P _2 Y, y+ q* f+ ^- y
$ a% ^+ f8 X" o. u
數據準備:
% G8 S+ T* E7 W0 Q
0 w0 u% [8 S2 a0 C9 Q, j3 \1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
( E+ {( w, c; ]5 Y# q8 Q% k# i$ N# F s( |
J. `1 _# y; I! U: f6 f
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。. b- d4 F- d5 B: V4 {4 d* K
0 W- ~" u( x3 R4 }4 ?$ G6 `3 \
$ T% {: k3 e' k M# W; z' m# }0 N; y; f- f* n5 P0 i
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。7 m0 V* z* Y$ Z
* ~8 `$ r' W% Z
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
. Y+ L1 f+ J7 M" c# R! A! K
7 |+ u, ?! ?1 W" T& X$ [! N! N: q. F- @
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
2 S" \# i( E% M6 Q; ?* m& L i$ E, n
% ^' ~/ W2 e) x4 _, g' E
4 C' c2 s, \* k4 z$ z" R% j+ h開始組裝:# m0 |+ c% y2 d/ r3 I
1 h4 y8 w: j% `$ E4 u1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:+ a! {; u" H1 [& H& g+ E: x
[boot loader]
9 r+ g9 q! `1 qtimeout=30/ w: j" M1 D( |. h, t9 \
default=C:\avldr.xpe; G2 ? X" D, a0 L
[operating systems]
5 [. u1 r- \% F# ~C:\avldr.xpe="Windows PE ByaoMaotao"2 m/ s' s" Z; G: ]9 S
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"( s, s2 i P5 o2 j V
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
% x1 c! b2 K/ `* \完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
1 V, I7 y7 `- G: u& c! _1 J$ v! @. r- @( v- k" u. J; j [+ R
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。; P6 P: Z# f. ^' M% M9 j
) ^# V& D2 f; E* S
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
3 n* V/ l7 j6 u' q0 Q0 _3 A. A$ f, B4 q5 U. z$ ^7 \4 [ x" X
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
4 s% p. \8 \ y5 E
5 _, O: n- o& J4 ~' A) h/ T3、把下載到的老毛桃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環境下。
- n Q9 k) f( `" M4 ?
+ |: ~ W- ^8 }- C& R" t- Q5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
2 J0 S8 ^+ J4 a4 E, ?& A* y0 U' `( h2 y- s# @( ]) p1 d, i
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環境下。
9 B, ^4 c( h" O- x. C& [7 G9 b4 @: a5 t 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環境下。
* `1 z0 u7 l$ y2 D7 f% q2 ~. F5 {2 ?9 {8 K* U; S
至此DOS/WinPE雙啟動系統維護U盤製作成功。
! u9 k! ]9 S' J1 k; W3 }) W. L4 ^. W! k7 q% @( c3 n
方案二:NT Loader + Grub4DOS" l" G5 P8 q" f/ k `0 w
) e+ J1 G+ |, Z& L2 [
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。0 {' m ?( W1 m3 \. ]
4 P# s; {1 ?% z( b# \2 e" I* B& }
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。' q2 ^/ e0 W# C7 N! ?; U
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。& g5 ~2 z C" s& ~: B; G7 x
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
# f! J- m3 h+ l- b; Z[boot loader]
. x: }9 @. W) a( o' w* wtimeout=0
$ b; T. t" A$ V; v [default=C:\grldr
6 {" r% T: W* `, I0 J[operating systems]. V( l8 D. Q2 t$ P0 R' f
C:\grldr="Boot Menu"
5 E* A% g9 n1 v( N/ w. z$ P4 c( aBoot.ini菜單各個項目的含義請對照方案一的說明。
. K: y$ d1 w7 n8 L8 R F
6 _% J8 l4 L' ]. g4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。& c! F4 `1 D- N( y7 h
# ^9 W4 z* W: l
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。2 z; ]; T% F, n& G& v; g Y+ N4 p
& q! x0 W3 ?) e) m7 J0 f1 Z. R& F0 G
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。 J) O% |! L& P j
, I7 A, I% g0 \* F" j6 i
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
3 ~; x, l( g; o1 d9 a0 k, g# _timeout 30
' ^4 f+ w, @# K2 V% K! jdefault 0
! V1 w) w& X/ Vsplashimage /boot/splash.gz
* [1 x; _$ |$ b Dforeground ffff00
: C- G7 g$ n/ C6 R. |8 e5 K* u9 _fontfile /boot/fonts.gz6 e* f4 H! [0 |) R
title 啟動 WindowsPE6 C9 V) H1 n# j
find --set-root /grubidx.txt
9 b4 {3 ]0 g- G( |2 p: ]8 ]1 V: w6 Echainloader /ldrxpe; }0 b/ H2 R6 [# p( T5 q' w) f# P
title 啟動 MS-DOS 7.1
6 g- m$ L1 y: ?% X! g4 dfind --set-root /grubidx.txt
4 H, I" e q) E, z/ l! @map --mem /boot/dos.ima (fd0)
. P3 F! |9 C) S. y" \map --hook& R+ ?1 x) P0 U
chainloader (fd0)+1
, `5 c: z6 C1 s3 B3 Frootnoverify (fd0) H, V7 J. H( X* l
做完這些,U盤就可以啟動了。8 R8 p: O2 u ^
# ]; v2 y3 q6 B# q* A. n( r( C
菜單項目說明:
_! P0 P' }: `, ?# `3 _- t, k9 |
第一行設置等待30秒的等待時間;
/ S4 M$ t" l+ N7 O$ M/ m! x m* |2 k- B/ j
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;+ V: a5 S n" j+ i" c
) L( R1 X" A$ p% W' |. h1 }" Jsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
+ W" B+ M' ^# B& C" u% F' f
2 n9 U: a: U* E9 N, P0 c+ e% k- Pforeground項設置啟動菜單文字顏色為亮黃色;
; S. J) h/ R7 G9 t8 e \" r0 `3 C* {$ _ t# {1 v: }" }; u% U7 j
fontfile項設置中文字體文件為/boot/fonts.gz ~) e6 I s {' d2 `
# S& R! g0 X' F1 h% _$ K$ Q
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
) {9 y/ j) l+ {4 H# K8 q7 c* N% X% [6 Q1 T$ U' M# S" C
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
" l5 J# t) P' s1 i1 u1 n- e! X% b" I, _4 E6 o$ G% y& }0 F" v
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
: P/ n; \7 N9 c" k, O
. e" R0 e7 N0 E1 ~% P: [' emap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
! T) j8 [7 [7 u# P% t4 r2 v0 v5 _8 k3 H6 A; J& k2 H
map --hook是讓裝入的軟盤鏡像立即加載生效。2 m+ I: D5 X" c- x9 n4 a
/ c T( d. z1 }; N
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。0 a: g4 r7 z$ Q, Y. F3 C) z8 @
* W( v' }# X) @( h+ |0 o本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
6 g" h/ W# P/ V2 c! M$ ?! `" {% p6 ~2 d, ^6 E4 f% n4 q
. z' e0 h: v, K+ {$ @2 r+ @; w方案三:MS-DOS 7.1 + Grub4DOS+ i* m# J- t/ [3 R+ e( I0 E8 ^
|( B0 R$ u, i本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。, `1 U; Z! `* ^# [4 L
) f! o: ?9 t6 P: A G4 K本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。3 n$ {6 s' x8 \4 B' |
6 M/ A- p5 |. L1 Z. L4 {1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
, ]! T% C8 D0 X9 o" m- L2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
' Q% n- {. w) {+ x, _/ s+ K3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。8 Y2 a5 B2 I. ], t" l
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。$ ]# |- D. y6 D; A* R( W
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。5 @- \8 F) E+ M" D% y9 y5 F" f
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
* g1 V+ [6 X6 d& G' R4 Rtimeout 0' V9 n/ ~- L: J. z% }& {! g* r
default 0
" r& E" R7 t! G2 H. w* S6 P* }+ vfontfile /fonts.gz+ {; e3 g+ e$ w, c4 ]) C3 q! Y
title 啟動 WindowsPE/ N: D( d: J( T2 ]. P3 n
find --set-root /grubidx.txt% ~: f9 g+ l" X( N" ]
chainloader /ldrxpe
) h% F0 |7 I4 K3 Q; e在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。: \' @0 p4 @3 @; H, a, {5 m" H3 |
- S4 s9 g3 }+ G* `; W7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
1 c! W* c; T, T8 x, v1 Y
/ Y$ `; q" T( M( `3 |3 rgrub
% w; C5 z5 d& ?
% }3 w( L. f3 e4 W+ V$ f+ Z5 p這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。( }, c5 G7 @3 U3 B, \- @
2 m# e4 A3 o7 x! T" z( fConfig.sys內容:
1 P. }5 Q' X- n* G; n! H[MENU]; F9 r+ K! n5 R
MENUITEM=1,XMS without CD-ROM support
2 H$ S( g* L% v3 q0 i$ iMENUITEM=2,XMS with CD-ROM support' J" W( ?1 ^+ ]$ G4 r/ \( ^0 x: T
MENUITEM=3,XMS and EMS
5 }$ G0 x5 R4 r( VMENUITEM=4,DOS real mode(no XMS,no EMS)
1 I# K6 I4 s4 Z$ K! H4 h9 HMENUITEM=5,Windows PE
; ]: f7 T' T( i! ^MENUDEFAULT=5,30' a4 `! w: H+ g5 B$ ~ J
[1], Q, b9 }& _, v: y% b
DEVICE=\HIMEM.SYS /TESTMEM:OFF5 Q8 C/ B# O* H7 f
DEVICE=\EMM386.EXE NOEMS% J6 p% f0 [" {! f" j7 B0 x
INCLUDE=PUB
( I2 K# R# W5 Q: {* w% \9 N[2]' c$ A( A$ f5 P" }6 O
DEVICE=\HIMEM.SYS /TESTMEM:OFF: ~0 d) X: _# \
DEVICE=\EMM386.EXE NOEMS0 ^7 _ k; N- g- Y2 i! K
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
3 ]$ t+ ]/ ]" u' @8 {1 K5 i( ~+ EINCLUDE=PUB
7 x6 W$ i( B. W$ {' o* S[3]
2 {+ E* }; A' u( u: E- o5 @" n/ gDEVICE=\HIMEM.SYS /TESTMEM:OFF: R7 o- w" e7 l' i3 K
DEVICE=\EMM386.EXE RAM
' L9 p- w/ k7 T B& rINCLUDE=PUB+ P t+ y' {8 H: m) x% m3 S
[PUB]3 m) {' S, ]- C( H
DOS=HIGH,UMB2 K8 S- Q- r. m) \
FILES=30& v' ^8 Z% r7 Q, S. k0 v6 y
BUFFERS=20
" W9 f& |: K Y6 g* jSTACKS=9,256
" r0 L# [; J& i6 X. s( D! Z' ^LASTDRIVE=Z
/ g8 t& Y3 i$ u6 |7 w' p[4]
( I' l6 @+ P! g& k4 D/ _FILES=10
; O# z/ l$ X# F g6 e9 V( dBUFFERS=10
; o& F5 u# v! r4 n# C$ n8 k. lLASTDRIVE=Z0 h! o. f" ?" j4 u- P
[5]: m. ?- j3 p; _
Autoexec.bat內容:
, m% H' D4 Q! r5 i# X' W% a. S) e@ECHO OFF
* {% g7 s0 r) X8 DPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
& i4 R9 x/ M$ P6 J: pGOTO %CONFIG%
( j5 g ~5 k6 D$ s1 ~# B:1, q5 t. F% w6 _5 `0 E: F- @: j* p
GOTO COMMON
/ B2 \& _* A* Y- I+ ]:2
' x( q k* h8 a$ U& \LH \SHSUCDX.COM /D:SSCD001
" Y6 U) ?- C+ y0 n* h1 \1 PGOTO COMMON0 y$ j% ]! }. t! K2 v' a' u
:3
: N" S" t/ E$ z; i- FGOTO COMMON# ?) `) ], f4 l/ `2 Z
:4
! c* k E. C3 U, b7 s1 E& o7 bGOTO END% q% Q" O( Z9 N5 b- W O: H; b2 i
:55 F5 Q% X9 k3 }3 ]
GRUB) [" q7 l/ i" h" O" D2 @
:COMMON
( C4 g' |# W' [/ [: W' mLH \SMARTDRV.EXE /X' k. E# _7 } r
@ECHO Install mouse driver?
! q4 D$ ~' y1 G9 c" J9 c! n\CHOICE /C:YN Yes,No /T:N,6. {" e. j* S$ I; w
IF ERRORLEVEL 2 GOTO END( L. T! K7 f8 T6 t# i+ K
LH \MOUSE.COM
+ G- f3 i: Q5 ?- U+ e1 B2 @:END : @9 J& O2 J+ y/ W9 D
4 ]- C' U' M' `! V' q% d: j
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
" K1 {# ~/ L6 K7 n
$ U8 Y* J& _( c$ l4 D# U感謝5free和david_ge的幫助!( E2 W" Z) i; F1 Z' n: u% M
8 z$ [9 {! k2 e' ]9 X; W
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
" t, U" D, M% |0 O/ X9 X
( S8 w. t! C# Ahttp://bbs.wuyou.com/viewthread.php?tid=940875 @4 J. P/ g6 M& I
http://maotao.u.winzheng.com/
( H' [8 M- z% d; p% q" d$ Z- }; c. [0 R" _0 g5 [
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。; C" o( {4 J9 A% y" C
+ e* |7 D6 H, G3 ~, |8 \最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。' K8 `0 w, I& ?, t7 O$ A: m+ X3 J
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
& w( C( v9 j! j+ } x* ^7 V% O- h& \/ q! q- e
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|