|
|
轉載請註明出自「 Zuluck!- 運氣論壇!」( ~8 l) R% q; z6 L6 c/ D. U/ ^
本文原址:http://bbs.zuluck.com/thread-1902-1-1.html
# y. }# e" x8 i' [; z8 \
9 o1 T* e/ U, M- a6 L
/ D6 C( A4 G/ I沒想到製作方法發佈得到如此廣泛的關注,看來大家都跟我一樣希望製作一個通用性比較好的系統維護工具。經過這幾天各位網友的測試反饋,發現NT Loader + Avlgo的方式兼容性不太理想。於是我又換別的啟動方式試驗。現將試驗成功的另外兩種方法也一併發佈,大家共同試驗、探討。謹以此文拋磚引玉,希望在眾人的研究之下,最終能找到一個兼容性比較好的解決方案。* p2 Y8 |# n7 P
. e3 {1 S1 P' j前緣:
r% |) R0 H1 r% h* U9 v. C& {# c" n( }+ B9 S
很多年以前,那時候軟驅還是電腦的必配,維護電腦引導系統也用軟盤,我那時候就做了N片啟動軟盤。後來隨著軟盤淡出市場,系統維護盤也改用光盤了,例如著名的深山紅葉系統維護工具盤,就為我的工作提供了有力的幫助。不過光盤還是存在容易磨花,體積較大等缺點。現在的電腦基本上都支持USB設備啟動,U盤可以做成小巧而容易攜帶的系統維護盤;可重寫的存儲媒體也為更新提供了方便,再也不用為了升級刻錄一堆光盤了。 I; R8 v. r) Z: s F' n' C! k: e; F
2 e3 ]6 N1 a) p% j# _目標:
+ }1 i4 m, c4 M% B
+ u6 W: z7 z8 x8 R對於系統維護來說,WindowsPE不可卻少的利器;除此外,有一些問題還是需要啟動到DOS環境來解決。所以我的目標就是製作一個DOS/WinPE 雙啟動的系統維護U盤。下次再遇到某電腦系統崩潰的話,從衣袋裡面摸出一精緻的U盤,啟動電腦之後,把問題解決於彈指間。何其瀟灑也!
1 }; Z- P M! v- Y( t- H/ p4 @4 i( a7 G( _2 T: ?6 N
技術背景:
! y7 X# ?# }% i$ u( F3 s
* O" `1 ~* y' O6 ~$ I* i w其實,U盤啟動電腦,主要是各種引導工具的合理靈活運用,所有的操作和調試,也都是圍繞引導工具的安裝和配置進行的。我們知道,作為操作系統的主要載體,磁盤一直是最重要的存儲媒質。因此基本上所有的OS引導的模式都大致相同,都是由磁盤來裝入的。# x+ [2 ~, T& e% G% ]. C; J: A
! q/ @1 n T0 B) r! n
首先,需要在OS所在磁盤的MBR(主引導記錄)扇區寫入特定的引導代碼,電腦啟動後會按照BIOS裡面設置的啟動順序輪詢對應磁盤的MBR區,如果找到有效的MBR記錄,就按照MBR記錄的指針去裝入OS引導文件,如果OS引導文件正常,就加載對應的操作系統。' @* _- k+ s. N, f) V7 }0 \
' s& K2 I$ A+ T+ s
因此完成一個操作系統的啟動,2 `( g9 v7 c: r; q8 z
需要兩個必須的步驟:1、MBR引導;2、OS引導。
- Q" |4 R) j3 R% I; f( F5 Z+ p) [3 N& N
基於上述基本原理,各種操作系統都有自帶的引導器,例如WindowsNT以上系統的NT Loader(NTLDR)、Linux的Lilo、各版本的Grub引導器等等,當然還有一些第三方的多系統引導工具如System Commander等等。
4 }1 l9 A" L* |5 @; e4 j; q, G- ]" k
對於我們目前的這個應用,目的是能夠在U盤上實現DOS/WinPE雙啟動,並且具有相對比較好的兼容性。要達到這個目的,就有一些技術要求。首先,方案要能夠適應U盤移動存儲這種盤符變動的情況;其次,要實現雙啟動,一般都會用到虛擬盤鏡像,也就是引導器需要支持RAMDisk加載各種常見磁盤鏡像啟動的方式。8 i* `2 j) P/ {
雖然U盤具有小巧輕量並且可以反覆擦寫等諸多優點,但如果要做成啟動盤,還存在一些需要解決的問題。最大的問題是:USB啟動並沒有統一的行業規範。主板製造商不同、BIOS不同,USB引導方式也有差異。作為移動存儲設備,主板對U盤的識別不同,會使盤符變化。這些直接導致U盤啟動的通用性和兼容性不理想,表現就是在有些電腦上無法引導。這是需要重點解決的問題。4 M, _( C8 T. }8 ?5 p
/ p9 [9 u0 j$ I; O! W4 f5 Q$ ROS選擇:
% T: y7 X* N5 b; a6 n! s! Z/ \/ C; e: r7 d4 k2 h
DOS系統選用MS-DOS 7.1;WinPE選用無憂論壇老毛桃的「外置網絡、多媒體組件的老九 WinPE 老毛桃最終修改版」。6 o# Q" }2 u) H3 `
; K1 o. I, ~9 [- O0 V% A方案一:NT Loader + AVLDR + Avlgo
9 v) t% ?% o: M: V& _/ ^) t8 s f3 ^& T
MBR用NT Loader引導,在NTLDR引導菜單中設置選項:用AVLDR引導WinPE;而用Avlgo引導DOS;由於Avlgo不支持選單方式多重啟動,為了解決不同主板識別U盤的盤符不同的問題,對Avlgo引導配置文件稍作修改,以適應盤符變化的啟動需求。
6 g( w2 C {" e0 f$ ~" c6 ]# I
9 z& |( m2 ]3 a% m' z" U- Q工具準備:
' n# Y+ g) S2 a1 L) m" pPeToUsb——用來把U盤格式化成NT引導模式;WinImage——用於製作DOS啟動軟盤鏡像;Avlgomgr——用於生成Avlgo引導文件;UltraEdit——用於編輯修改Avlgo的引導文件。
9 c0 E, k: F# _; U6 R
?2 T' U! W/ X數據準備:
8 H0 \8 d& j9 r
- |. ]& s ], B5 r( ]* ?1、PeToUSB是一款免費軟件,專門用來把U盤引導區格式化成NTLDR引導代碼。啟動PeToUSB,從「Destination Driver」欄選擇目標U盤,點擊下面的「Start」按鈕,它詢問「Continue」是否繼續,點擊「是」,彈出一個警告窗口,提示目標盤的所有數據都將會丟失,是否繼續?還是選擇「是」,然後片刻就完成格式化。
1 X7 G$ l/ O& c, u6 c2 y+ y2 K; ?! Y) b! D- f" b5 O5 m6 |
+ d, Z& L4 K) J/ v6 K$ i; M
2、用WinImage製作一個2.88M的啟動軟盤鏡像,將MS-DOS 7.1裝入鏡像,並把常用的DOS工具也放到鏡像裡面。啟動WinImage後,點擊最左邊的按鈕新建一個鏡像,這裡選擇標準格式2.88MB,為的是盡量能多存放一些工具。然後向這個鏡像中添加文件,把事先準備好的MS-DOS系統文件從資源管理器裡面拖拽到WinImage窗口中。其它DOS工具也這樣添加進來。文件添加完畢之後,點擊「映像」菜單——「引導扇區屬性」,選擇「Windows 95/98」並確定,這一步很重要,漏做這一步的話,這個軟盤鏡像就不能引導電腦了。最後保存成ima格式的鏡像文件DOS.ima。! {, F+ A4 }8 E/ `3 |! ]
9 u3 s; c, }) k* Y7 n) U D+ c$ H% J7 b6 ]1 w7 f
/ `$ h8 N6 I+ ]! E; t$ D
3、先備份好C盤的Boot.ini文件,注意默認狀態看不到這個系統、隱藏屬性的文件,需要到資源管理器裡面「工具」菜單「文件夾選項」當中修改查看方式,取消「隱藏受保護的操作系統文件」復選框,並切換為顯示所有文件。啟動Avlgomgr,在「虛擬磁盤完整路徑」瀏覽找到剛才用WinImage製作的鏡像文件,然後點擊「裝配」按鈕,Avlgomgr自動修改Boot.ini文件,並在目標盤(本例為C盤)生成我們需要的Avldr.bin和 Avlgo.sys兩個關鍵文件,把這兩個文件拷貝到某處備用。完成以後恢復原C盤的Boot.ini文件。7 A% R* ]4 g7 ?: Y4 z) Q8 b1 v
& L* X n) R0 A# |& b0 f
4、啟動UltraEdit,先打開Avldr.bin,在編輯屏右邊的ASCⅡ碼區域可以找到「AVLGO.SYS」的字符串,把它改成「AVDOS.SYS」,文件另存為Avldr.dos。' S; H7 R6 [3 V* z, y' W1 h
( i1 `% F8 r/ X2 n2 ]- c
1 F: i, t8 o. K1 U* i) D5、然後打開Avlgo.sys,在右邊ASCⅡ碼區域找「(hd0,0)/DOS.IMA」字符串,把它修改成「(fd0)/DOS.IMA」。修改的時候要注意,由於修改後的字符串比修改前的短,為保證文件長度不變,剩下的部分要切換到左邊16進制碼區域,用「00」填充,這樣才能保證文件長度不變。修改完後另存為Avdos.sys。, G2 w1 k( ], M+ r& Y* C5 p( [: R, b
) k ?! H. s; ?1 q1 s; f& m
5 V$ x3 `$ `$ h# U. V; R: c) ]
1 ]4 ?' T; N: e4 U* Z# N開始組裝:' ] o& D" j4 _3 q0 C; c) G
* e' a* M2 Q: S2 {6 ~1、首先,在U盤的根目錄用記事本創建一個Boot.ini文件,內容如下:8 ], U9 u1 [! D0 x
[boot loader]" L- A9 @% L k1 Z
timeout=30
; s5 L& H% j0 T$ `# G7 e0 \default=C:\avldr.xpe
$ N9 ?8 \$ A$ P8 s; L, ^1 Z[operating systems]
B' h( t* h% _ rC:\avldr.xpe="Windows PE ByaoMaotao"
! S1 Z0 s. i; iC:\avldr.bin="MS-DOS 7.1 form USB-HDD"4 R" F2 ^& w# U# _
C:\avldr.dos="MS-DOS 7.1 from USB-FDD" 3 Z. @' D9 A" h# B! ^
完成以後把這個文件的屬性修改成 只讀/系統/隱藏(可以用DOS命令 attrib +r +s +h boot.ini 修改文件屬性)。5 H! ^: g, K/ }
! ?: u; H" d- e0 B% C5 \3 ` Y$ q
這是NT Loader的菜單配置文件,timeout參數設置的是菜單等待時間,如果在設定的時間(本例為30秒)用戶沒有進行選擇,就自動加載default項默認的C:\avldr.xpe,啟動WinPE。
& X2 L4 B& T9 Y5 K" C( L& C z+ x5 f1 C8 ?1 Q
[operating systems]小節是菜單中出現的引導選項,第一個就是前面default設置的老毛桃WinPE,雙引號裡面的是註釋行,會顯示在引導菜單裡面。下面兩行分別是為主板識別U盤為USB-HDD和主板識別U盤為USB-FDD兩種模式對應的引導項。& l1 a& j5 F2 P C
2 ?' v3 Y2 ~* t5 Q. l0 e8 v
2、把硬盤系統的NTLDR和NTDETECT.COM兩個文件拷貝到U盤根目錄,這是NT Loader引導器的必須文件。
( b( A: j+ o; V* U) A0 F) h2 @8 R8 P& |0 o& U- 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環境下。( h0 |+ X; H! Y/ h% v) U5 ?! ^7 Y
, L5 F* E! o4 m# {, [4 [/ P
5、把軟盤鏡像文件DOS.ima拷貝到U盤根目錄。
" H; T2 {0 b2 y4 K- N+ j8 l2 `
& N9 U1 y9 V; ?3 e {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環境下。0 x4 G( \6 h+ g! ~. Z" U* z7 {3 l
. V7 e' z& y1 ]9 Q$ c
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環境下。
5 c" u4 |1 b+ k' \
5 J( V1 i* J# Z, `8 g8 S' R至此DOS/WinPE雙啟動系統維護U盤製作成功。
/ B, P/ v( _# f0 T
8 e: [4 i; g! B5 Q. e/ s7 V6 L! |方案二:NT Loader + Grub4DOS
. ~. Z3 S: t' Q* {0 M f* Q# F1 j1 B0 W* t$ |% Y7 v+ G
因為Avlgo引導器默認是不支持多重配置選單的,所以前面我使用了特殊的方式編輯處理Avlgo的引導配置文件,以期解決U盤啟動盤符變動引發的問題。從網友的反饋看,這種方式引導DOS啟動軟盤鏡像,失敗率還是比較高。基本上出問題的情況都是NT Loader引導正常,但是到Avlgo的環節出錯。因此這套方案,依然保留NT Loader作為MBR引導器,用Grub4DOS來引導OS。
/ g# ?3 y9 G( b U8 i; l- q, g. W& c- Z: m6 J5 H' R- T
1、給U盤寫入NTLDR的MBR,此項工作可以用PeToUSE來完成,也可以用其它方式達成目標。具體操作見方案一。6 C! f& h6 o4 ~6 n7 |. R8 ?
2、把NT Loader所需的文件NTLDR和NTDETECT.COM拷貝到U盤根目錄。' L+ c% {) B3 Y# L/ u+ |" G5 v) p
3、編輯NT Loader啟動菜單Boot.ini。用任何文本編輯器創建一個Boot.ini文件,內容如下:
% w, v3 V( g$ v[boot loader]$ `* C. u1 {! S
timeout=0# v2 s$ D- u& p$ J4 L
default=C:\grldr
* P6 n6 D+ c/ K1 ][operating systems]" p% Q. b8 `8 b* O \3 ~
C:\grldr="Boot Menu" ! a5 j, Q7 }. N5 F t, ^% t0 D# k& t
Boot.ini菜單各個項目的含義請對照方案一的說明。
6 B# o) U+ _( W/ P" r
3 {( [5 S& o& S2 X+ n4、拷貝Grub4DOS文件,把Grub4DOS裡面的grldr拷貝到U盤根目錄;在U盤根目錄創建一個Boot文件夾,把Grub4DOS的中文字體文件Fonts.tz和菜單背景圖片文件Splash.gz拷貝到這個文件夾下。在U盤根目錄創建一個grubidx.txt文件,內容無所謂。1 j0 i% ~( F% {6 c1 W Q& A
. Q3 R2 o: A5 D Y: i3 h5、把DOS軟盤鏡像文件dos.ima拷貝到U盤的Boot文件夾下。! \5 p! |8 h# k3 A/ @1 a
2 d4 j' I- B5 R/ D
6、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
! v; U( A% F1 v8 w9 I2 j: M6 j
8 `' V$ F# A; k" w }8 p4 l1 B8 u7、創建Grub引導菜單文件,用任何純文本編輯器在U盤根目錄創建一個Menu.lst文件,內容為:
5 N% K7 A; |. d4 f' L, X, L! Ptimeout 308 w& S7 n1 d5 C- m" H3 K: C
default 0: ^0 O, k1 g& S- O
splashimage /boot/splash.gz3 S& [9 w2 K7 T6 x: O
foreground ffff00
( Z2 _4 k2 B, H ~- _+ c4 [8 efontfile /boot/fonts.gz% S! y) d b9 y/ P
title 啟動 WindowsPE4 Z; j( M+ @/ b2 M w7 r
find --set-root /grubidx.txt1 N/ a; H2 j: l
chainloader /ldrxpe% n8 V, C: Z( b
title 啟動 MS-DOS 7.12 F$ U, O; _/ c' `6 u
find --set-root /grubidx.txt
5 c/ w( T- Y, [ d6 f; }" xmap --mem /boot/dos.ima (fd0)
8 \6 @! v7 c+ s- Hmap --hook
* |% F0 }: W6 d2 l& x6 `chainloader (fd0)+14 `: ~: L$ h. a/ ] n- x
rootnoverify (fd0)
3 c1 E) V$ C2 c( ?, H& B- |* V3 v U做完這些,U盤就可以啟動了。, k8 m7 z! M, v2 Z( g
; z1 P5 u$ _2 h2 Y; C+ b! o! K菜單項目說明:
; E/ l- E2 _+ z: M
' @6 A0 A, H1 a: Z- s第一行設置等待30秒的等待時間;
& V4 m% p) T& o! { C7 f$ O i g" m6 Q9 ?9 E3 W3 b
第二行設置如果30秒用戶沒有選擇,就默認啟動第一個引導項目「啟動 WindowsPE」;/ U4 m$ \* }) w& n
& C5 H& J6 [: ^% ^: z4 y+ s0 Qsplashimage項目設置Grub4DOS啟動菜單的背景圖片,圖片路徑為/boot/splash.gz;& f3 }4 r, n& e
) g5 P0 I, T3 r* c' l7 g- Zforeground項設置啟動菜單文字顏色為亮黃色;
3 d: F& f: c* d, B8 E2 N$ z. C) H. f* A* B
fontfile項設置中文字體文件為/boot/fonts.gz! W0 }. t2 y( }% \
! j9 x) U/ H$ L下面兩個以title開頭的小節就是啟動菜單的兩個啟動項,title後面的文字將顯示在菜單中;
2 W0 p5 b5 h# D: X9 e h% [/ |0 T7 y6 |/ V7 p& G
find --set-root /grubidx.txt這一項是自動搜索grubidx.txt這個事先創建好的特徵文件,它只要找到這個文件,就把文件所在的路徑設置為根設備,這樣就不會被盤符變化困擾了。至於特徵文件的內容,那就無所謂了。4 ~+ I: K+ t2 A/ T, r' ^
3 G# Z8 {- i0 `9 A* m( O5 {
chainloader /ldrxpe就是啟動WinPE的XPE鏡像。
, I( q& N" Z2 ~% B
7 }9 a& E4 l9 \map --mem /boot/dos.ima (fd0)是裝入/boot/dos.ima這個軟盤鏡像,並且虛擬成fd0.$ R8 W9 |/ b, F6 a L2 D+ l
! `3 f$ P$ l- H8 n: F0 smap --hook是讓裝入的軟盤鏡像立即加載生效。
* G. |" P5 i( j, J4 b1 w+ X! H; U% J* B2 s! `& s7 M5 Z1 b
rootnoverify (fd0)指定把剛才虛擬的fd0設置為根設備。" o- N# p- G3 Z! F7 z
- {0 x8 M8 ~+ v3 e' r' ^本來,Grub4DOS可以直接安裝到U盤的根目錄,但是我反覆嘗試了多次,MBR是寫進去了,可總是報錯無法引導。所以還是用NT Loader做MBR引導器,由於NT Loader不支持加載鏡像文件,所以MBR引導成功後,把控制權交給Grub4DOS,由Grub4DOS來加載WinPE的XPE鏡像以及MS- DOS的軟盤鏡像實現啟動對應OS的功能。0 u4 k" s8 w+ I, g
7 s( I+ q. ]9 O9 K6 A# @6 |8 u6 s% R: ^/ v4 q9 M9 h1 ~- h4 ]0 p
方案三:MS-DOS 7.1 + Grub4DOS7 I; C8 d( g8 ?1 g
: K! F# z' _( r& F
本來這個方案是我著手製作雙啟動U盤最早選用的方案,但是在我的華擎845E主板上始終沒法使用,所以開始沒有發佈。這次發佈出來供大家測試,看看是不是我那主板的特例。
* M8 ^; P4 D- _( F1 i
$ ^- o( n" F8 C6 O* s, S* p本方案的MBR由DOS引導,WinPE由Grub4DOS加載啟動。相對前面的方案,這個方案製作起來最簡單。0 W4 w0 j7 U+ S6 \9 `, V
; ?4 Q2 l& u: w' [$ w! t1、用HP USE Disk Storage Format Tool把U盤格式化成FAT可引導盤。
, z% |+ K2 c/ G4 @, k. `2、根據自己的需要,把其它DOS文件和一些DOS工具拷貝到U盤。
4 D; p3 W7 Y5 p" r3、把老毛桃WinPE裡面的WINNT.XPE和WINPE.IS_文件拷貝到U盤根目錄;把WXPE文件夾下面的SETUPLDR.BIN拷貝到U盤根目錄下並更名為LDRXPE,注意沒有後綴哦。把「外置程序」文件夾拷貝到U盤根目錄。
/ A/ q& }! v) A k4、把NTLDR和ntdetect.com兩個文件拷貝到U盤根目錄,這是啟動XPE格式WinPE鏡像必須的文件。
0 h+ N" I% B, t6 R$ c% Z5 |5、把grub.exe和fonts.gz兩個Grub4DOS的程序文件和中文字體文件拷貝到U盤根目錄。
: T8 Q. B2 B0 v/ L6、用任何文本編輯器在U盤根目錄創建Menu.lst,內容如下:6 t% l7 x O" t4 w) S
timeout 0
$ u5 w1 y: w! l$ fdefault 0
2 c9 O9 X1 M* Ofontfile /fonts.gz L5 ^1 P; m6 Q0 N1 ?" y: d
title 啟動 WindowsPE
, }6 u5 ~1 Q) s, F- v* Gfind --set-root /grubidx.txt. U" f" [6 a: B9 h
chainloader /ldrxpe
7 ^' j6 x# g" ^# `. u& @在U盤根目錄創建一個grubidx.txt文件,內容無所謂,作用是配合Menu.lst作為Grub特徵文件查找確定根設備。$ m& @: O( H1 x; g/ U R
& y$ S/ S+ i/ P9 f
7、自行編輯Config.sys和Autoexec.bat,構建DOS多重開機選單,加入啟動Grub4DOS的項目。要保證啟動Grub的時候不裝入任何的內存管理程序和其它驅動程序、駐留程序,以免跟Grub4DOS發生衝突。可以簡單地在Autoexec.bat裡面加入一行:6 W" p Y- n5 B* Q& @9 t+ O
5 e; g' f9 }% U: Ygrub
' L* N1 `* w( e5 _$ u7 ], Z
9 M& y6 K, m) t2 ~# `' H這樣就可以啟動Grub4DOS了。當然,由於要實現雙啟動,所以要把這兩個配置文件編輯成多重選單的方式,在需要的時候可以啟動對應的配置。我把我的配置文件內容放在下面供參考。
3 y0 W$ Y$ Y' h6 r% R: X2 g/ ^* j3 j9 E5 u% g1 r
Config.sys內容:6 F7 u. t- h+ ^# [+ a p; {
[MENU]4 q" \ S4 I7 T; @2 R! H
MENUITEM=1,XMS without CD-ROM support
3 ~% Q; Y" i# b$ r' d, JMENUITEM=2,XMS with CD-ROM support
- T9 H1 o* R: TMENUITEM=3,XMS and EMS
- z9 A$ ^6 L/ S" d- I- sMENUITEM=4,DOS real mode(no XMS,no EMS)- P, U0 T \: W: G- z1 H+ _" m
MENUITEM=5,Windows PE
! Q0 g, L5 o6 K8 S- p ]MENUDEFAULT=5,30
2 N, Z; ~9 P) c# h. U4 q2 a* |, e[1]% s& U F5 E# q
DEVICE=\HIMEM.SYS /TESTMEM:OFF
+ Q) T- W9 Z( yDEVICE=\EMM386.EXE NOEMS
$ V7 G" e% Z. ]! TINCLUDE=PUB+ M+ ^0 `, d! }
[2]
2 s# O! ^: v& k6 `9 X. I) E- bDEVICE=\HIMEM.SYS /TESTMEM:OFF+ F j' O/ _0 I0 r
DEVICE=\EMM386.EXE NOEMS
" d, s& Q+ B* y, {# v- I8 oDEVICEHIGH=\VIDE-CDD.SYS /D:SSCD001
4 n6 F/ X& E; N& {( c8 A% CINCLUDE=PUB P( C" ^( s* D/ C, p" o
[3]
9 \' s, t1 P8 \5 Q! J* EDEVICE=\HIMEM.SYS /TESTMEM:OFF8 c( x8 y* Z0 Q3 i( ?; R
DEVICE=\EMM386.EXE RAM: Z5 X2 E7 A8 | ?9 P1 B
INCLUDE=PUB
% C0 x) M, V$ C! v' J$ y% X3 u[PUB]
' Q- o- B# g. }4 N1 I$ u( }9 qDOS=HIGH,UMB
" ` @) F3 ]3 F2 s X3 Y7 cFILES=30. L S$ H5 O! ^+ W) ^
BUFFERS=20* e$ d) ]+ E* ^8 e
STACKS=9,256$ l- q2 P7 l8 r) d+ G' C4 Q# U, V1 h
LASTDRIVE=Z! K* a* O9 B" B0 k" D9 E
[4]0 A t; K1 I+ N/ ]/ u( K( A
FILES=105 T i7 b* l% E2 k/ X) ~
BUFFERS=10. e8 ~9 k8 p. u$ C- F
LASTDRIVE=Z+ T6 }6 V+ ^5 ]. l
[5]
4 i! [$ x5 Y2 f, N, ~Autoexec.bat內容:+ A. R; x. X: G- A5 x
@ECHO OFF6 {; u9 U# z) {2 X, G
PATH=A:\;C:\;A:\Diskgen;C:\DiskGen;A:\DM;C:\DM0 V9 o; n8 N3 s) K- X! O% j" d
GOTO %CONFIG%
9 R* n, [! Z) W9 H3 ^:1+ t' n/ {: u6 ]% _, L: w( _* u7 [/ y
GOTO COMMON
2 `! E, s6 L5 I, y3 U, ^7 x/ {:2# m3 l( `, s( ^' l8 s: V z$ K* @7 `
LH \SHSUCDX.COM /D:SSCD001
+ c& J" G' W! O UGOTO COMMON
- u8 O U; G2 s:3, C1 Z, z2 N8 v8 n! t
GOTO COMMON
- c' I2 ^9 u i; a% n8 B) f! m:4
3 E; n5 _ M9 m* M; }0 y6 gGOTO END
4 u1 I7 L" n3 D5 T& d" O:5
3 U6 E0 y& T. S) V9 GGRUB
" u' E1 J# u4 G }* }% p:COMMON
% u E3 @( ^' R. @3 F5 s; fLH \SMARTDRV.EXE /X5 A5 f" J* P( q/ R
@ECHO Install mouse driver?' S8 M9 Q5 \) F+ d1 D z0 r
\CHOICE /C:YN Yes,No /T:N,6; j( A) h% d8 ?/ j) U0 ^" e
IF ERRORLEVEL 2 GOTO END: U6 W" ~2 I4 Q5 G$ O3 B
LH \MOUSE.COM
8 R; Z `/ K1 b, w:END + k/ `6 {: T- \9 z- Z, F; f
. K) m, [6 v& [* E g
按照這個配置,啟動的時候如果選擇第5個項目,或者超過30秒沒有做選擇自動執行第5個項目,那就經由Autoexec.bat裡面對應的語句啟動 Grub4DOS,然後Grub4DOS會根據Menu.lst的設置啟動WinPE。DOS多重啟動配置的具體做法,請參考有關資料。
% [) r% H& g6 [+ U' w* s9 s. n$ g3 A* b6 U1 O8 y% I5 I
感謝5free和david_ge的幫助!6 c- l. @. D" E8 n
& M6 k0 t* e- s! y& P+ f本文選用的「WinPE 老毛桃最終修改版」可以到無憂論壇或者老毛桃的網盤下載:; B4 I& r8 u( P2 R; g1 H- D4 _" L; g5 J
0 _/ Y% F; k7 H" e3 t9 A
http://bbs.wuyou.com/viewthread.php?tid=94087& f3 R6 v* |5 l8 N# i! z
http://maotao.u.winzheng.com/4 ^' w3 J- J/ j
' y" |. d- k! Z5 g# G r
附件中Avdos.rar是我製作好的Avlgo引導文件;NTLDR.rar是NT Loader引導器文件;PeToUSB.rar是格式化NTLDR引導盤的工具;Avlgomgr2007.rar是Avlgo裝配工具; FixNTBoot.rar是另外一個用來寫NT Loader MBR的工具。其它軟件由於涉及版權,請自行到網上尋找。
/ L# U3 ]# a: g) k" h. Y
& P; k% b4 ], |. |/ @最近在研究DOS/WinPE雙啟動U盤,開始的時候用Grub for DOS,結果這個東西對USB設備的支持有兼容性問題,搞得有的主板裝入WinPE的時候死機。
# v0 H% e* m# f7 M+ ^後來用NTLDR+AVLDR代替Grub for DOS搞定了啟動WinPE兼容性問題。) C2 q( \1 B4 U+ k3 p
# h$ A( [4 o; Q7 C目前的需要解決的問題是如何用NTLDR啟動DOS。現在我是把DOS文件放在U盤根目錄,已經提取生成了U盤格式化為DOS引導模式的引導扇區文件。但是不知道如何編寫Boot.ini文件,是否還需要把DOS系統文件製作成某種鏡像? |
|