|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」1 w* o$ S4 ^' G* q. ^
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
) d2 Z5 C- G, E2 a; K) m
- q. ?) x& v X X& d/ @$ K/ G$ e8 N2 q2 c4 ]; K& |8 B
沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。
' i5 U8 t$ n- A r3 n. J
?! \+ D8 C: g前緣:
) N. \( \8 P2 v' u% _1 P: l6 N7 V& ?5 m4 J
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。
% D1 h+ O. t- M' q/ B+ i! R* g
) A4 @ j, q* l. f2 D: [" Y+ D目標:
6 b) R2 r' r2 X ?" i- ]6 R. @# h5 L6 [! c; V
對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
8 h z2 M, l Y0 E3 E6 \1 l0 g/ n5 S; {9 _
技術背景:. ]) N, _' @2 Y) B; T6 c" E
9 I9 i _- j: u' H h8 d) H其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。+ ^) I5 P+ A. X
% y, M2 W3 o7 z6 Z) g. u首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。
( N U) k3 {" @! N* P& |0 m! l9 }! ]. p+ G2 r; X
因此完成一個操作系統的啟動,. I6 i( X; q. @: i q i8 e6 ~
需要兩個必須的步驟:1、MBR引導;2、OS引導。3 E& T% E# N- G! ]3 `) K
$ d$ ~2 I+ \1 j! y5 g0 ?6 I" w基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。8 l j6 o# [. @
Z: A$ m: E; k5 ?1 b
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。# p; O* o1 J$ t- x5 Z
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。
, I9 l# w* {' j& q0 G5 T1 Q! q
8 U1 A7 U O9 N/ i3 j$ m! @OS選擇:
6 ^6 E( _( R1 G* Q5 G1 M; a; t; l, j0 F4 o2 H
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。) t1 K# y [0 ^- N
! a# L1 p. h! J0 H方案一:NT Loader + AVLDR + Avlgo0 g4 M# S& L/ i: t5 A( k& V
' D$ [9 Z% j% x% V
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。6 |9 u0 M% o+ Q/ ^7 |" \
9 z. Y8 `' j* \* K: x {
工具準備:6 f& J5 t8 [* ^
PeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
3 Q, q. S# ]4 j
3 F o' W$ }; [- ]% F. E/ \0 E數據準備: e% d8 d: E& a7 K2 R. V c
2 d: M' t, D9 E( l0 p1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
, A/ a- S: r8 W* V* D1 j
8 b2 @) t. a# g$ g) M9 J3 U
$ x" Y7 z. F5 k' X7 G/ I2 ~: z2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。
4 Y, R* W- P h1 y/ U
6 m% G$ X w/ }+ P0 o* C" m7 k- r c3 q0 k, B
\* o: Y |" F3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。- V3 ?% ]* E9 O) u
3 U' T. Q$ w% Q; u
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。! _& E. L2 x+ M5 v0 i' {* p
. p- P8 S9 u! \$ y2 a+ K
6 c4 f/ N( d# l( y$ y; m8 j5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。' m, r; Y. Z, x
; V) V/ t4 Q# B) i6 E& F& {7 k% |
$ Y1 u8 I4 p X g; ?
) t. L6 D* O5 ~- {1 b `開始組裝:
+ t" |7 e, H+ w% ?9 h0 B
/ _: G, E: S/ q. L0 m0 B; F1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:
0 ^6 G+ O7 D1 C[boot loader], [8 K! V. ~- L7 q$ T
timeout=301 O3 P5 }2 X0 ]5 i4 f6 d$ V
default=C:\avldr.xpe
% P* s7 k/ d6 P& T) Q[operating systems]; |9 b: R s# H# X* s
C:\avldr.xpe="Windows PE ByaoMaotao"
( [3 n. P6 W; EC:\avldr.bin="MS-DOS 7.1 form USB-HDD"2 J7 {0 \( V+ B# E) _
C:\avldr.dos="MS-DOS 7.1 from USB-FDD"
$ V% S) X5 W a完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。 K4 N' a7 v0 A8 c( }1 M: {: g2 P3 l
2 ~. f# S& V* M7 r: L
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。' O. P/ L: \, r+ _0 j
& g: e9 \# I' x) @[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。
! Y1 O7 ^& O. v; d7 J' y( J$ _6 K6 F; I) a5 M5 B/ b
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
% Q9 n! y1 I2 F) z7 G% @! ~& X6 n& A6 i7 |
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環境下。# k- t9 z4 w: H& \: @8 |7 |
0 w. s* [7 L5 F3 H
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。7 V8 W6 D8 C t# O
9 z' Q' B6 Y( L$ k6、把前面生成的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環境下。
* t9 \/ K9 Z% O3 x1 ]$ N% v1 o
6 f% S/ I! n' {% }. b8 T' k7、把前面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環境下。
* l1 a4 X7 P/ @3 N. y
. E$ J7 s+ a) Q) V: ]; L至此DOS/WinPE雙啟動系統維護U盤製作成功。
, I8 O+ T! {6 i5 r3 n
# N7 t/ |" a& N方案二:NT Loader + Grub4DOS
; L$ z/ X1 X3 P' g j4 V% j7 o1 d6 X& S; d) x
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
: a$ `5 q. q& l1 ]$ ?# p" T/ W" j9 X" K% e# l3 B
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。
x. Z( s* ~# C9 `2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。$ W9 J( \& Z* ~ \# }
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:! o" @, u0 a1 \! C
[boot loader]- A& ^2 {5 c/ y: u% \
timeout=0
* q a9 u8 d! i3 i. Rdefault=C:\grldr* B0 K$ J. C. R2 ]
[operating systems]
& A/ E" O) {# H& u$ i& SC:\grldr="Boot Menu"
9 e* r7 V* j! \ ]! NBoot.ini菜單各個項目的含義請對照方案一的說明。1 [# |8 B% w: Q
1 A7 ]9 Q; l/ d( |4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。
# i; B% s* H5 R4 x2 Y* _) M7 L! C% ]) b( b! X% a
5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。
- S1 C% H1 U- g; N+ j
4 |1 S! D6 J( X" n9 W4 X( G, Q6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
7 s: W) O) N8 U! U
6 y! Z* m& N$ z7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
! t8 I9 b8 ^( Y: f9 I+ utimeout 30
+ u9 a2 h. K, [5 j. b: Adefault 0
0 w3 e# X, P0 n7 ~splashimage /boot/splash.gz" A& Q& K4 C/ a6 p8 `* O4 ?+ I
foreground ffff00# ]6 B) }7 T' M
fontfile /boot/fonts.gz. F- s1 ]( M6 K- e" v3 o* b
title 啟動 WindowsPE6 [7 x, F- z( \8 ^5 ?
find --set-root /grubidx.txt
1 D# Q5 I$ B+ bchainloader /ldrxpe& q: ~/ G {, x8 x5 @
title 啟動 MS-DOS 7.1: y9 N: u5 r- w2 z5 L9 i% w
find --set-root /grubidx.txt' I& h1 L7 ~9 x2 x# W
map --mem /boot/dos.ima (fd0) ?% r h7 q* Y. ~) }
map --hook
9 h$ v4 Q2 F. G8 p+ l1 t7 Wchainloader (fd0)+1 ?' V8 b/ H5 `+ V
rootnoverify (fd0) 7 p$ b8 i8 w4 ?; P0 D1 X: z7 ^
做完這些,U盤就可以啟動了。
: `9 `" {: z5 g @ H% ?# ]/ V/ J/ N5 f5 y
菜單項目說明:% f8 }! H* D0 p& D6 j. I
5 A. I8 Y8 v V- }
第一行設置等待30秒的等待時間;
" j- K4 v. Q0 @2 J# ]" {: x y- l
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;3 J1 ]3 ^4 L9 f* ?: i
. c8 R* N- D& I8 H' [
splashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;
" O4 w1 Z) K3 G0 l
, n' d) \9 E7 \8 x( q9 jforeground項設置啟動菜單文字顏色為亮黃色;
1 t+ c; \0 q4 ?7 R/ B% _& Z: @' [/ U M3 w
fontfile項設置中文字體文件為/boot/fonts.gz
) i H: | ^8 _5 a( J- F6 ~; I# e O
下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
; Y7 R( ^- G/ L$ A' y8 f& C0 o S2 o5 O) @7 i" n6 O
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。7 w$ A1 Z$ _5 T# h2 F& ^/ u
' t$ ]1 x' y$ B6 o: D
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。7 Q' {4 B+ I# ~1 C
0 K# S$ K) i7 D9 S; c; C
map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.
7 ~8 t ^( ^" N# E' \0 S9 a
) O' e' N5 r9 T" i% V' G9 t+ Kmap --hook是讓裝入的軟盤鏡像立即加載生效。! C) }* S; w m
G) e, B1 G: u: o; d' I [ d
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。8 [( A5 {: B' M( n) S
( p% q7 `& C9 G+ F* s |+ S' S
本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。# d3 ~) v$ H8 Z! v' z2 Z
' n+ ^3 _) ?+ D, x% i% }7 D& O! u5 q2 d( y. [: L; C2 o
方案三:MS-DOS 7.1 + Grub4DOS5 }6 A' Y% \$ G% Y
9 V/ p g1 ?* @ J本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。+ W( I& W5 v8 W* f1 X: A. t5 Y' R6 V
4 p! ^2 j/ `) Y2 B+ f% S5 L
本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。7 L, V8 {. O5 G: O) f' ]# m( t
" W) ]; B1 n( c$ W( v" z. Y) D1 ~1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
0 `2 H+ Q A9 O7 t- {6 a2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。. }3 Q; K5 f0 x! I+ s8 k V/ c
3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。/ g# j: T% @3 t& |; X
4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
8 l. m5 c+ \. |! `7 E+ M5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
7 K# Z1 L. U% i% W6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:
& E$ K: R* x9 n9 o0 xtimeout 0
: K" W) d7 V' i5 m* rdefault 0
& {* K# @/ E' O" a2 [6 rfontfile /fonts.gz
0 ~/ f/ @, g7 \+ o; B! Ztitle 啟動 WindowsPE
2 O8 H* h! W& @# m$ _* `find --set-root /grubidx.txt4 D/ \) b; {" y
chainloader /ldrxpe
. ^$ I7 z" `" o/ I在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。
) ^7 K2 v9 B5 B; c
/ z1 i2 Y7 B7 f4 g2 t6 k. ~+ }7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:
; T) r' B, [" n; c% O# G3 d' P
, x0 H/ K! w" M/ |5 h& h7 G6 Rgrub8 a/ n) G2 [* y1 ?, B; g4 N
: i) r& I* N) U8 p) e+ K/ ?這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。5 O* @( r8 w& @! L/ j P7 l$ d+ n
* ^5 {7 i# F' vConfig.sys內容:6 F8 n) ^0 d6 m/ Z2 `% N
[MENU]! S7 ?* t+ T: I# o0 {0 } M
MENUITEM=1,XMS without CD-ROM support- h# z4 P! N' i3 B/ T
MENUITEM=2,XMS with CD-ROM support4 |. e4 p: _( z& ~# F2 ^+ G
MENUITEM=3,XMS and EMS# i! F& {5 z* k
MENUITEM=4,DOS real mode(no XMS,no EMS)2 ~! m {0 f7 \+ f6 x n( G6 s4 K
MENUITEM=5,Windows PE
Z8 d- T# B3 `& u# FMENUDEFAULT=5,30
7 y& |7 W& l0 J# x% F. S[1]; e) H+ R, Z; r: a6 Z
DEVICE=\HIMEM.SYS /TESTMEM:OFF
: m, |1 \) o% r9 g& KDEVICE=\EMM386.EXE NOEMS& [3 s. J4 C3 X8 U! s
INCLUDE=PUB7 o: P, s0 w8 U2 Z3 O( w3 i
[2]7 T4 t0 b8 j+ h- k: J; M. u
DEVICE=\HIMEM.SYS /TESTMEM:OFF7 J( r7 a2 t! D# d5 R5 `4 i
DEVICE=\EMM386.EXE NOEMS3 r% j- W6 h. j/ ^
DEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001. m3 X1 L3 s# t4 c7 R- N
INCLUDE=PUB- j1 z. b( ]+ e& F
[3]( u+ i+ u u9 i, ]9 I8 S
DEVICE=\HIMEM.SYS /TESTMEM:OFF" ?+ |, V* h- f6 s* [; P
DEVICE=\EMM386.EXE RAM
7 j: O- ^2 ]4 P) `INCLUDE=PUB
+ z. Z9 ~6 r2 C: w% \[PUB]
3 P* }+ Z! ]: }) C' oDOS=HIGH,UMB' T1 u8 ] ^% L9 [) l
FILES=304 N* y& ^. }4 I, X! Y- ^
BUFFERS=20
) i2 L! K6 g3 a: J' N' d1 kSTACKS=9,256- I4 S/ G& X1 ?/ ?% y. N2 q: U
LASTDRIVE=Z
; O7 O) Y6 B; e[4]' [5 Y X* N+ T3 F
FILES=10; J F3 {1 q# a- G6 T1 M% d! Z5 p: ^
BUFFERS=10+ J6 B8 ]1 ]/ Q: E H5 N
LASTDRIVE=Z- m4 `+ y- J" Q% I4 {* T6 q: J; f6 |
[5]4 o- k) Y. i7 a+ y$ J- G. ^/ j
Autoexec.bat內容:+ [! P! h4 I9 k& @; u% n
@ECHO OFF6 N I. S. N3 J: U9 _% g# h) s! s2 v
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM
: q( b- f8 k; FGOTO %CONFIG%
" H" E7 N3 n. Y" `8 y2 M:1
4 A: S! k# \! C$ i- T; [GOTO COMMON
. m/ A- v Y, Q0 Q" e' t$ o/ h:2
0 m* w6 e9 f s' h# s2 QLH \SHSUCDX.COM /D:SSCD001* q# A5 _" |$ ]; R" i
GOTO COMMON" E* q6 Q9 m+ I* O/ L
:3
2 \' G) a. l/ |% c0 U u5 hGOTO COMMON
1 w) i5 w- \" s8 |" Q, g:4' m( e s" m7 K' H' _: g& I. T
GOTO END# R+ q6 `. I+ M% Q
:5
/ ~& P$ E ]6 h# I1 u; |9 ?( EGRUB
/ m- A5 T, A2 ~! k:COMMON- E9 g k; [1 Q. c \
LH \SMARTDRV.EXE /X6 P8 g/ I: i/ X( i3 c
@ECHO Install mouse driver?# B( g6 M* m W+ I9 E6 B
\CHOICE /C:YN Yes,No /T:N,6
2 V, L* U3 l% nIF ERRORLEVEL 2 GOTO END
# @4 ^! l2 O; z2 F! \5 }LH \MOUSE.COM9 A) o r) R7 H8 y
:END , B6 d% Q5 A6 V+ A0 b# Z9 Q9 N
* _: |4 h# ~8 A. n4 z1 Z按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
2 m+ d+ H1 F3 R9 ^" I
! h. R2 U/ K6 j9 E- {" B感謝5free和david_ge的幫助!
1 b9 c" S$ f8 k4 Z9 A1 F% n1 R R7 O0 P; I6 E' M
本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:
# x: B5 ~7 J3 j
) h+ j4 y. W6 f: xhttp://bbs.wuyou.com/viewthread.php?tid=94087& t) y+ v2 r6 y
http://maotao.u.winzheng.com/
3 k; c, m* O N% V* b. k( J3 r. ]9 ]" E
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
* @0 R$ y9 g2 ?9 J; @' |: U7 D7 R2 y9 X8 j
最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
" B8 z4 h5 @2 K4 ?8 J. V後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。
" N* o) }! y: J K3 s/ b
/ ~. |/ p' I/ ?5 A4 k/ ^, @! f目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|