|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」
, ` S/ O& a+ F% j5 g( C2 ~5 J本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
& I9 Z9 K7 _. a* u& Y3 N
+ _) ]) `; O( R! L$ ^& j
+ O' H# x L1 s8 G3 R' j沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
0 `5 m8 A, W u# p
2 D# K2 r& `$ i, J5 {9 x( n前緣:+ H# Z( ?: M6 q
9 {- |- {, \( u2 b6 n, `4 A* t) v很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
, @. V, S; n5 h( d, u, |& t: `1 g. b( x
目標:5 R# `+ g: O- E7 ~: `; i L8 }. B
2 i* }+ D! `9 N1 ]對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
3 u+ j! y+ C/ v4 q2 b
* |" c$ W$ r, s( u! [: [7 s) F技術背景:
. v, {* G$ x: }: t. G* L, C0 F/ W% w" J- V7 q# r
其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
$ Z9 h& o& l3 h. a& O- O* a' L+ w5 f$ I- W
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。9 I9 Z, W) i9 I2 v6 Q- P
. U: J& V9 C5 q
因此完成一個操作系統的啟動, I* U% q6 s! Q
需要兩個必須的步驟:1、MBR引導;2、OS引導。
! R/ w4 z7 b1 u/ X. O. k+ n7 Z/ K2 D1 [' A+ \& j9 x4 G5 F
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。! M/ P2 a( \* k X2 m" s2 H
1 q& S0 v. {6 v: P; R" l' v, w2 G
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
6 F8 r5 j% c6 T. E9 Q0 t- ^雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
/ \/ P/ ]1 r8 E& c( [+ C5 X
w8 G; O4 P* r( u6 u HOS選擇:7 N- A# [* Y* c! m, }# w, u, z" D& n
" z' t& k# ?! m% ]. K" R$ j: E3 t; _DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
1 b2 T; `* z3 T1 e! T: p, V
2 P% r$ Q: F: v+ v0 b7 s方案一:NT Loader + AVLDR + Avlgo
) B! ~0 n6 u) d! c* f) q) w
7 w# y" Q/ l( `9 B1 e; H$ n+ tMBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
0 _+ m! V3 e8 H- Q! D2 x
' C3 s/ I* C) o0 N! O3 D& R! c4 E工具準備:( \1 r4 A( \; J8 J8 J1 k
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
1 v$ C# M4 n1 D9 L& [3 D. D5 f8 g4 F- s" ^3 z
數據準備:! V* E* S* h7 X3 _. h: u
. @* G. K5 }2 b" x1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
" t1 Q8 g8 R+ E' Z
* I, J: b4 V5 o: C9 l9 ?* j/ m) O8 @0 o5 I8 |
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
$ @0 t$ \0 q; J2 `! h' F- u2 K" Y3 ^0 Y, @& _6 ?! A
P7 y3 f4 J/ l3 h4 @4 Q; J0 F
6 x1 K o- d9 m2 v" J9 q% y
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。; X A5 h+ T# e- y: V: b
; e/ z9 K1 P( r
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。 ?- l# m6 n% `. k) }9 m
# W. s& r, D1 s6 d) J" ?
1 m- ~- k' ?1 g$ ~* `3 K5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。; U: D& G' Z6 L9 X: D
, r' O4 ]- a0 O& {% I/ s9 s
$ S7 ^9 t; E6 C5 |$ e1 H
& j0 A+ r: M" u+ a5 K開始組裝:
+ V+ O, V( \- }$ w: p& x
* P! [3 D% U$ [% F% Z" Z1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
- i6 y2 x; U8 \ F[boot loader]2 c' T9 f. @, k: i3 J9 a, R
timeout=30
. s% ?: w, Z# e4 [default=C:\avldr.xpe
5 X6 f" ~+ r$ {0 k[operating systems]$ ]* a! e( |" W( R- Q# V) e- f, T& B
C:\avldr.xpe="Windows PE ByaoMaotao"
: Y: |4 M$ \1 P& XC:\avldr.bin="MS-DOS 7.1 form USB-HDD": k; `) |" x* Q# a6 T/ c; f2 ?
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
- ^2 v/ o. z z/ ]0 T5 O% ], t完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。- [; {1 _- t) F4 Y
4 b( W3 f1 S# q6 ?8 A
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
& e5 D' j5 w' z4 w( \. l; r2 C
% B8 t2 p3 l f K[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。; u' v& N; R7 _! ]
! ~% N/ p4 I; f/ [2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
# H2 g7 z! u% A+ A# @; I% G$ E5 d1 M0 Z% ]8 e/ I3 S# v9 x( ?, w9 b+ Z
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環境下。
, e. F. c( E* c
/ v# j" G/ o$ D) g. m& t% r5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。1 }/ \. L7 ]4 v) h
; J0 w6 O8 ?% C2 {8 m: y' Z
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環境下。
- d' l! y O8 o V/ S2 I9 L4 s# ?, }# u6 i$ @/ h8 ^% G. D
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環境下。. r4 \; `+ b% z+ z7 o& S' m
# V1 |' }: x. Y% o
至此DOS/WinPE雙啟動系統維護U盤製作成功。9 d- B( ^) P! W3 A: ^4 N
& ?" c3 ]- d5 A3 m. w+ j# ~: ^方案二:NT Loader + Grub4DOS
" G7 n1 r8 l1 v& S4 w6 k3 L6 D! g8 \/ A: }% p; ]
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。9 Z K0 K5 z0 Z! Z" j! O0 ~; O$ M/ R
; X D$ |. `% W0 w3 V1 l7 t1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。( g) O3 a6 n) S0 O Q6 Z4 ~
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。/ s: o" r) i$ Y8 D& `4 U
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:' w! C# U6 T% S: _: }
[boot loader]# a0 n; ], q# q* t- Y) `; q2 M1 v" L
timeout=0 X' q' D; Y, P" `9 D1 X
default=C:\grldr
4 ^+ q/ s" @! Y1 v6 K3 [[operating systems]
" D( \* H6 _ s; lC:\grldr="Boot Menu"
' u; \ F4 g$ r$ wBoot.ini菜單各個項目的含義請對照方案一的說明。( `2 e$ ]' H( E. q
- O$ U0 i0 z% z- h4 T0 Q
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。# R- e, F- h3 K4 B8 S) A
7 s# j4 b1 ?, m( D! o5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。. a2 C6 K8 ]. W$ q
' l' f( V* v0 t6 E
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
1 O0 L9 B: _3 o5 N- {
( R, Q8 K% h) C7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:& G2 ^7 ~6 g/ E0 x- m B
timeout 30( E; D1 P' {. {, E
default 00 N# x' Q* J+ k) x. D6 h! L
splashimage /boot/splash.gz
) V/ _" H8 K9 S% k4 G/ q0 A4 B3 m- @foreground ffff00
5 r+ l+ Z4 d/ {1 P5 F8 N; d4 _fontfile /boot/fonts.gz. ]: {3 M- ]( k6 B4 G) [0 j5 H" ?
title 啟動 WindowsPE
1 w+ Q5 P8 z- J# e4 D7 P9 ffind --set-root /grubidx.txt
/ @1 ]* T. |( ?" _1 O t3 X: ^chainloader /ldrxpe, C4 T" D. _7 D1 w. p
title 啟動 MS-DOS 7.1
) ?/ Z* y' J* V0 D# X4 L1 Ufind --set-root /grubidx.txt$ @' E) `4 ]9 G3 T
map --mem /boot/dos.ima (fd0)& D2 r8 n( H/ k- D8 I
map --hook
5 |6 W) ]. x/ tchainloader (fd0)+10 n% X1 J' x! S# q
rootnoverify (fd0) - \% N) ]* @$ E; `' M
做完這些,U盤就可以啟動了。- h( i+ x. X/ Y! `! F7 K! n* i" z
+ [0 a9 D9 B+ l A菜單項目說明:
: T; D- B0 t# g/ }6 e! {0 t2 |! z) p
第一行設置等待30秒的等待時間;
* }, a3 I4 Y: p. \1 N) F4 e; w
8 o5 L" G* y' M l% \第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;( g+ U% q/ w5 K* e+ _/ b/ S* d
7 h4 c* U+ H0 g8 y7 Z# Msplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz; o8 O7 R0 T. S9 H. _- N B! E
, O7 i3 Q, z+ j. ]7 p$ q
foreground項設置啟動菜單文字顏色為亮黃色;2 s1 U1 T ]7 g+ x$ s
5 F h0 d w( J& p" Efontfile項設置中文字體文件為/boot/fonts.gz
5 t, Y' v2 u5 c! q' n; i/ h! f- h5 i: \( l
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;# }5 ?& ?" }! E1 K1 G6 u. E
* R2 ]! l; M3 `8 ~8 O* ]find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
! h2 n N( W, K1 _- V
2 }2 }9 q# t8 ^3 b! s! c7 Echainloader /ldrxpe就是啟動WinPE的XPE鏡像。
A8 H7 p6 d3 r8 S8 F/ n+ }/ F4 O$ z* J, p/ U6 ?2 @1 c
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.' o1 t6 Q; s0 N" N' D
% a, v3 m7 c: X- @( t' E! r
map --hook是讓裝入的軟盤鏡像立即加載生效。; ]$ e& _5 U6 @) U& I: `
# V5 N1 C7 K$ u/ H6 W* x
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。( y, |) G6 ? T. l
! p; g _+ R4 T2 j* i本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。9 h- p2 F5 w0 ~, ?0 K" ?$ A* L
5 c1 L+ H8 Z1 l/ E# }2 I; P; `( L! o& j0 q& S
方案三:MS-DOS 7.1 + Grub4DOS
+ a0 V- @, M% K7 l/ K4 `. ?
+ t! c Q& s5 s1 x本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
2 E) X( ?/ S R+ ]
4 g- S+ a) ?+ p$ w" @7 Z本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。/ f) S& |- _1 V
; a. R, n$ V/ F& |1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
+ |. ]* |9 ~% o+ Z2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。5 r3 L& [! H$ [) J4 n" v( p
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
# {6 k" |5 t8 I2 m m: }2 @4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
1 P6 C6 f) P" z$ s! ~# y8 D5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
, `' P; |! L8 R6 E F u6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
# {" W# }$ [+ L4 F' C- Gtimeout 0
2 f" I& w1 ^# W2 |4 q0 W; ndefault 0
% L g) s+ }/ `fontfile /fonts.gz
1 C, _' }5 u7 W4 ~title 啟動 WindowsPE
* m( ?6 q7 d/ yfind --set-root /grubidx.txt
" D2 M1 O% r7 f W% mchainloader /ldrxpe
g, x4 X. f& ]% G! o* ~在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。& E6 i1 X+ R# _. @/ [
, Q- x3 H2 [/ D4 P* O' e: a7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:) E) p8 T7 n2 `2 {
8 h z/ \5 `7 K% ~4 I/ }* ogrub4 ]% l: m |# G- s/ u% Z$ `
+ d8 }; Z. P' V7 B L) w+ X這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
' {3 a) a6 A5 [5 g- j
7 e( s! X5 O S7 c' eConfig.sys內容:
/ E0 c" F: N% x# B( H0 N[MENU]; O- M0 Y0 h6 \8 _* L
MENUITEM=1,XMS without CD-ROM support
* X6 s, n: K& y$ tMENUITEM=2,XMS with CD-ROM support
+ P2 r1 ^1 Z9 k/ t4 Q8 ~MENUITEM=3,XMS and EMS
6 e* D: R0 E1 mMENUITEM=4,DOS real mode(no XMS,no EMS)9 z; \; M) A# [& `+ }7 x$ B
MENUITEM=5,Windows PE
4 B4 Q2 ~* e9 M$ QMENUDEFAULT=5,30
/ l: |) U+ `( G r7 l6 N5 s4 U[1]: P8 r3 T# N5 G5 R3 L
DEVICE=\HIMEM.SYS /TESTMEM:OFF; m3 `; C* S% _! |' \) i6 R! w9 D
DEVICE=\EMM386.EXE NOEMS
, p U* Y, X3 H4 K; E* IINCLUDE=PUB( [2 [) I1 ~" |% B6 G" T
[2]' W5 Q7 x( B: R4 k& U& a3 }
DEVICE=\HIMEM.SYS /TESTMEM:OFF
5 b' Q+ Q0 g7 e4 w6 {% H) aDEVICE=\EMM386.EXE NOEMS
0 k( g5 F& T8 [* e/ E9 _! C8 M9 u- j UDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
% ^% n! J, \9 _& hINCLUDE=PUB
1 T2 \1 ?; L S5 j3 {) l p[3]
5 J- W, Y, h6 TDEVICE=\HIMEM.SYS /TESTMEM:OFF
, m! b/ [ S# w8 MDEVICE=\EMM386.EXE RAM
7 b* {: h$ Y2 \9 CINCLUDE=PUB1 @* O9 b! s% c* f
[PUB]
& n9 x$ \( t) e3 w5 E% T$ HDOS=HIGH,UMB! K* O2 M9 M; E/ ?
FILES=30
% b! G. f: s& ?. o/ hBUFFERS=20
9 e# o! [ b8 v$ ?8 \ Y. y6 F/ `% jSTACKS=9,256
, y: z; _ G6 m0 W7 a9 c( ELASTDRIVE=Z
; z) K4 Z) ~( {/ T k: e[4]
+ m9 S) K& w6 T% ~0 w) s* a6 UFILES=10. {# ]7 A' y9 \
BUFFERS=10
9 P: g" |8 B7 |+ J. F( c6 ELASTDRIVE=Z$ a0 Q2 C ^1 J+ P1 ]3 d+ z' ?' m( ?
[5]- b/ F J" ~1 c. h0 y5 {! z8 x$ s
Autoexec.bat內容:- ]/ X3 r, Q5 P4 x
@ECHO OFF! O. i3 z; B7 B
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM0 x0 R& T+ I9 ^$ s
GOTO %CONFIG%5 t4 v; Q* B+ l m9 h0 Y
:11 M: g/ J) _1 p( S# G) {: {+ l
GOTO COMMON
9 X7 Z, j% d9 f:2
* q/ k- H7 b# D! W5 z! \' h3 ULH \SHSUCDX.COM /D:SSCD001, {6 Y& R' k I) T
GOTO COMMON: X( K! F1 l4 t3 M8 x+ E
:3
; M3 B6 @# f/ d5 k- SGOTO COMMON
N' F" E1 ?: j3 ` |* n2 u; p. U. z:49 ]+ ?% j' Y- l0 ?
GOTO END% Y7 Y8 l# }" O: g+ h+ d
:5) s7 Q& `* ^) r& d
GRUB
! j% x: g( b/ R: p5 P/ Q A:COMMON
8 [0 h2 B' K7 v) P' Z9 mLH \SMARTDRV.EXE /X9 i. M4 z6 W9 n8 q* b. I
@ECHO Install mouse driver?% R8 u7 k0 {4 U! p
\CHOICE /C:YN Yes,No /T:N,6
( s8 Y7 I3 P `IF ERRORLEVEL 2 GOTO END, v! N, o5 ?$ B3 h6 g- x% F
LH \MOUSE.COM9 `; f3 j3 W) a5 a
:END 0 [" s! N. ]7 u: E/ K
- R* _; G$ p$ K+ x+ A; p0 J按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。( M. ?8 C! {. T5 Z' [1 \
. \( c& y+ m% l
感謝5free和david_ge的幫助!
* G/ L: w8 M1 G5 X. ?/ {
. Z# i+ P+ i5 b! ?' l本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
0 Z, l! ^1 Z9 {% ?+ B) w0 Q& ~8 h e4 I
http://bbs.wuyou.com/viewthread.php?tid=94087
/ S1 p( z. z7 ^6 y0 {2 @http://maotao.u.winzheng.com/
/ e- T2 ?( C9 I- k. b6 `* c+ [- t+ G$ m0 y! L) c) p0 G7 {
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
& e( g& w& g8 t; |
* I; \. ?' w7 B3 h7 e$ b最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。/ H4 |3 Y- F/ \) l2 e |! F
後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。/ w. b2 l- n5 |$ t1 {
* Y, U# d! E# }0 b目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|