|
轉載請註明出自「 Zuluck!- 運氣論壇!」1 t8 t4 d$ t9 S0 O4 e
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
) T/ e! a6 v/ G& S5 T
P5 `+ }# _) f0 ?; t: i& \& R9 f, l6 U- i+ z+ G4 }
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。/ z& m0 S) T! {9 {
2 U7 N2 |( o$ A' q0 Z) c' }' [
前緣:( S" W, @0 | O
6 @; @0 b. V: N% I c4 q% y很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
1 y) e* W: W7 [: r' Y* n v, }% i5 I, b' h2 G9 R9 n" A
目標:4 r+ q1 \# r- [2 S* \% A' a/ A$ C: h
. ]" e" P4 P# R6 }% w+ ~; J8 c0 k) U
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!7 Z+ L6 S* Q. D' R# s3 J6 Q0 C
. T% @# [2 M& x( l4 y) W
技術背景:( k3 E- Z! _: P [: U
- H9 H/ C7 x; e! B0 q% k1 B! f其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
. b& }0 N$ E# ^# n/ x( |$ U
+ t( C% ^) I5 Z首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
7 U- ^; v, t- V' s% x
8 B1 e4 q1 z. f. B9 B; m因此完成一個操作系統的啟動,2 X x0 l7 d+ G- }- Y
需要兩個必須的步驟:1、MBR引導;2、OS引導。
! H( v; [9 f3 c& e# x% V# j9 v6 |: E& O, q+ h
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。0 u* U1 w# H( ~ R2 R7 y
) e* {$ r) T5 k6 A" Q對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
( d' i& X( R9 }" o雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
8 I7 z; d" z8 q/ l$ f5 d* P; R* b: y, C- i& u
OS選擇:
0 ]# w5 k( F4 j! z% c3 c1 {0 a+ x: O5 {
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
) h8 |, ^. R" m
3 p0 K2 B1 h+ c! c' }# z方案一:NT Loader + AVLDR + Avlgo
0 z, T# m g0 X: U1 w* y X. z( [) m* w
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
5 j; k! ]: i( R) R0 _: Q r' K. p; m2 Q5 L% U
工具準備:4 s, m+ P F7 m
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
% q6 o! N! X" k3 y8 b
1 w5 L4 D) \6 e3 X數據準備:+ f1 l: O3 Y8 } o7 U6 F
2 C3 Q0 @9 C, [, g1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
9 @' V4 O4 U' w: L, u( f5 M
+ g' ^, h6 ~6 y$ a( d: B9 O0 l ^1 B: o6 |8 s9 q
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
1 G: z* M8 f7 `0 I4 Z
+ R9 }. a1 s" J( k( z; D+ a0 e1 i D! F2 j
$ ~% d7 D) Z1 R a& H. E3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。
1 p$ O) M8 N9 ]" K( Q7 m5 e6 @
6 l: v& N+ A% Z, j! z4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。: a0 ?$ O/ ~" q" F* }$ @. d
3 o+ y/ T+ b' I* n$ E2 R- Q" h" w
/ N! H6 g* @3 S8 x" Y9 x3 k' B5 [
5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。
% s! H: O U1 O
c6 l) }5 j* R- V. Z! d! }
Q* @! R6 g/ s: e x/ i0 ]( B( ]2 R2 k' g
開始組裝:! C3 V+ l* H1 `( ?7 U ~
4 {8 A, I: C' [# }& z1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
" p1 \ c _% A n[boot loader]
! j: c/ g, H* ytimeout=30
# r( ? N( ^: `: N/ s0 G m" z1 |default=C:\avldr.xpe
8 V$ G; p2 Z$ r% A# O V[operating systems]: {& o/ C* k9 _! Y: {: ~
C:\avldr.xpe="Windows PE ByaoMaotao"
8 I- ]1 j! y1 g( `$ b9 n2 {: HC:\avldr.bin="MS-DOS 7.1 form USB-HDD"& K8 H7 T* S; H, Y4 q/ i: ?) f
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
) k6 w _2 C2 n完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。' m. m8 }$ e" g* B& z, Q6 }
# _: R" g. x2 z5 z* Q這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。$ V4 d- s) o( d
( S/ }6 F3 j( T }' b$ g8 E[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
( }* Q2 d U5 k7 B+ k: @/ g! @/ P. E) i4 W
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
) i$ S- Y& v a" g3 H& h
. @) Y+ V" a/ k' w* r7 O) r3、把下載到的老毛桃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環境下。
# t+ X; b! W3 E/ m5 @/ o+ X/ L8 P0 I R5 E+ V* d0 u$ j
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。3 j$ s8 R% ^2 o+ }6 i& W w# I
0 n& {1 t# K. \2 v
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環境下。
3 U) w$ y5 A: J+ X A
0 O/ D6 O9 ~4 _. T* ]" w7、把前面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環境下。
/ D" i2 a. W! B9 @4 K
1 A* X+ |6 s# b" |8 Q; ?& s. i至此DOS/WinPE雙啟動系統維護U盤製作成功。 {/ L# r$ f/ A5 _ O
{/ P* e& R$ x' L" {3 X
方案二:NT Loader + Grub4DOS4 \; B8 W, u q' ]' l# O! l
A Q l3 {, _2 e1 P因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。+ i0 w% Z. u( ?2 H* f$ U
6 N Q8 f. S* ^- i: Q9 f% F( [
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
- f! E4 m) q. Y* q0 k; H6 m2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。
; |& m) Z9 I2 J3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
! X/ E/ R! x- H+ M6 e2 \[boot loader]1 N: F4 R1 e% a4 D4 s
timeout=09 F: g6 \- e. r0 \
default=C:\grldr
: ^3 |4 R" R9 S[operating systems]0 Z/ Q8 _) ?. j2 }6 ~4 w; ]; A: B
C:\grldr="Boot Menu" : W5 d, j) Q; R8 l
Boot.ini菜單各個項目的含義請對照方案一的說明。, `2 X% j; j$ p' q
# _: A+ k& [9 G% o
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。" K& r# h- W4 O% j( X X
9 m& t" ^. P4 Q }2 G5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。1 Z9 H! J1 _! k) L/ j a- I
4 ^$ }" p6 K* W. W) O+ A6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。3 `9 |. P, G' D3 X1 b$ _! H
2 H. u1 S7 m! @: A. j% v7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:% k Z) w) i7 y
timeout 30
* p' @; T- ?+ ?+ l. U1 a" f1 S$ cdefault 0
5 ?% g; i- z1 r) A8 ^! j! ]+ l' o9 tsplashimage /boot/splash.gz
P1 O3 C3 g+ P( W, J2 Tforeground ffff00% t! ]& L7 F) g2 s3 R4 s# i
fontfile /boot/fonts.gz% U+ n, K. F+ u! P( l7 f
title 啟動 WindowsPE# z2 L# }2 D/ i1 T' x
find --set-root /grubidx.txt
, \8 x! @( m* S$ H9 X3 t& dchainloader /ldrxpe
4 l* Y* [, q$ g1 F8 Otitle 啟動 MS-DOS 7.1
4 n5 l6 ~/ K* z u: ~find --set-root /grubidx.txt& x7 {5 t( P& K6 c6 ]* U: m
map --mem /boot/dos.ima (fd0)2 Z' q* C1 n/ Z" C# U4 A: }
map --hook
# b" K9 g4 t" I# C3 g1 ~chainloader (fd0)+1/ p9 {$ F/ p3 K; @
rootnoverify (fd0)
7 ^8 j! q0 s) f- O# n. a做完這些,U盤就可以啟動了。
5 X5 x2 R+ p- v: r' ^8 z6 M9 w
8 T; T9 c1 u( r/ D) z$ M v, b菜單項目說明:
) _- U" H4 u) R
3 V2 u% P3 k# j: V6 G% g( k第一行設置等待30秒的等待時間;# o- o$ D2 G$ J4 v% j
; ~ r3 Q4 |. s. \$ {4 |2 I4 w( _第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;
; u2 ^" Y! L( z# T8 N: Z
/ D4 Z5 L& c0 q" Tsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;' r' `4 U% i+ Z$ t
7 ]/ T& r [6 v5 g! w: u
foreground項設置啟動菜單文字顏色為亮黃色;9 Q! i9 a [; F4 K- e
. v @! [& ~/ ]' i) O6 _fontfile項設置中文字體文件為/boot/fonts.gz
, g# ]9 r* a6 d$ B$ u
% s; I1 K; h* {9 q+ u- I5 n& ^, i下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
; r% D/ Z. ~. @! |/ X0 n! K6 Q1 _4 N8 i- M' g" V; t
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。8 m0 a& S; H' J- u
% l9 s- v+ T8 {/ o" J7 Uchainloader /ldrxpe就是啟動WinPE的XPE鏡像。
' V/ |# w7 t8 Z! w4 V! C( P
; Y, c/ K1 }) v2 u8 G5 {! dmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.) B6 z. [/ {/ o
( k9 s N X# a, x) t9 h1 a5 r
map --hook是讓裝入的軟盤鏡像立即加載生效。* K# {! b( J0 Z* I0 ^
$ I' n3 r. c! z- ^7 \rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
8 u0 K8 l+ }8 P* y: q6 ~0 x- y4 i# K* a1 M5 t
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。
/ I p0 ^% m, K) n- B, \; F' K" s8 Q$ _0 c! w# q
: [- _2 I% T8 X* g, _6 _! h$ C/ F
方案三:MS-DOS 7.1 + Grub4DOS
% D: S- C8 e8 m" a1 s- t( X g% _, D( G" `# c7 c+ P9 ]3 M
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。7 X: w* t9 ]' b. `
2 w; R1 K! P; u9 ~本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。
5 O* a3 ?9 G) a1 _
0 T, N# o! _( r- H* T% u1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。* L# |) P: X$ u$ v
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。! C9 R) w, l( p/ h0 [5 m( C
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
8 K% C7 R. C+ ]% p& h2 S/ M/ ^4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
. O7 Q: o; p( ?5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。% F( ]4 k) d' K: R! Z7 D, g, [: D' g1 n
6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
# C1 _) W- D1 }+ Otimeout 0' }: U8 R+ q# ]2 x
default 0
8 Z, F! S& t8 D8 P6 Pfontfile /fonts.gz
5 K/ u3 z9 \& }/ t# d, etitle 啟動 WindowsPE8 [7 n- I9 D1 l9 ^) i
find --set-root /grubidx.txt
& |4 ?: D1 j4 T: tchainloader /ldrxpe 7 l8 K, H9 h8 M: Z
在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
) K. D( g2 u7 I! j
3 z6 F, x* {5 i: ]/ o7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
0 I8 `, M6 f/ Y x3 }+ c+ p6 a$ r) y5 i
3 P! {& b- q: e6 }& O! Cgrub4 F. {6 @* ^" i3 e& Z- \
1 E0 B3 h# ~5 d# w2 J: T& m |
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
6 V- t: \" b4 N' l6 O+ t: |. a! j/ [5 W) {
Config.sys內容:
- O( ~9 W* v2 B* u) R[MENU]
. w2 [. x6 Z' B; c( ?, nMENUITEM=1,XMS without CD-ROM support' k4 c i- q6 C9 a5 B! c
MENUITEM=2,XMS with CD-ROM support
P3 S( w' l" }% h+ nMENUITEM=3,XMS and EMS! Y- \$ b& u8 ^' t5 S
MENUITEM=4,DOS real mode(no XMS,no EMS)
" w4 F/ E. Y! g+ bMENUITEM=5,Windows PE1 `# K1 ?, G7 F3 d- {5 u* _
MENUDEFAULT=5,30( n% g6 Z7 \$ s4 H7 M% h! a
[1]
8 {: O/ ]4 M7 A$ U! z+ mDEVICE=\HIMEM.SYS /TESTMEM:OFF% K3 `9 a6 Y, a4 M( R# b; S4 n& ~
DEVICE=\EMM386.EXE NOEMS
5 K8 ] l( d: }6 OINCLUDE=PUB
3 w: @( _; j' W9 q, K[2]
/ ?1 ^4 v/ d0 Z! Y1 x! bDEVICE=\HIMEM.SYS /TESTMEM:OFF! c* m/ V6 }. G# w! s& Q" i
DEVICE=\EMM386.EXE NOEMS; L: u% V$ [+ n
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
$ k6 e' }- T3 \, Q, MINCLUDE=PUB* b0 Q" @4 I* `) t
[3]& v y$ ~% R* f& \- i: P
DEVICE=\HIMEM.SYS /TESTMEM:OFF
2 P1 q+ g* S# |6 z7 d7 f b5 KDEVICE=\EMM386.EXE RAM8 ^* N! W3 M) @) A* P( Y q+ i
INCLUDE=PUB" z4 q9 K8 N- R
[PUB]" p$ d" N) R+ _( B, T, e+ c
DOS=HIGH,UMB5 y: h. l6 M; l* N9 f0 F+ {' z
FILES=30! |- u# _/ k' s6 d: v; l3 `
BUFFERS=206 D& u% Z% t) b* ^) D
STACKS=9,256
1 t/ ~8 O; f+ D% ^9 }LASTDRIVE=Z- I# n! j7 A6 s- r
[4]0 S$ r' G. T. c
FILES=107 i1 y0 h2 c! o
BUFFERS=10" K# W* e# X Z
LASTDRIVE=Z) B- h9 v& g: }/ q0 j: m3 r
[5]( z& T L3 I5 C; d# p1 m
Autoexec.bat內容: t+ p( B3 f' \0 R
@ECHO OFF
/ e5 i& X- n' B9 \1 U4 BPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM9 ?8 Q+ V: k2 u* C, S7 e
GOTO %CONFIG%+ ^. n5 P' d9 t5 {0 d# t2 P
:17 I: Z9 n; J( N
GOTO COMMON" c7 \/ t: h8 O% A
:24 I+ u; D; f$ ?) k! ^
LH \SHSUCDX.COM /D:SSCD001
, ?; i2 s( ?: O6 g+ LGOTO COMMON
( F T9 s# V4 m d9 u: |0 N:38 @4 [0 G/ t" Y, `4 F2 ~) d0 R
GOTO COMMON9 j4 z# @( Z+ a' j
:4
7 [/ U' X4 p; K! |GOTO END" ^% d1 j( L( a2 z7 \, G2 Y
:5
1 S& o6 c# |$ G/ Z2 _9 W9 r: rGRUB; Y6 ]& l$ Y( {+ S8 _: a
:COMMON& Q2 h) A% O7 C6 z4 |; `/ B- v
LH \SMARTDRV.EXE /X
- `3 r) P6 b( G) f, c# G@ECHO Install mouse driver?4 C# R3 w- _/ |+ |! F, u
\CHOICE /C:YN Yes,No /T:N,68 q, W) q4 X% H
IF ERRORLEVEL 2 GOTO END
" x8 i% q% W4 YLH \MOUSE.COM) x! }' z% s! ^9 S
:END " s, h" M+ c% A% I+ z3 z' H$ |
# W' M& v/ N5 N. \按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
' [; l$ R, ]& r! o8 {
( Q- r/ H; L$ Y# a s4 y感謝5free和david_ge的幫助!% V) ]1 l/ f! V5 l
* m; H5 w2 u& D+ B9 {5 Y" A7 i" @
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:0 L: q. D% ^! ?0 U4 _/ K: g
- @ d' k+ W2 {0 ^1 m' U
http://bbs.wuyou.com/viewthread.php?tid=94087
5 O+ ^* X7 u. A0 h' S" m7 ~http://maotao.u.winzheng.com/
& k. E9 ^6 ^3 n, w( t* C8 @' T3 I7 ^9 |3 I& b5 h
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。) D4 w* X, \: C' r, B9 D# c
* n v7 Y3 u1 {6 M6 w最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
5 L% D ?5 ~" R# O) D8 \0 \4 N, ^% n後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。7 P! f; {9 |% b* q: \% B2 e% l
2 O* H5 d7 p" Q% c9 r目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|