|
轉載請註明出自「 Zuluck!- 運氣論壇!」7 w: ]$ H4 N" P0 [
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
& x# ]0 t3 Z" U& D7 d
1 L. H& k2 D P" p+ k6 y; q2 L: n6 ?3 U! a; R7 c2 r, n
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
' P# i2 C" P' ^' y+ H! X& N! a
前緣:
8 L) p4 D8 M9 n1 Z7 G+ `5 s, B7 z8 r2 |8 D- g1 Z
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。1 T D- C' ]6 x# h4 q
( |* t4 a* M; [4 |4 R* e3 v3 @1 r& {目標:
$ l7 v* V6 M" v5 {. ^+ B- F% [5 c
5 f; Q# o6 Z" @% l+ I; v0 h$ a對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!- y0 a+ v7 U. ^
4 B5 t- S$ U8 K m$ o+ h技術背景:
4 D, ^5 m6 k+ `, y0 @- b
! Q% s* S1 D2 p3 K1 y其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
- K7 S7 o& h. b; W$ A
" A% X3 G# t" K0 e3 n' U首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
! u4 _* A* A# d0 g" K$ ^$ r
+ X9 ~7 M0 b% a( [9 v( n因此完成一個操作系統的啟動,1 A' z) k/ J) B9 j* N; v
需要兩個必須的步驟:1、MBR引導;2、OS引導。5 B3 q J! d. r* I; p2 Y
% u7 J+ b/ \6 p! l5 h! X6 Y0 X+ i
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
g/ _6 Q8 |) m$ \
7 e+ X" Y5 a# ~/ z6 Q, [對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。* ?0 d4 i; ?$ p5 ]! P' x* r
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。, N" S: Q8 W: H# x. W/ p/ A8 a# B
. |, ?8 _( X* T& Q) J( b4 ?OS選擇:
" |+ [% g- z, ]) Q$ L
, h; X \6 |' o) I- w6 |DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
. g1 z& A; n9 ]. T+ E$ \; A7 k% P4 f
方案一:NT Loader + AVLDR + Avlgo
; J4 b9 y/ i" O$ t' Z( [& r7 R& j
9 a9 ~( w; j) q4 U- ^6 x( [MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
/ i& V) Y. A- ]9 j4 h5 |2 S8 }
6 R& P! J p4 G$ t ^工具準備:$ s+ f( e8 X( I- W4 g& R9 Y
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
# x& C E5 S0 L1 D6 W& o
5 p- ?9 _0 O! ~( \數據準備:% t7 r$ I; ]! C8 y* w
' b* f& P8 S0 ^, J k2 v- H" L
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
# [' H6 f: s7 J% G- m% M6 W
% j( m. G. g G, U9 _! e5 R( d" C \# p9 Q0 ?+ w( u
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。7 _4 F& r9 D3 \7 {* C
6 C, K# O$ G+ f- I) ]" U. m+ o. F H: G1 V% l4 F, X- K* H
I( k0 C4 R0 T& k0 |
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
: ^1 W6 C% |9 L2 W& ]( M
; N4 N" \6 ]7 Q2 \; e$ |! k4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。
( _' m/ |0 r7 B+ [# z. `$ T; b9 a* T1 A: m
( N+ N' j% G0 `4 r/ _
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。6 {5 r! r& Z, g2 w9 j0 L
) R, i! ~5 f" Q
( \; N0 ]8 l2 T. w1 e% U, b T. }( c( R4 l, y+ _* g$ a8 p
開始組裝:
; b$ ~/ v9 S' }
+ y3 C# x- y5 m# o0 B I1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
" g- y; g: Q$ d. P6 o# {1 s! x% r8 ?[boot loader]
$ T ~$ G; w4 L* I7 ?7 W: ptimeout=30
8 N/ T& s1 m0 x+ b# O* m7 j% jdefault=C:\avldr.xpe
' C; u& ~# E9 a. N# _/ m[operating systems]
5 V/ ^, Y4 ^- u/ fC:\avldr.xpe="Windows PE ByaoMaotao"
# J9 g& y* S( n/ }% w6 ]4 v, jC:\avldr.bin="MS-DOS 7.1 form USB-HDD"
% |- m) l( e9 w! h6 |7 hC:\avldr.dos="MS-DOS 7.1 from USB-FDD" : k2 X+ ?$ j0 K2 B2 V+ Q
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。
" k5 S% ]; S) Q5 _" J! y7 l. w% ]- u- W' f2 d
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
- d7 p: ~: X$ _6 p
" b- _* Z. K( `2 K( |[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。( l$ d: @! b) a! L
' j2 e3 }+ {/ C+ L
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
8 m3 \3 E3 \! a9 R% ^0 e2 m* C: d( @! I! z# E& H/ o9 g" @
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環境下。
0 _! }( f! E6 |/ Z/ s2 T/ o
2 @7 E3 o; N. F+ v* a0 Q! |5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。1 o5 q$ ~; \1 Z) d' d ^
C3 Z* ~. ]) l+ Q
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環境下。+ C8 y5 J9 d' [* [
x' J$ V2 O" y# v! i/ E
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環境下。
; R1 C8 c3 b5 t# @3 f. ]/ M
( [- m& O/ j6 |5 ]; e0 W& Z至此DOS/WinPE雙啟動系統維護U盤製作成功。# S+ w4 n' ~0 J! C" }( Z9 R; ~# N
- ^! @, o% d* z3 W, p- K
方案二:NT Loader + Grub4DOS) K" x: Y6 v8 ~2 m- [+ R/ \+ ~
2 m2 v9 p! b1 S/ B
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
4 J0 W/ i* x0 [" V& x! P/ E, y4 Z3 ], \
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。; F8 t& R# f* t- o9 N0 w9 b( i
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
, `" b: l- ?6 f+ x4 n ^3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:* D* r& k# T2 Q" q7 P8 r' K6 { i5 |
[boot loader]' x0 j) i$ |0 ~6 C; @7 z5 z
timeout=0
- B# T: x& R, ldefault=C:\grldr2 x8 |! r, @, c3 }3 u& L$ @
[operating systems]9 a6 @6 ~/ }" a" I% Y0 D% N
C:\grldr="Boot Menu" 2 Z7 s( b8 r" o( P5 i2 R5 N
Boot.ini菜單各個項目的含義請對照方案一的說明。4 T/ l2 _# W6 s4 @0 j
. @! q. _/ Y% B7 s- e, O
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。. k7 o/ `* r( l1 f o; h# {
- L8 X1 P" e/ N1 {9 R* ^1 Z- g5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
# Q4 I) T/ n8 _7 G' Q. [, F: a) y7 M7 d$ A# h) ~9 ]1 f7 m5 W
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
0 W( h! R2 c2 t* t% R
: V2 H! Y; X4 N7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
) S2 Q( n% g. ~0 E8 m! D' Y, Y9 K9 Utimeout 30
/ C& j1 o; e' c9 S8 zdefault 09 Y7 L1 }1 n/ @7 B4 o2 @
splashimage /boot/splash.gz
# P1 t! X& E" C7 s4 B" R0 r: {foreground ffff00
& g9 Q8 c& x% d! F* M# g4 n: Wfontfile /boot/fonts.gz2 Y8 U& T% N7 b4 _% x
title 啟動 WindowsPE
1 _2 {; S' [ T7 ~2 j4 G. v7 ?% ~8 Ufind --set-root /grubidx.txt
9 ]) y; S6 P1 l* M+ ~! lchainloader /ldrxpe
' I! `( z- X1 f' Rtitle 啟動 MS-DOS 7.1
7 a9 }8 C5 p Y" k, n" _find --set-root /grubidx.txt
1 F1 D- f) y8 p( nmap --mem /boot/dos.ima (fd0)7 o4 ?5 E6 t5 j; L& K
map --hook
2 G& p3 W8 {8 W0 K7 gchainloader (fd0)+1
8 W0 C5 B$ O8 c0 ]2 a7 arootnoverify (fd0) & `5 s1 Y5 \+ p% C% n
做完這些,U盤就可以啟動了。
8 L+ h) {# @/ t' h
: j0 L. `' N4 y. {) g菜單項目說明:% `. p% |$ S1 X4 u2 w0 `
0 H0 e* v: K! R& m第一行設置等待30秒的等待時間;
; [/ |' {! _5 G m
+ a3 y6 \1 f, b! U; W3 S第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;# j _( S% z/ ^: f
1 k2 \$ T Z; Msplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
# F1 ^) y; t; r
. f4 R! ]* y/ A, z; v% _ T1 E( Gforeground項設置啟動菜單文字顏色為亮黃色;$ O4 |2 X& |$ I: j, a
2 n+ V0 J( D! h% ^ H
fontfile項設置中文字體文件為/boot/fonts.gz. |9 B" @8 Y4 ?$ U% l
/ x* `7 W" e8 B- R; ?下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;! Q _/ h* y4 P/ C& K3 {: g9 `# ?
; L% M8 P. A' O7 |) f9 k; Xfind --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。2 O+ v3 X9 u9 O8 b6 Y8 @6 d
9 q3 |' f) D, G& F* g5 u7 y( D9 F; _) U
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
7 g/ G8 b9 @/ Q/ o3 o2 M9 f/ t; Q1 l4 F# k1 a
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
" t# q" R3 ]& a ], X- h, X2 [$ V5 G8 X& @
map --hook是讓裝入的軟盤鏡像立即加載生效。+ {2 [* \3 f, ~3 }, [% `5 p8 Y& o+ G
m7 Z/ [9 q9 p; M" [. \; s
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
3 J, n" o: [* N3 S# r
1 P7 y. ^& S! l本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
5 }/ E/ p3 x! R* v# s2 l% }3 K1 W5 f( S3 b7 V% C
$ N+ l# ` W+ @$ L# r) j3 `方案三:MS-DOS 7.1 + Grub4DOS
% j0 M" A( B6 }* t4 | c4 r. x) [, E# N
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。5 n7 K5 ^( x5 l/ x3 I6 f
4 S# y. A4 A4 g7 W( d' c5 B4 p( ?2 P- b$ {本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。( W3 W; u* n; l4 U0 _
/ { Q3 X7 b# ~5 ~2 T0 b( }1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。0 V. m- B+ |% I
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。9 g% U( h9 d$ y' \+ q
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
: @7 @+ N+ I; F) n* A4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。4 h* p/ d1 b! w4 z4 L5 V1 J
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。0 D$ l' {8 Z1 T+ n/ E$ M. K
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
, w9 @8 L0 [- t/ V: Htimeout 0
- g. m; O: m/ udefault 0
% L9 ~8 c# ~, r# B# `fontfile /fonts.gz
% A1 J5 C0 H: V2 K% |9 ]6 ztitle 啟動 WindowsPE7 [; _. ?& z4 t2 h! W8 f6 ^, n
find --set-root /grubidx.txt3 |/ x1 N: U3 y' ^0 r
chainloader /ldrxpe
+ B+ N) X! H' R! A8 l" d在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。! `* o/ |% L5 T/ [, h9 _
: c7 n6 c8 ^0 @8 g8 W2 {0 `7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
% d s7 z/ s3 \7 J$ t' u( S4 e
6 a) c* g* z7 O& ^ Tgrub e& _/ O4 s3 ~8 p8 a9 ~
# ~( }* v( j/ m" ]; B* r+ i
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
0 o, f( Z( m; L* g9 Z1 r. _4 t6 ]5 ?$ ^
Config.sys內容:$ L6 N: C% d6 a& N) j: [! S
[MENU]
" n9 k3 @: H" a. n5 o3 }4 iMENUITEM=1,XMS without CD-ROM support' R+ z) N# v/ U! w# z( K
MENUITEM=2,XMS with CD-ROM support1 j* |7 I: Q9 d; n
MENUITEM=3,XMS and EMS
# l, m! y1 l; ~MENUITEM=4,DOS real mode(no XMS,no EMS)
# ]& E' r2 v8 J8 _9 \MENUITEM=5,Windows PE% i! E% d5 k9 L, ?) Q; l4 Q( J
MENUDEFAULT=5,30
' T8 u+ p5 V3 ~2 J[1]
. B, A" P$ o8 h/ [; E- m. o5 kDEVICE=\HIMEM.SYS /TESTMEM:OFF& r6 ?1 f( Y5 D! `; @
DEVICE=\EMM386.EXE NOEMS
% M- S+ [; \# y( b# \) oINCLUDE=PUB$ ~3 N3 y* I' Q
[2]
# H4 k! {& J! W6 g& O( W* F0 s; s5 QDEVICE=\HIMEM.SYS /TESTMEM:OFF
3 u/ t( S3 K- _7 S3 ~DEVICE=\EMM386.EXE NOEMS9 b% G2 r8 S5 G6 S2 r
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD0014 f& s# a$ {" z6 y. {
INCLUDE=PUB
3 X G/ X' ^% t, |& Y& `3 r[3]. ~- E* s* {7 `& F" y$ M& }
DEVICE=\HIMEM.SYS /TESTMEM:OFF
) Q% k: ?, z1 Q: SDEVICE=\EMM386.EXE RAM
0 k* {" T5 F' ~INCLUDE=PUB
* J5 [) a. W1 d[PUB]% W$ ?( c. R' M( ~$ m, w# g4 |
DOS=HIGH,UMB
Q1 @: B9 ~2 l ?, gFILES=30
% O9 s# _/ W' T ?% ]9 t& y, K, m9 r7 {6 _BUFFERS=203 `8 j. c6 }* i! h; Z! s+ t
STACKS=9,256
, j: ]; e' x; l. U o& ~LASTDRIVE=Z1 r6 x$ h3 D. Z- D
[4]' g5 o1 Q) l" Q* ^
FILES=10
+ h$ q/ u: b2 Z" W0 `8 i! |BUFFERS=10, E" G; y( c5 Z0 W# n( X
LASTDRIVE=Z: y8 [1 \* ^3 U$ {0 _5 }
[5]
3 G0 l' G% h$ O; R. b& ~Autoexec.bat內容:
3 l5 F5 ]5 E3 T@ECHO OFF
/ Y* o4 E J. HPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
) N' ]5 N: L4 y& m E0 [GOTO %CONFIG%; ?5 \5 O$ O$ u5 v5 m( ^
:1
: R5 m9 X* c: s& ` t) Z( C$ YGOTO COMMON
x5 o$ |. q2 ] J:2
O8 j) S4 i5 k+ hLH \SHSUCDX.COM /D:SSCD0019 j) i6 q! I* L# Q- m5 J
GOTO COMMON0 x9 [+ M [& h$ L0 i) \" n0 e/ l
:3
: P& R3 m! \& P* }GOTO COMMON
- G# K+ R: X" `: f:45 ?" _, x$ W; z. p, Q W
GOTO END! Y, \% O4 }; A; {
:5' S+ S2 l0 C, [( D0 _
GRUB# d0 i B! l* T$ k! R+ r5 K1 O
:COMMON
# O* b& S" x3 |8 |LH \SMARTDRV.EXE /X
& v$ q/ O# H3 u( ~- \' V@ECHO Install mouse driver?
' {7 R1 A* k6 B, z\CHOICE /C:YN Yes,No /T:N,6/ G0 P! b% {" R# i% l0 ^
IF ERRORLEVEL 2 GOTO END% g* r* F: [, P- t/ _# l
LH \MOUSE.COM
6 }3 A; w# @! y* r) N4 P1 |% O:END
. |, m4 |* p; u- P, ]& A, |
- J3 a) P! i' J按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
5 Y% X$ o' G+ [1 d
. A# l: s) Q, q2 V. v3 M感謝5free和david_ge的幫助!
/ B3 M/ i6 n" E; A1 e3 ?2 f% c8 v* R# f+ |
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:! k( t1 D$ n0 k/ }* J" c7 h
0 A: K' }* E2 p2 q, W0 r/ x
http://bbs.wuyou.com/viewthread.php?tid=94087
. y. Q2 c( W' t* y0 Lhttp://maotao.u.winzheng.com/0 h2 O) u1 G- F6 i3 T
; [2 W }1 h4 d# f& x' e2 w/ _
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。4 Y3 u9 Y: c x% c# Q- I; p4 i
" i: B* S9 e* k8 n最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
/ q4 H ?9 S( L- H8 x, j後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
, w1 _0 U7 n# E, X( c
( L; |/ J& T" H2 i) Z3 b" m+ ~! b: @目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|