|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」
L$ `' ~. M7 o( g& r. |本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
# v. N2 e! A' [1 r5 W, j5 S7 B* I& J" b
: G) K( b1 m0 }& R沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
. ^! k$ B1 I( e+ j7 b$ B5 m5 D _/ T! k# e: _
前緣:
+ n3 u l( T1 B5 M3 k$ \, Q, F: v) X" P
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。1 {5 o: @$ ?" P4 u
( ~" `6 C1 ?) {3 x, N. A目標:
. \6 g2 H% }/ n* P0 l# r
' N6 v4 v5 `9 x對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
4 g/ S6 P1 n3 R; m! f. {3 F+ }6 B& R! Z
技術背景:; J. F/ `+ _+ R' O/ P5 H; `
. T% s4 I0 q) j/ W- r5 l其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。
/ H9 J3 w+ D7 e( A' a0 M7 n( E2 M; u3 o) x: V8 j
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
8 [$ J& Z; m( J. @" V& F* _; j- b/ j$ w
因此完成一個操作系統的啟動,1 h M3 W: R& c
需要兩個必須的步驟:1、MBR引導;2、OS引導。
- _( V ]1 t; P8 n" y* F. Z/ F8 ]' Y$ q, x. \& ]0 S
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。; t0 a, A, A* \# i8 P9 k6 a3 J. } O
' ] @; v6 s# }8 }/ f對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。
7 y% Y) u+ g" Y) x3 S5 Q G" d雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。' j8 ?1 c# h- c- n# ?" d% p, \8 ~
2 ]$ ?- D+ J' x7 oOS選擇:
1 r2 m, h6 R. r/ y, V7 W8 ~5 p- ~+ |& g) Q, o
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。
1 K2 t( A7 [" D1 a) r
: d7 c- W- {9 S8 E. U方案一:NT Loader + AVLDR + Avlgo
1 V. F9 ^; f5 g9 Q5 f% F0 | Q3 s! P8 r6 }; w) N# O& o' Q8 M
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。 w& {# }1 N# s- U
% q1 {$ q# s* Q4 v4 S) ^工具準備:' J! } `% b* F) m1 h' `
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。. N1 e& B& e. b- _; J; H S3 |
: M$ |2 p' ?5 A1 I9 C% `' q1 e數據準備:- P! `) A* T4 v
- F" i" x. k9 d) ^7 p" }' f$ A
1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。( e' G" M1 `/ `$ X
. N3 g- n- R z/ u( B( q
$ t5 _. h; o* o* V( G2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。/ f2 T5 h; N7 N5 r, H
, a$ v( ~! c/ S; i: e4 ~) f8 |) k, K3 o0 }/ {
7 T' P9 {; t4 g; d& h
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。; \) m7 ^7 l s& B2 K& U
$ {# d6 u& H& x, h2 `$ ]! |* ]
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。) T8 q: @+ z) v3 Z: k
0 Q% `* }* k, O& u# \
8 K8 x5 z& [* Y& m( S5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。% n( V. H8 C1 G
4 `" v/ y2 ?: ]% a" X
, ?$ R: Q; V( c( A2 l
% t2 k ?$ I( B+ H, t0 q$ i
開始組裝:% F5 B% g6 y3 ]0 E, x8 B
) \, @7 R; y0 E7 I3 x1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:) X7 u5 i+ U! o
[boot loader]9 f1 K" j) h3 X1 L8 W/ r
timeout=30# I! `; A5 a ^: V* \9 v c& ^
default=C:\avldr.xpe
! Y" L/ ~1 ^1 b* m2 {[operating systems]
: j( y: V- _9 {& a- d4 O' Q# ~C:\avldr.xpe="Windows PE ByaoMaotao"1 m3 c/ }5 S8 c1 Q
C:\avldr.bin="MS-DOS 7.1 form USB-HDD"/ {2 \7 C: P$ s- s3 O4 z
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
- ~# f: v+ @0 y+ _完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。) z" T5 K1 f6 Q7 h6 r# _" A
! v, N6 Z/ I2 v
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
+ ?2 @6 @- c! W" p5 z0 X6 `" b8 F3 v1 E. r4 t
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。7 e5 ]/ ?8 G% U7 O
: G7 [! D+ P+ h6 _8 f
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
; U3 m; e4 F2 o- J ^( ^" Y2 {0 ~2 ~1 q: E: A
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環境下。
5 \% T: Y% E; k0 o
; L; n; [; }5 V) Q0 D5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。. \; |$ _$ j6 L, s2 y: y
& v2 t, c5 _5 @- l, A6、把前面生成的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 `+ G- C! p! K7 C, q: r2 ?# ]) g3 B2 v* S' }
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環境下。* c3 I! g) ]. g5 Z
+ o' e# h5 ]& e+ j5 r+ K- y8 ~$ g8 b
至此DOS/WinPE雙啟動系統維護U盤製作成功。# [( }: S. W! a* v4 @8 K3 t8 g
6 Z' ^6 B4 K) N3 @6 |( B$ [方案二:NT Loader + Grub4DOS
8 _! P# C1 s% F9 O( c6 a$ v$ b) q! I" L3 X2 D+ _) s: Q( x
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
5 I" `9 l( A Z9 ]5 R& {5 Z5 J( y0 T& |; N1 {# P& U4 H t( c A
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
4 J+ Z6 V" k; \# M- {5 r2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。5 D# D4 T: j: _) r5 H
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:9 ^0 X# ~+ q. m5 F6 X
[boot loader]
! S& ~- q$ [& D0 M, z# u( E+ ttimeout=0
. y+ V: e7 p1 t' N% Q1 Idefault=C:\grldr: t0 i, }- d- x. Q, l" y5 w
[operating systems]. @* Q( S( u3 s: P: {2 E: S* ]
C:\grldr="Boot Menu"
( t$ T6 C6 Q" g! v! P3 i: RBoot.ini菜單各個項目的含義請對照方案一的說明。
5 y5 u. L* q8 r$ u2 q6 K) G% X0 \, e3 ~
4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
. t0 Y9 h& c& O6 v) c/ t6 W4 L4 G Y+ R& w# j: x( m ^! J$ c* D
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。- o4 T! s) B4 u
3 H1 ?/ Y1 E( E+ t) U- K
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
9 v$ D8 ~ {& B. e) a d: i& Z
3 N6 i3 _1 k, O9 w/ i7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:) W3 q; O2 [7 u. {8 y4 c; l+ ]/ T) F" j
timeout 30
. j2 L' C% W* U8 F: I9 Vdefault 0
. \$ Y' N/ x) n M9 I: \splashimage /boot/splash.gz
% ] m- T. u5 d$ Y# N5 Iforeground ffff00
( k8 S( d% p' G6 afontfile /boot/fonts.gz( n% y0 D0 ?7 U9 D8 c! ]$ t
title 啟動 WindowsPE
9 Z7 P. P/ \7 C( \find --set-root /grubidx.txt
$ d; o; I6 M# E0 v7 Hchainloader /ldrxpe
8 L1 t1 m; n2 ] {% m; p5 v/ k3 Utitle 啟動 MS-DOS 7.1
6 ]% y o5 y% j+ C$ | ^2 ufind --set-root /grubidx.txt
+ _% S: E" ~, t7 Umap --mem /boot/dos.ima (fd0)
, z2 H) z9 G* k: ]- Omap --hook# u" y' W! @" P) G- a, X& j4 f
chainloader (fd0)+1
9 J2 \! k9 g6 n2 ]rootnoverify (fd0) ' t" e7 `, c0 D g7 d
做完這些,U盤就可以啟動了。
" {- f. U! }* u0 t- _
! ~) ^8 o5 \; T5 j% P菜單項目說明:/ U* j h/ r9 W% I
" N: L3 K, x; | O
第一行設置等待30秒的等待時間;- t* E" O% x. k9 R
6 ]1 w9 v% V- F9 a* ^% j3 I
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;! F* v3 B" n& g2 K; H. O; r# k/ j
4 a# m; o& m8 osplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;* o9 x! m, k& i0 P9 B
' g5 N5 v& q; X' _0 uforeground項設置啟動菜單文字顏色為亮黃色;7 i2 l' w$ c9 m- d9 f% Z6 W
5 R- D5 Z! S; O9 h9 v; O
fontfile項設置中文字體文件為/boot/fonts.gz
/ U+ x; H& r( l5 G: n
! U) v/ e0 _, f, p: }: M5 W2 ~1 K下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;. D% o# F+ J* B0 K, H& O( b
2 F/ |, q6 z+ G4 c# U0 k! O: e! l5 _find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。
4 l) _& V' e$ E# D8 \2 R8 }+ z4 s7 ~6 a; j+ G2 j: }
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。5 [- U: ?& k' F7 F3 A
: N4 h$ d4 J1 W3 Tmap --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0. g% J5 Y6 Z- p# {
' v0 Z P. K0 t9 E4 w4 u
map --hook是讓裝入的軟盤鏡像立即加載生效。2 C8 q# w) e+ t; x4 w4 [
( t, x7 T- ?/ ~" E5 {" x3 W
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。
* r5 K. h0 S1 e D7 @2 j
% R/ F! h+ `- D8 `0 M. o* P本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。- c# U( r1 {% {% v5 n4 L6 f
, p2 Z+ R/ Y1 E+ B* c& }$ ]$ Z+ C( B0 p+ U
方案三:MS-DOS 7.1 + Grub4DOS
4 [: z7 J* N; a5 l8 M
* {5 n* ^) D; Y1 {% ]& ~9 T& V本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。- L3 ?: N: _+ q. J
( X' S- m. ^% a1 W! D0 J6 q J: Q" R2 c
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。+ E9 g# C* \, Q# a% w
8 T/ N _' Q! [: @' ?
1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。* n2 ?# w9 @& @
2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。2 y- N2 B) R' k2 ^, M- s, K( S, ^. V
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
7 K: o% J. r/ C% [4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。$ a3 ?7 g- q+ ?' X/ N6 f: A
5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
$ G8 o: G/ D! G& h1 b5 l6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
: j4 Q9 _7 p4 ~: @+ P. }timeout 0
+ |8 ?5 |# s, t6 z# G+ Kdefault 0
6 ?( I2 ?" f6 B4 D. K' [fontfile /fonts.gz
3 ?# v1 c2 u3 Rtitle 啟動 WindowsPE
" |) M* X; A) Z5 u$ B! H: Jfind --set-root /grubidx.txt1 ^0 c. ?1 t" s$ }% m' _
chainloader /ldrxpe
& [, w8 t5 z1 I' n在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。) |5 m1 C1 L' j A
; \; ~% R8 P/ F# q3 V# K. @/ n
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
- E0 [ |9 m8 D) ?# Q
% y0 R- z6 K Ugrub2 L1 S5 L# n; Q; Y; Y
( a" P: p$ ~( z* B8 n0 G
這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。; f. a2 }4 @0 P, |6 E& d
& v- R2 r$ |- B/ f. }/ c A4 o! |
Config.sys內容:" r* [0 }; E+ _5 @& |/ n# ?
[MENU] O& ^* R4 O6 v$ Y5 |% C
MENUITEM=1,XMS without CD-ROM support5 ]/ F0 L1 _1 e# a7 x& `+ u5 @! ^
MENUITEM=2,XMS with CD-ROM support1 V' U3 z. l1 d% S% c! @2 L
MENUITEM=3,XMS and EMS. m. [5 r0 `: c6 X/ t
MENUITEM=4,DOS real mode(no XMS,no EMS)
& u7 \6 W2 V$ tMENUITEM=5,Windows PE- d2 j' W4 m4 E
MENUDEFAULT=5,305 l- \% K L9 D- C. ~+ ^1 m
[1]
" N6 O/ y: W5 ]2 t' xDEVICE=\HIMEM.SYS /TESTMEM:OFF
$ u( x2 @4 V' o8 Y3 j% s4 W9 k) x; DDEVICE=\EMM386.EXE NOEMS
% d9 C' D. { F% t7 oINCLUDE=PUB
" S) g, g. t6 i: A[2] K v% ]) H, d) Y
DEVICE=\HIMEM.SYS /TESTMEM:OFF+ W, V* m9 k# P; k0 U' d8 g; b
DEVICE=\EMM386.EXE NOEMS- H+ `( Z$ p/ M. R V2 X, M
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD0015 ]$ p5 P( j, V6 ^& q4 Y. V& e
INCLUDE=PUB
' J# g$ }/ f" G4 g" `( ][3]8 D! k9 v% d1 d. t2 H
DEVICE=\HIMEM.SYS /TESTMEM:OFF3 W- S1 r9 n) K1 A4 D* g3 F
DEVICE=\EMM386.EXE RAM
9 d3 R+ n4 f9 G: T- {4 zINCLUDE=PUB
/ E& T( a* {0 @[PUB]
1 N+ F" d3 f2 k K: ^. c9 T2 WDOS=HIGH,UMB
6 _; B6 W4 {# U" ]9 c! J! mFILES=30
3 m0 p6 r% C8 F$ i; XBUFFERS=20
: B" K. }% k9 E& A* W3 zSTACKS=9,256
! }1 h( \, R- ^+ W: _9 kLASTDRIVE=Z
3 ?. q! Z) S' {# B+ r. Y" l5 n4 B[4]7 _9 n9 \$ x9 c/ q2 L3 z& M3 _
FILES=10* W& n) d, ` A% w
BUFFERS=10
9 ~+ G$ e' W0 |, Y' yLASTDRIVE=Z
8 h. E7 C, q* h+ O* n[5]3 a5 W% f9 C* _6 c- ]
Autoexec.bat內容:8 D$ H2 u; f* U8 ]; L
@ECHO OFF
1 Z/ Y0 y9 T0 U4 H) wPATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM- J$ Z. `) Z# n1 i7 F. V9 B7 G
GOTO %CONFIG%
1 r% o; w8 Q& C; m( g:1
' y* l" a2 m7 T6 ^$ cGOTO COMMON
# W8 i: T; |- s$ A$ ]! r& }: F:2
4 J0 ~: ?$ d8 F; m3 H% x, }* xLH \SHSUCDX.COM /D:SSCD001! y p3 l( l$ k; g
GOTO COMMON
1 v# |8 r2 @0 G( t3 r" \:3
1 _# ?' m' P0 [ C; p: dGOTO COMMON
* T7 U; M8 A. f; |8 l:4
9 ^! u: b- Y" h5 Z# KGOTO END% F- e) E" w6 q5 u3 c7 N3 Q
:5 ~% i( J% P. R/ c
GRUB6 e) c- A* o$ Q- R! \
:COMMON
K: P" |0 R7 u" b0 SLH \SMARTDRV.EXE /X/ r7 E+ |. O+ q1 a2 }
@ECHO Install mouse driver?
6 a7 ^0 ~4 c2 N6 _\CHOICE /C:YN Yes,No /T:N,64 _. u" s* B& F" p1 e) o1 x" V
IF ERRORLEVEL 2 GOTO END. h9 o' \! Z. s6 ~6 A3 U9 I: f
LH \MOUSE.COM
. ~9 S* J: u% F, m, O; B4 ^2 z:END
! m! t \ h1 e: Z7 l. j# {3 J. `2 x% B" A% U5 w% L
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
# j. a5 \0 N8 U3 C; U% _( L. ]/ J9 w, k, E6 L v6 G
感謝5free和david_ge的幫助!
8 E$ O' B- e2 w; u8 y. [% k* \1 I$ F% v5 P% b+ I8 |( B& S
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
2 }: l' g# e' d
# _0 g4 R% o+ g( I) J5 l, \8 j% Ehttp://bbs.wuyou.com/viewthread.php?tid=94087' S& t/ l: I2 w
http://maotao.u.winzheng.com/
2 f5 p; }( X f, d w5 ~4 _
9 h. k! E: l2 q附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。. z2 F2 P9 u7 [% r/ P" |
! a" f* O. b. q' K Q0 I5 N0 V
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
# O/ }3 e' l% C; p後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。* H$ Y5 g7 b) J% e* I
' T1 N+ t1 F8 i: b( }目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|