|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」. J! I; U4 @$ p ~" u0 c
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html4 a! C4 J; [0 q6 Z) c/ c
+ C* u$ k- P! k O" e# c" S
6 m& O/ Z' _5 v; [9 _. n' x1 ~沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
* o# a/ Z, z& H C
) H0 B/ r% E: f$ A5 E前緣:7 W9 ^9 Q6 ^: ?, G# U
x, R! {: ~! K: i% {
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
+ m9 I* t$ f4 n* N" U/ U
: v. b5 e- u: A1 P. k' X z目標:
( `8 ^7 H" b$ ~/ T6 R9 P5 t
7 z% s; R+ X, F9 g# F3 n+ F ~對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!7 V+ C: U, |, c; I; W/ k
0 N( n- a8 ]1 O8 G技術背景:7 G3 ?$ U7 I0 G% l) q7 K
2 ~" t! i2 U [+ M3 c
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
; l# ^2 S5 l! [& O' r) Q# u7 W9 `. ^& S* K- h1 ]: F
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
h) I: W2 A7 _/ ]) v3 ^( ]# _# n5 Z, _5 {1 @6 E
因此完成一個操作系統的啟動,
8 A2 X. r5 Y) B: H; p- D. S" p" C9 x需要兩個必須的步驟:1、MBR引導;2、OS引導。* A% j2 p" q- ~: K+ m6 h: y" p
, m5 Y5 T+ p3 \: l" b
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
9 l; T; \: [( t6 v& K- ^. W- \; U* p' ^; ?! a
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。" @4 y/ ^- g8 Q7 D5 y
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
- v6 A. A3 C2 ~3 P8 {( U+ y0 `2 Y# A, u; a/ K* R
OS選擇:( v) k9 U3 r8 F
' v; |! I2 y0 r6 ^
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。; }' D" o# M9 Z* u
, @9 J6 Q4 ?/ L方案一:NT Loader + AVLDR + Avlgo; e7 p, I8 \4 J$ U3 b! c% V$ l
) u0 H/ Y7 T" e( b$ ^
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。, B- r/ V- I! K0 L3 C9 H# l
* V) {( s! [. P6 u/ `6 {2 V工具準備:) i) c2 z1 [" x5 w& I6 _. O
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。( |5 O" k7 q: M( h( d
5 p, C( Y5 w7 g8 q$ ?. \: u數據準備:
: n4 C" M( |) ^: F( f! M! b% n% H
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。6 B E( X. C2 \4 O( S
2 L3 o. F: {( h- S3 m* P- z) @$ |+ b# \
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
8 Z2 c4 j! X! h+ w5 r% g3 B3 }% B" z q( ^6 j" b
: N! U3 ^" T+ O% i( m
% c2 c. c2 J3 M7 P
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
2 Q" k- c: @$ t* y/ B" D) ]4 }) y' X8 g' a Z: a
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。1 h- U) P3 ~! J, ?9 Z+ V$ c
! z4 D2 R3 A* S$ C2 b% I. c
, |2 |" i% ]" j" ^$ ]2 P5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
) B" t& m5 _8 o6 p. O/ k1 _5 ]4 e3 t# v
7 J" P6 X1 ?: L1 F2 Y
: A! K" l2 E$ y1 @* ^9 B
開始組裝:
0 H: |0 b' @; k. Y( r: @3 n6 o
* c# [- x. X* G1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:. K8 @3 q- H9 r' I z, k0 j
[boot loader]" J; c% i. i" [1 n( w |* a4 W9 n
timeout=30
* b- I. l2 k" Z" I7 Y; T2 o6 ydefault=C:\avldr.xpe
# |# n1 j2 k6 h7 V5 i {[operating systems]" h/ s: ~+ J4 x7 i
C:\avldr.xpe="Windows PE ByaoMaotao"
$ }1 }9 H( ~- Z- AC:\avldr.bin="MS-DOS 7.1 form USB-HDD"9 |2 y4 R$ o' Z1 X) h8 C
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
1 F1 j) g L+ G8 I2 J完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
w, T& D7 m4 u/ T( t0 I+ E( Z2 z" m7 ]4 |% b# u$ h
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
9 K6 [# D9 q0 i) |( h/ p0 h+ }# K* N. H7 B
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
4 y" E/ O$ z2 y8 Q4 u5 H/ J% ^' L
* a+ y5 G2 {. f7 p0 b& g2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。% w8 A4 O' k7 [9 E6 a! P
9 b$ }# \- i- A9 M2 ]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環境下。$ b; n# |! p/ ~+ w5 t7 n/ u- [' x& S9 V
8 P2 O) |# J+ r8 V5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
5 }, ~5 Q, A3 P8 c; Z5 p, S1 `
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環境下。
; @7 ?/ N8 }6 ?- G9 b7 c0 |- _" F/ G
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環境下。
- }) x4 i/ J( e' F
8 _) A' O& Z4 k% O3 f+ I4 h至此DOS/WinPE雙啟動系統維護U盤製作成功。
6 p6 ^+ E6 s, U9 W8 [) n% ?5 J% H/ h# u0 N) u0 E4 E
方案二:NT Loader + Grub4DOS
3 I/ _8 s9 E" ]5 X0 A8 V
% Z M1 K1 A1 ?% `4 y* a) Z因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
" p1 k* G/ J# Q5 H+ E3 N$ m5 ], r1 M, @" n$ Z, e
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
" Q% ~) D$ ]4 ]# w$ ?# `0 E1 U2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。/ O! q( c3 N) S& ?1 y: x# s+ s
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
* h& x6 c3 `8 `( B2 E; ~[boot loader]
& g. |( X0 Y( b0 o4 g5 Htimeout=0& G: [8 I' |7 G2 N& q7 N, r$ `! K8 R; J
default=C:\grldr( H# v& h5 Q! B- n) i% b& t* f
[operating systems]1 O5 F( \7 B) k4 u% d
C:\grldr="Boot Menu"
# y9 R! r) ^( C. w* oBoot.ini菜單各個項目的含義請對照方案一的說明。) Q( A8 [+ V3 @3 _9 g3 Y
$ B# d6 _: K. W. a- i; e2 S
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。) Q6 l+ C* S T. i
% O/ F9 H1 V, ~. @9 f& F
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
5 ^3 u( ]6 M9 V+ T$ h/ u3 G8 O* Q. B$ e8 P% h2 Y6 o" C; K
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
2 ~) T5 w8 M; m, J! r; ~ Q4 N( |% O. u5 x! J
7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
1 t9 H( P7 K1 H# @2 X Utimeout 30
9 T0 h) D ^5 xdefault 0
/ ]( R' D- E' N! @4 B# w @splashimage /boot/splash.gz$ s, b* Q3 F* w3 K% f; _ u" s' t
foreground ffff00
6 H% `* P+ E" M6 u: Gfontfile /boot/fonts.gz( Y2 ^ p) H2 Y' H" i$ |) U/ N0 q
title 啟動 WindowsPE- }9 Q# @0 N) j' {+ }
find --set-root /grubidx.txt" [9 A- K, B) C9 `( D8 l
chainloader /ldrxpe
3 T8 y* q% R: W" dtitle 啟動 MS-DOS 7.1
# c9 f# O% I3 H! o& k7 R7 efind --set-root /grubidx.txt
. Q! x2 o5 o4 Pmap --mem /boot/dos.ima (fd0)% |; q) N8 G" ^$ ?" Y
map --hook
$ q6 _7 l3 B- d1 L9 P* t o2 {chainloader (fd0)+13 X' `& U* J8 a$ a
rootnoverify (fd0) & I" r( v' G. F" s$ _
做完這些,U盤就可以啟動了。$ Q2 v! I! i: }7 j/ G
0 Z0 g7 `# M2 X+ K. {菜單項目說明:5 V3 r$ L+ y4 m @! H& [
I2 _: h+ Y( u, d第一行設置等待30秒的等待時間;( O2 l- A+ ~/ z$ W- p/ X3 C: ]# D3 ~
" `0 e E6 R% n% v0 s! C3 _
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
: N+ w9 p8 j. O
7 g5 T1 O" F8 f. D/ ~2 B" Rsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
) m: f8 j2 C! l! H3 a. V
$ I6 Z3 [8 y+ i' j/ E7 A* a/ iforeground項設置啟動菜單文字顏色為亮黃色;
7 _: t+ X, r; i% c" w/ {: b6 {/ Y" S9 _" g
fontfile項設置中文字體文件為/boot/fonts.gz
" T/ ~! R6 Q: e& D K5 W c. Y$ ~1 e4 `
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
1 _, ?0 ]+ `+ r& J$ ^: @, F, E7 b/ X3 e, I6 l- O
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
4 f4 Z; O! u+ L" y3 n& p1 J
: z0 W! {0 J0 f6 N1 {chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
/ L1 z6 x1 h4 U' D$ X% @1 ^, Y0 y8 R4 K8 o$ B# \4 Q
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
5 v3 [/ {. i1 j) D1 i
5 ^4 i& b% h: P# y$ s6 s# wmap --hook是讓裝入的軟盤鏡像立即加載生效。
! u4 L3 ?. m! ~1 O) }$ K! ~, a4 e3 ^
$ c3 u( K7 p, a! ~7 t+ ^( E8 |rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。% c: v$ m; u" z: W0 P
* B5 ?( r( B, ~* g" O6 v8 e! E! z本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。. B( z, V7 R, S7 p) ^
: t$ ~8 P# d5 R
0 _. |2 K+ S2 a. \# {方案三:MS-DOS 7.1 + Grub4DOS6 ]( ~0 u' d4 M* }
! r5 [! x; c6 s3 Y* c
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。& w1 x1 o {) ]( b
3 O7 {! G) i- z# X! y
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
. {2 j& G* i- m3 P0 n3 v
* q2 E. A6 P# i, B5 e, s; D1 s1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
1 [1 y+ X* k5 r3 n" q9 Q2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
: _7 J6 c6 a& @3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
' Z2 E R( `4 \/ [$ ^4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
! m$ P8 l2 v. U( I8 _9 T5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
% l- m& w! K( z: C8 G) o6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:5 s4 Q3 M) \% M9 f/ n& L: [
timeout 0
- b8 c. n9 d Cdefault 0
: S2 F& @; ~4 }8 U6 Tfontfile /fonts.gz8 A: ]6 ]- ?+ E
title 啟動 WindowsPE9 [/ ]& T V& m I5 A: v; j
find --set-root /grubidx.txt
Q, m6 F( Q/ G7 z: N4 t( G' j& R* Zchainloader /ldrxpe
) I3 I+ e6 I& d6 ]在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
$ S) s+ Y9 G, s# h
0 d: J/ H9 K; m" ~+ f9 }* o- @8 e7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
0 v4 ]/ C4 _' t: q/ |* }4 w2 `0 s& }; Z' z
grub c: ~! E& r, m
) d; A5 `. d% N6 g7 ?
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
; w. K' a; q6 r: S" G! }' \! S a. b" [. u! F
Config.sys內容:( `& ^1 E2 B* \- s9 H( ?
[MENU]
( |8 S1 }! y0 Z, F5 A2 f: ~MENUITEM=1,XMS without CD-ROM support' q; u+ Y+ H+ Z, F, Z8 _- w
MENUITEM=2,XMS with CD-ROM support; L- Q# ]! C v) i- t
MENUITEM=3,XMS and EMS
8 D& E3 z0 L% Y7 e: @2 ^MENUITEM=4,DOS real mode(no XMS,no EMS)
+ Q) _0 r( }+ T+ E" O: Y$ L" e$ \MENUITEM=5,Windows PE& }3 s7 d" q; o/ \
MENUDEFAULT=5,30
' `3 ~7 k4 ]' I$ c; u" M[1]) C$ `6 J" Y3 W5 o4 Z
DEVICE=\HIMEM.SYS /TESTMEM:OFF! H$ S+ H R- R- ?2 F
DEVICE=\EMM386.EXE NOEMS
) @7 x) q( i1 S C5 x+ t6 W5 ?& yINCLUDE=PUB
2 u3 p2 I5 s0 G j9 i[2]- E J5 W9 Z9 p" S
DEVICE=\HIMEM.SYS /TESTMEM:OFF
2 ~$ d! \2 T0 k4 Q* k! ~& wDEVICE=\EMM386.EXE NOEMS
1 V. g3 V6 c/ s$ k& ~( J- e. l, FDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD0019 O i' i- y* |. K0 m! b9 u1 }
INCLUDE=PUB
- i' Q3 T1 g* E* R[3]& E7 K8 w; B: `2 n6 }! U
DEVICE=\HIMEM.SYS /TESTMEM:OFF
# ]# O1 B" t1 b: o$ qDEVICE=\EMM386.EXE RAM! P: u1 V! x, A: E+ M( D. c ~/ |7 x
INCLUDE=PUB; B4 Z1 F% J/ }* ?8 C7 V; C: o
[PUB]5 u7 U. E8 r* A0 k1 o! r
DOS=HIGH,UMB
1 e. ^1 n( c' y0 z4 x3 J$ U) uFILES=30
" u, O' T, A) A) R1 e8 PBUFFERS=205 \, q; ]5 @/ r2 a N
STACKS=9,256& |) q. |; q9 Z
LASTDRIVE=Z! z. w: J+ X) [5 m4 l' S
[4]
3 \* Z: z" ]- dFILES=101 s* J* R* } Z; |- Y
BUFFERS=10
8 B1 I& D' E {, ]LASTDRIVE=Z
$ R; P& |# r N% S[5]
3 y: f2 G$ \: j6 [1 BAutoexec.bat內容:% v7 U( [3 [: o* w$ W
@ECHO OFF+ M2 N5 ~5 ]/ @' x' A
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
2 M- z+ C/ K7 `3 |; w4 XGOTO %CONFIG%
9 G9 q8 N, T6 N( v4 p:1) X- F# a9 u4 J7 z7 G9 M) N$ k$ I1 W
GOTO COMMON3 a) H6 C5 y; x( U! g7 u
:2
# F$ E/ U$ A: P# F7 i" ?. ?LH \SHSUCDX.COM /D:SSCD001# J& ^! e3 O/ p" K( b
GOTO COMMON) _/ P9 @! I3 Q+ V1 ?
:3; e7 O, ^2 D; y$ f% ~
GOTO COMMON) U8 P6 y+ U. o( {
:4
# e1 c- ]' E* z- e5 BGOTO END9 L H# O9 M9 H2 @% S' U; N
:57 Z/ I X0 ]* U& g
GRUB
( n8 Y4 O$ B$ ~:COMMON! b: |' B& W& x. ?5 H) u3 j
LH \SMARTDRV.EXE /X
/ p( `% q: U0 |4 j, k3 G8 h' }@ECHO Install mouse driver?6 x7 Y/ t. k) s G% O' A, N
\CHOICE /C:YN Yes,No /T:N,6- k9 q5 r$ e- j
IF ERRORLEVEL 2 GOTO END0 \( O5 w$ Y* a; |* m$ B) G
LH \MOUSE.COM
' q$ D7 T( y c" n5 W7 q:END y( k) c" L& q7 q& ]% L# P X
* a7 t) f* D- b" F. q1 p按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。: y8 l1 j% L w8 R5 P6 q: h# j
@; i8 ?" t) V( E, m0 I1 w# y% F
感謝5free和david_ge的幫助!4 ]& Y( q+ F- B4 ?7 A2 L
3 h( o; B) d3 b: c' u, |5 ~本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:% C$ W. k" {% S6 K
9 s4 W, K1 c$ Z
http://bbs.wuyou.com/viewthread.php?tid=94087+ [" R2 h& k3 T" G" N; V/ T. F
http://maotao.u.winzheng.com/; @" m4 z/ a2 ]+ i9 |
8 d' _0 |" B+ o. E+ P附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。. K/ u" w+ h! t! {/ P: ]' d6 J
$ p I, k2 j9 F7 u. G% o' Q最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。6 D6 A6 o5 W% ]+ n1 c
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
6 E# F3 y- `" F4 W; l/ C
* N! S1 e% O8 |2 P0 C/ A目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|