|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」0 {+ F ~9 }% h1 u; e
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
" J7 F) N6 l) i& T3 q4 c
4 t( o4 i" o" C' M' [. {" X
& {. e$ l4 D& X9 `沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
) u; E$ f+ \; J) b9 B3 J2 n0 \. v, p3 _- X
前緣:: [. M J& C1 m* t; `- B6 h( Q' K
. [+ Z# f' W$ G2 V很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
% }0 E( H3 n" C1 C7 Q5 X# d1 Q. ~/ A% c0 L
目標:8 K/ I/ F4 s% H8 W# U6 [! e
( e: D' p% F4 ~" s8 Z
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!" Y2 y0 f* z; m2 z
% J% @# z+ i: ~( C) u$ L. J- X技術背景:
2 }' P& I9 Z4 m( D" C6 T
) ~! f+ A( v# J Y. ~- W其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。. M9 y, n: v: m% x7 s
7 |$ K: ^: V" a* S/ \1 n首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
, f) r0 u- ?5 H8 P$ P/ {7 E+ d- d, A5 W7 p$ A
因此完成一個操作系統的啟動,& j2 z) P& y4 }% ^8 t( O5 ?8 Q" }7 J
需要兩個必須的步驟:1、MBR引導;2、OS引導。' z7 Z6 G) Z* k) g) O7 }' v+ O
' }) S$ g0 h( P" R% q8 k5 ~' t
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。' C4 h4 |/ q, B$ Y
/ n, P9 s! G, c. X, @對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
3 Q2 m$ P- j0 E0 D8 P雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。' L* z( L! B7 h& D
: o; O0 e& n, @
OS選擇:
0 b! n& K( M. j8 ?6 }; J `# s# F0 ?6 W O& y; l4 r
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。- Q) W: j9 T" G1 ]2 i& D9 ^- |7 j
8 k. \5 s( M3 E! m; ]方案一:NT Loader + AVLDR + Avlgo
# P/ ^$ d1 X) \- I
2 Q$ ]4 `" C! e; Y8 FMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
0 F, T2 X- C( j9 j# o; D: E9 `4 t; T) X( ?* t7 w# i) w2 u
工具準備:1 n. [! F2 u# l& l8 F
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
7 M0 Q. u# _8 @& |) c8 m- K' Y* B0 C7 n7 B; J4 Z
數據準備:5 M2 a, l& i7 J* J% w! C# x2 }3 d
0 {. I5 A! o( u) G; X6 c4 X$ j
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
2 G/ ?% R, M3 z4 i( O$ h# u8 X" R& v1 T& X5 M
, K. c; ~8 W" l/ \5 v2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。4 d5 U% q. j( i+ R; O) E; R* [9 k7 L
' p6 p4 }* o- D$ n- i
# h. e9 p2 a: d0 V; U, _9 Y
/ r& X7 o, Y7 b' x
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。1 o% f. E* A7 t2 ~' S3 v
8 t3 E& e0 j3 I) |8 D5 R/ d4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。6 Z% _) B3 y* O
0 L: q; L! U. t( @2 B: _$ @) A+ u5 e) g
& Z% K# T0 W8 K1 e; u5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
0 F B7 h- ~8 q Y |$ o$ C6 H% t3 K2 {; C' o
. D1 d( w! l+ N% D: Z4 S
9 {5 x8 y/ \+ f, _) L* U4 B
開始組裝:" @; L8 ~8 o0 Y" W7 c5 X
. R; N. ^' t& @1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:# Y6 L( @& z* |7 c6 N9 s+ {. _
[boot loader]
+ b0 D( T! M7 \) K9 Otimeout=30$ _4 y6 |4 g! Q6 J+ R
default=C:\avldr.xpe0 {9 g) g( F2 v3 ]/ L/ Y
[operating systems]6 W: n0 u& U$ A( l% `' U
C:\avldr.xpe="Windows PE ByaoMaotao"# p7 I0 d: y9 ]* v: L% u
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"
) P8 z5 P2 z! S- f1 ^4 @5 |C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
M: b# t( o1 s9 u8 {0 S- g, m) ]完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
- y3 n. @/ K- O* G g0 w; o$ d0 i# k+ x0 {! L& U; u$ K* G
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
; d' [0 f3 W! M r7 g. E! r7 G( ?8 K" E: N+ Q t) s
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。. v* j/ o- q1 K/ v" W( w1 L/ }- ^
]9 D4 x2 g' t2 i, z) H @% b
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
- y# U0 y$ E/ i1 W0 A6 @& c( Q) r2 D( C( }; S' k1 `. P
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環境下。
$ ^- s g! C0 Y( `) @8 X: |! t$ ?' H b+ D) i; d! P7 M a
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。0 i/ B9 ^. y2 d! T
/ @. T& p' K2 A8 [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環境下。
8 a/ g7 C# ~. U3 ^- n2 A' Q6 ]; n! [9 T
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環境下。) I. [( c+ X5 V1 |# U6 J U
" ~$ b$ r- Y) E至此DOS/WinPE雙啟動系統維護U盤製作成功。$ o F- J; {7 s6 e9 [+ p
8 c8 D- |6 |$ w: K方案二:NT Loader + Grub4DOS
1 c4 r4 T' L/ r7 r2 M _+ ^' S; o G8 f* Q3 j" x$ q. d% \7 \
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
8 _) L5 ~, A7 x: ]
A6 c* y# v/ X8 \4 L5 P5 Q1 O9 u5 X1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
: E* k/ Z* y; o' ]8 Y2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。* N" Q% N& [7 x; F7 c; n" G
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下: z! _9 y- Z! d4 p" b0 }
[boot loader]6 X5 \2 k6 i. a5 r0 I3 e4 u
timeout=0
* G8 P! {1 ]9 k, k5 ?; fdefault=C:\grldr
5 F; j' J. g& m) f% L8 r" ]; E. ]! a4 |[operating systems], }" E5 Z! y: I" } e) M: f
C:\grldr="Boot Menu"
0 Z$ b- a7 c+ g! I7 o/ ^% [Boot.ini菜單各個項目的含義請對照方案一的說明。+ Z/ U6 b$ {& ~# T$ p
) J" C& k, H' r2 s" P5 M4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。6 p: |# d" z6 f& T
) _3 a( y/ L% C, k2 _( x5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
0 w2 G4 f5 e) c: Z9 F5 M1 ?0 z# e; R+ g( O% v
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
% S. C7 P) _$ s7 B; T; _
8 ?& s4 a2 z9 f/ e9 [7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
% j, x2 M( a+ j9 Btimeout 30) {0 P* r" _7 h7 A/ B' _* A- z
default 0
( t6 }, S8 c* |8 w" [splashimage /boot/splash.gz9 I- s9 \; g, R4 u1 t5 F, T$ w# W
foreground ffff008 i/ L7 ?. z& ^ k6 R0 |" m
fontfile /boot/fonts.gz: A- d) m- L+ m$ }/ I
title 啟動 WindowsPE
7 _# `9 t8 C# }find --set-root /grubidx.txt/ _1 N' s. F x/ ]8 V7 V# W& B
chainloader /ldrxpe' h* r/ b! {) h' e% s4 H
title 啟動 MS-DOS 7.1
. C5 r4 R/ i, s ufind --set-root /grubidx.txt
8 M: A( `( D4 n2 s! ~/ lmap --mem /boot/dos.ima (fd0)
{* O8 V/ A, |) Z6 H& V6 Smap --hook; \$ O6 o, W b; t. q: I
chainloader (fd0)+1
+ I) _; r5 S* c0 xrootnoverify (fd0)
/ C! K4 G! j- J) o+ g& M做完這些,U盤就可以啟動了。
% e% u9 J2 ^9 |% z0 Z, K( w' ^7 Y# _; [
菜單項目說明:8 d" o+ N. h* T/ Y: f, N5 [3 ^5 ~! p' d
- C- O) O/ Q8 N$ V* r& X
第一行設置等待30秒的等待時間;* N) b* ~! _; ^8 p* X
$ z0 p# p3 y+ C) @( K) ^
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」; Q- N3 Y9 r* O/ V& u6 h' C- W
0 n0 Y7 l5 x4 vsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;% Z/ F, R" s) k, @- r* u
5 `% u4 T% [& Y% p3 \3 c! W3 v4 ~
foreground項設置啟動菜單文字顏色為亮黃色;
5 m+ J9 [+ ]6 ^' M; [+ x. L& E; L1 q3 w
fontfile項設置中文字體文件為/boot/fonts.gz+ W5 ~% a o" f5 ~8 ?6 D" a
/ i0 s" f& Q1 g; @下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
; W4 x" r5 g% y1 h
|/ |" S% I; x+ [1 q+ h2 Y/ gfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
$ H1 C2 V) f' v* N# S
3 r6 z7 R0 ]3 I. ~ y+ \9 u5 Z( ]' vchainloader /ldrxpe就是啟動WinPE的XPE鏡像。
# f+ }. {! m2 H H( g$ }5 _# @3 [: s. x5 T* \3 N
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
1 d1 @* x1 i. y% r
* @ m$ L' ]$ o8 d$ Q3 d3 N6 emap --hook是讓裝入的軟盤鏡像立即加載生效。
- J/ ~# Q( m& ~5 O5 n* b" H7 {& o/ d& w
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。# { v. s" n# N0 F! |
/ Q F' ~4 D) ?
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
/ p; w; u$ ^5 H* l% C3 d- l) g% A! Q" X
. @7 H) X5 }2 C
方案三:MS-DOS 7.1 + Grub4DOS
5 R; X/ @2 [# ^" H$ C+ W* c
1 a- n! j% D" F8 m# f9 M3 P本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。. e6 L- P5 T$ T" }
* J6 l& ?1 r+ ?/ D, Y' P本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。* D7 r* [# I6 X
$ S. B. \4 r4 e7 I" w
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
+ t, J, a O1 l4 g2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
: s6 C6 m5 N; {& Q! m* A( Z, Z8 F3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
+ p( X0 D1 Z; E. m4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
3 X2 @/ u" x2 S5 u# j5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。/ X6 t7 E7 X* W: v! W2 j6 e, |* ?
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:2 t5 a, S1 q0 Q8 Q$ d3 A- N* B
timeout 0
$ X) O+ l( U5 P1 s, x: m qdefault 0
0 D4 i p) }1 h* g' p, j. Z, K+ qfontfile /fonts.gz* C, e5 q; V6 `$ r
title 啟動 WindowsPE0 H* W+ p0 h/ d; M# S7 [
find --set-root /grubidx.txt. s7 v( }+ F, `- M3 C/ ^
chainloader /ldrxpe
$ B( X$ x2 O0 e. b+ B% T在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
: S: V, o& x/ q% T; R6 s5 C& n. M! @9 E
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:( U1 b" B0 }7 X f+ P
0 ?' y) n* {, ^( B6 F, }
grub7 u# q4 r8 Z) K; n; w; R
# r9 l6 h5 n% T3 [9 \; t1 X, R% S
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。2 S {( y$ r- R/ K. s# i6 k z
) J3 L" r* a. b' S1 _& [) O
Config.sys內容:/ s' v& E0 i$ h; w
[MENU]* u* O7 F1 p$ L6 C; {2 I& f
MENUITEM=1,XMS without CD-ROM support
+ _' I3 k7 Q( z# `, V% ?) iMENUITEM=2,XMS with CD-ROM support
* Y( O2 g8 m/ b& Y% aMENUITEM=3,XMS and EMS
, ^' w( S3 P; w) I- i! QMENUITEM=4,DOS real mode(no XMS,no EMS)
1 P" w' T& ]) O3 HMENUITEM=5,Windows PE8 H! c9 Z# ^4 }! `1 m. s f4 k
MENUDEFAULT=5,30
D( N$ X2 T9 D7 c' L9 f[1]
9 G" c/ [. _* w7 m. Y; lDEVICE=\HIMEM.SYS /TESTMEM:OFF! U5 O( i" L% _+ I J
DEVICE=\EMM386.EXE NOEMS5 ^8 s$ G, X, A3 Q$ a
INCLUDE=PUB# O9 {8 ~1 V6 X
[2]( k; T6 l/ C# Z# Y1 o7 y; d# F4 `
DEVICE=\HIMEM.SYS /TESTMEM:OFF
' \: [- e) q# V' P! J2 PDEVICE=\EMM386.EXE NOEMS
$ M& ^4 O3 R3 jDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
: g P9 X' L& z$ i4 r2 C" ~INCLUDE=PUB
0 V+ z% u# u2 l! L- Q[3]
. \* z2 _+ f U; R+ ?+ A9 `DEVICE=\HIMEM.SYS /TESTMEM:OFF
" O6 w" J8 G$ lDEVICE=\EMM386.EXE RAM
, N8 I! i4 n3 K& z ~4 T" ?INCLUDE=PUB
( j4 E+ |; [1 }! O+ Z[PUB]& o6 U- W1 {9 f" ?
DOS=HIGH,UMB/ z9 \# Q! V" f; i
FILES=300 i/ r! }2 s' q+ p
BUFFERS=20
( w p* j# S7 Y! ESTACKS=9,256
/ T2 S1 H+ g4 Y6 M: w% N2 fLASTDRIVE=Z
) z' [6 i, S! V8 r7 D% Q; }[4]
! p# y3 M7 G7 Y1 @. ?1 ~- SFILES=10
( N' N4 \6 c1 Y* \BUFFERS=10
# X" d4 m% J4 O5 h9 v4 BLASTDRIVE=Z
, V: G1 X2 r+ y* [ S( {/ Q9 a. H! @! j[5]
: L1 S; y5 ?' i9 C, i% JAutoexec.bat內容:
8 E0 Q) L& P5 K* L$ \+ @2 ?@ECHO OFF! ^& F+ r/ \! D' K* \
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
% P( R9 r0 |" o# kGOTO %CONFIG%
e# ?3 j7 P( N: P# a8 @:16 ?. y; R+ i6 S
GOTO COMMON& x" [- u0 N/ I2 K
:2
6 U T% l2 s3 F, y* |LH \SHSUCDX.COM /D:SSCD001
: P3 E% Z8 q' [* mGOTO COMMON
! R: P3 t! I" V# L- j:33 i% s9 E6 Q# T, C' E) c
GOTO COMMON
! q2 t' g, _4 X5 y, K) v:4( M ?- U9 r/ o: o1 K" @
GOTO END7 h* A: e4 }: s
:5) j, n2 p- e' `
GRUB( f, k9 o4 G8 x. V' e' Q4 z+ W E
:COMMON. W$ J$ ], T; F" q
LH \SMARTDRV.EXE /X
- @3 n" E6 g- u+ j4 u@ECHO Install mouse driver?. ?: N* q: W* l; v9 ?
\CHOICE /C:YN Yes,No /T:N,6$ A5 T- o0 U4 d2 d6 K$ J
IF ERRORLEVEL 2 GOTO END
9 f$ P% Y" u1 X- ULH \MOUSE.COM
* L: O# _& U. T9 v/ h: y% {:END 4 j6 j" \+ g3 Q% H; E5 r0 Z; F4 B Y
$ [# v0 q9 D/ ^3 {, X* g
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
' f0 c3 l$ @5 T3 ?$ L6 [9 E' N; X& I t$ s! N! @
感謝5free和david_ge的幫助!, T5 p& l _5 ]/ u* H) ^/ ~, f( z
2 }: w3 T O! J! x" S7 `
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
$ h: L: ^! ]9 i& b1 v: G% D' j
: O- `! j: C, U5 R" Q! ghttp://bbs.wuyou.com/viewthread.php?tid=940878 U% V6 S. c- J) V9 H% B1 T" T
http://maotao.u.winzheng.com/
1 c4 V1 c0 v: w7 v$ `6 L* @. f
) B2 E/ o9 d+ V9 W' H) b附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。' u5 r8 B" y! ?9 @$ w; j* E1 n
" ]4 g9 @4 U: h. [, U- Y4 A
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
0 O& g0 A) O$ I後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
3 m. ]- L e5 W1 R0 _7 [4 r( D+ Z9 J) G0 c3 o: U3 y
目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|