TA的每日心情 | 擦汗 3 天前 |
---|
签到天数: 2402 天 [LV.Master]伴坛终老
|
现在新主板越来越多的支持了SATA,但是要在SATA硬盘上安装XP等操作系统,需要把. f' X* K8 B; H# N# D& u
SATA驱动放在软盘中,XP安装启动时按F6加载SATA驱动才可以正常在SATA硬盘上安装
7 q! A7 b' \* ~/ U新系统.
! i& G2 B; |# k# L( p
* d d+ ^* I: F1 R这个问题很搞笑,因为装SATA的新机器多半不会装软驱了吧.好在有办法在XP安装盘
. m/ ~" l3 w" a+ T中集成SATA驱动,具体方法在google上以XP SATA driver F6 integration搜一下就
3 o$ ]4 G4 N4 ?) I- m b有了,大体方法是修改驱动的inf文件加入到XP安装文件中使其自动加载,这里不在赘9 x* A2 E3 s+ v4 z
述.5 v) J, C$ \8 @* h; I- T: E3 x
3 r8 }' Y* j3 y3 R* H4 f/ L这种方法的缺点在于修改麻烦,一般修改简单的驱动还行,可是像VIA现在发布的SATA
q8 b: B4 f- a" O2 u$ }9 [+ G% |驱动是非常麻烦的,修改起来不是那么简单(我就是因为这个放弃了这种方法).另一
5 p0 P+ k- o7 ?, n点,厂商一旦发布新的驱动,更新的话就要重新修改.
( l( t! E2 r; }: u0 Q$ }
+ @8 K$ a1 V9 ]我要说的是用cdshell来虚拟软驱,完成没有软驱的情况下加载软盘中的SATA驱动的
& U! t6 l! u% Q7 u6 ~9 n"不可能任务".cdshell是一个光盘引导管理程序,非常强大,关于它以及这个强大工) f4 Q2 e7 h+ i! m# x
具从diskemu -> Boot Scripter ->CDShell的演化历程,请至www.cdshell.org
# R% \ k. g j7 b s* E9 Y" @( m- [- D: q; x% G" c( U
大致介绍一下cdshell:- X1 G k" e( l6 L: t: d
cdshell的引导程序loader.bin被写在光盘的eltorito引导区,然后它会加载cdshell
9 o; {4 ]: E1 t3 G. x的主程序并加载各功能模块(其中就包括之前bart所作的著名的把软盘模拟发展到极: V O# G9 c/ I. @; I6 P
致的diskemu).然后它可以引导光盘上的软盘镜像(通过diskemu或是另一个组件memd9 t" t& V( J8 v; ~: D
isk)/另一个光盘引导记录/另外一个光盘iso(2.0.13b之后),并且提供了一个很强大
( S$ ~2 |; D5 [6 V$ ?的脚本系统,可以实现用户交互(2.0.15b之后甚至可以用鼠标了).常见的N合一启动
* I' e8 Q5 y4 e& h$ W4 G7 e( B( M盘基本就是用它或其前身来完成的.+ u" n+ a# S+ W- Z1 ~. D& T" J
" i6 \! }6 A8 F
在2.0.12b中cdshell加入了一个非常有用的功能:它的diskemu组件现在可以只加载
/ l8 ~$ }9 \( d3 K- J软盘镜像,而不启动它,在这之后我们可以再启动一个光盘镜像.这就是我们要的功能!: v7 G, X/ l) @8 \$ S
* I! O1 V4 ~( L# {比如启动一个软盘镜像的命令行是这样的:2 F) d: X! O& g3 C' y3 E5 n
diskemu imgfile.img
' T8 f% u/ H( |$ V( E启动一个光盘引导记录的命令行是这样的: f% c/ D; J- y6 O7 c1 S/ l8 P
chain cdrecord.ert# m& g# E2 r; Q" ?! I
先虚拟软盘再启动光盘引导记录的命令行就是这样:
, M1 m; {- w$ q+ e2 Qdiskemu imgfile.img noboot4 s, I- c% y5 \& P" G9 h
chain cdrecord.ert
) P# p' e% \0 C" M
9 p( W7 u/ {. m8 n就这么简单,具体步骤如下:2 M0 m: b/ i, {2 Z9 R
: ^( ]7 c1 n8 ?: Z, Q$ @
这里使用cdimage来创建可启动镜像,也可以使用mkisofs代替.' X% s( R) n4 ^
5 n' j. ^" G9 ^7 |3 i- i) j& f) K1:把XP安装文件拷到D:\temp\XPins(这个你随意)下
; p4 L4 b, n/ X% q8 D) C2:把cdshell的bin包里的boot目录整个拷贝到D:\temp\XPins
! M. A) h- e, a( ?! Z5 i) f3:把D:\temp\XPins\boot下的loader.bin移到D:\temp
' x7 v. m+ E6 I/ m5 Q+ [+ y4:准备你要用的SATA驱动的软盘镜像(可以使用WinImage创建),放在boot下
4 p0 _: Z! z% P. u5:按需修改cdshell.ini这个脚本文件,有兴趣的话,看一下cdshell的说明,看看哪些组件
. [9 ~' @1 p }, ~4 p是你要的,不用的可以删除,脚本可以参照下面的范例0 M# W- x3 q6 J1 H
6:把cdimage.exe放到D:\temp\,运行下面的命令创建镜像
* w% B: C7 A i- m5 X/ Icdimage -lXPinsSATA -h -n -bloader.bin D:\temp\XPins D:\temp\XP.iso0 V# K. z& W9 U. g2 }- `) A
7:burn it, have fun!
# u* m% j x4 F8 X: p2 W7 i: s. D
我的cdshell.ini:
7 N+ Z) @. R6 Q###########################################################################9 `$ h: {- Q2 ^# }; Y6 ^$ X+ w# i
start:
/ d! Z* W4 H( k) I- \+ Dset c_1 = $textColor #get the default color( l. u L. a0 {: N3 t
here
1 K9 a3 k0 H0 J: Yset c_2 = color[brightblue on black]
, [8 x9 r. A/ Q0 f( I' Kset c_3 = color[brightgreen on black]
+ M% N9 {1 a7 X: R2 |# t3 K2 Qset c_4 = color[brightred on black]
" T* X) e2 N2 L7 d% d2 P hset c_5 = color[white on black]
( O; c* h& [) V! y& c3 a5 w$ D; B" T3 z3 F
cls
- B6 m( @4 p5 A% W2 h. t# Tprint c "\nJimmyZ`s XP install with RAID floppy emulation Disk Version% p! p0 g( {. \3 A/ v3 w" U
\c($c_3)Aug 4th,2004\c($c_1)\n"; ? f# t! M9 x) x' Z
print r "\c($c_5)Powered by CDshell.org\c($c_1)"* w% q, N1 a; i' Q' [# _0 _3 \9 }
print "\n"& y) Z- v& O g2 n, m: R/ F
print l "\t\c($c_2)1\c($c_1). Boot Extreme Pure MS-DOS 7.10 (for bios w# y6 H6 i1 ]& q
flasher etc)\n"
4 j1 Z: `2 z) c$ rprint l "\t\c($c_2)2\c($c_1). Boot Standard MS-DOS 7.10\n") \4 E ?% X: o9 M! O9 y$ \; L! y
print l "\t\c($c_2)3\c($c_1). Boot Super MS-DOS 7.10 by Wengier\n"
* p7 }; [ N; i" i5 Cprint l "\t\c($c_2)4\c($c_1). Boot Standard PC-DOS 7.10\n"' O* \: b! D" K5 g9 h
print l "\t\c($c_2)5\c($c_1). Boot tom`s rtbt-2.0.103.Eltorito Edition
: I* E/ t* \; s0 j; \% a* \(Linux 2.2.10)\n"0 G3 N! d4 d! K) ]7 d
print l "\t\c($c_2)6\c($c_1). Boot Windows XP VLK SP1 ENG setup\n"4 j( f& J8 |+ |( A, O) p
print l "\t\c($c_2)7\c($c_1). Boot Windows XP VLK SP1 ENG setup with VIA+ A1 P7 m5 r+ c1 B
RAID floppy emulation\n"
E. ^( t3 O7 D3 v: ?! Hprint l "\t\c($c_2)8\c($c_1). Boot Windows XP VLK SP1 ENG setup with Intel) I; g: ^, u2 i/ K; o( E0 T* Y
RAID floppy emulation\n\n"
" h6 Q3 c. q2 s: R4 j- P4 Kprint c "\"\c($c_4)F\c($c_1)\" boot Floppy, \"\c($c_4)Esc\c($c_1)\" boot
8 H: M9 l4 l4 s& Z# p; V1st HDD\n\n"
- t G7 F; O! P( D6 N" G- vprint r "\"\c($c_4)C\c($c_1)\" to CD-Shell Command Prompt"
) {+ A4 O5 y1 g8 E3 b4 n, R. @print r "\n.ini written by JimmyZ: \c($c_5)sorceress_92@hotmail.com\c($c_1)") F. j1 U# n! c' O$ W1 {( I
" x4 I. Y( u6 |% I- P+ i! Q
mainkey:/ X/ g( M; W1 i1 w t
getkey 30 set lastKey = key[esc]
$ H. c" O* n* |# h( j5 j8 n" Eif $lastKey == key[1];then goto ms710cln1 {; t9 U0 y: H+ U* o3 t% d
if $lastKey == key[2];then goto ms710std$ n# n6 L. q! }
if $lastKey == key[3];then goto ms710spr5 w+ \8 z1 b. V
if $lastKey == key[4];then goto pc710
+ o2 j& Q' q- X9 @& Uif $lastKey == key[5];then goto toms0 z4 O+ a$ [" u' p# c; {( P* o
if $lastKey == key[6];then goto xpins" d# p; F9 @, ]& q& g
if $lastKey == key[7];then goto xpinsvia
5 c2 E7 `- w" }% K9 Zif $lastKey == key[8];then goto xpinsintel) c; n4 G" g% N% \+ P1 S1 M
if $lastKey == key[f];then goto floppy
* ^; n) W) N# n/ X M7 o; |if $lastKey == key[esc];then goto hdd0
1 y8 Z* L; V" g5 B1 L" a/ ^if $lastKey == key[c];then goto exit
9 y4 e- H+ O, x5 l+ pgoto mainkey4 w8 n9 d; v* ]* |2 m
. c `" e7 _5 ~* U& ?2 E" W
ms710cln:
( u8 d7 V4 }3 v; ?$ `7 tcls
0 W* i% t5 ~8 Y d+ bdiskemu images\MS710CLN.IMG6 [+ b8 I) c# X) t: E1 v' u. k* O
getkey
6 X E. d! n6 [+ Y5 {goto start& ^6 {7 h0 k* k$ u
0 }# X* L, H! v2 S
ms710std:
2 w2 m& ?+ j3 l( {- \/ Ncls4 Y/ z- s) M6 V
diskemu images\MS710STD.IMG
& J& F( ~: ]: i; Vgetkey* | d2 R: U) j0 f
goto start
3 I, Z/ k [" x$ I& o+ i
3 v8 d0 X4 S" [1 Z4 [ms710spr:
' _. U' ]! {# s- |& [9 q( w2 Mcls
8 Z2 V% }# K/ q1 x- g# zdiskemu images\MS710SPR.IMG9 F7 x& h! s6 J9 ~
getkey
( |4 Y ~" b }. d% y5 X$ Igoto start( @2 {$ c& N) P W5 _2 H. K
) y) N% B$ ^. W6 C2 z4 [+ wpc710:
: O8 c( @, A: c5 R4 {5 q% \3 Fcls7 a a5 N& w( u9 ^) G5 V
diskemu images\PCDOS710.IMG
6 r0 c! h9 }. b3 _6 tgetkey
l& F5 z9 c8 f9 R ~2 I) tgoto start6 ?3 Z# l9 Q% F. L1 p
# f% } n% {) x' b( f& Otoms:
8 A9 @% R/ c' l/ w/ R. j; B' t1 qcls
* L8 c6 ^1 }2 o: C& \" T0 G3 a7 udiskemu images\tomsrtbt.img
( L2 Y9 `" }, f$ [' Y* O$ W/ z; ugetkey
$ F8 P E N) S" j) q# B5 W' Agoto start" ]# n+ C/ a5 F$ a- m
: ]8 ~$ [9 w& c3 j1 J
xpins:
. ^% P" N* g; ^cls/ {# w$ ~# z- r( g! ~
chain images\MSXPVLK1.etr8 n7 d. Q$ E. J; i3 w; q& s- g4 k
getkey
* N X4 |& _) P$ [ v2 wgoto start( x6 \/ o1 i0 ?6 W0 s
! S9 ?% E1 A: d2 ~" |xpinsvia:
, L9 _) ^4 n' A' A. n8 n: `8 ncls* Y# ?+ x( C2 n9 p3 s: H. _# u. F
diskemu images\viaRAID.IMA noboot2 d* s$ q, V8 E+ D L
chain images\MSXPVLK1.etr
6 G8 Y# f3 B& jgetkey: ~" o8 q5 J1 T/ X" Q7 R6 n |2 w
goto start( O1 J9 l! f# }8 ^8 e2 X
( x) k% J B' R5 W) D3 K; Hxpinsintel:
" i3 `' {! T- l* Bcls
) B& x8 j( J8 D; Q1 rdiskemu images\intRAID.IMA noboot
+ z: R# N$ p' k& kchain images\MSXPVLK1.etr4 l1 }' q; A+ n- x
getkey7 t, V. @' G1 [- K; P1 ?% T1 ]
goto start L! A; `) e P7 T9 Y
8 F. b( Y) {/ q }floppy:
# X( l- T2 m' Q, W; Mcls
5 ?3 o4 D: ~$ d9 P5 w8 {3 iboot 0x00
' v+ Y Z, ^, M0 F8 i5 ]( Kgetkey; W/ r! {& t3 G( L1 R! P3 ]5 _$ v
goto start3 n! p3 ] C3 R" H0 t9 x$ _
. l% G, y( Z1 d
hdd0:
, y) h8 q) b: U8 a/ L9 ccls
% {4 ]) s8 q( I% Y! \: N& Kboot 0x80
: ^2 o6 c) v' r6 m. f" rgetkey
# m- c8 ]; S! g: a, ggoto start
B7 `2 w/ P( V# D7 } b
8 J/ T2 T0 S: j0 h( n' j' w- @8 k4 Xexit:
8 j+ s N0 c& d$ }cls% z, A7 P7 q( W1 J) H
help: y0 z1 |: ~" r- S8 ?
end; Z6 x7 t% Z* T4 z4 j' N, i9 ?
###########################################################################% \& B( j! p" J7 e Y: s4 g
4 A8 o) u% t3 s o3 ~
我做这个的主要原因是想装的新机器想用SATA的硬盘也不想装软驱,所以做了这个,己+ c2 K9 ~6 S# ?6 {0 i' m; d
经试验过XP安装程序的确可以正常加载虚拟软驱中的驱动.如果大家觉得这个方法带
0 \- M- m5 S& X6 n4 M" [来方便,不胜荣幸.! r, H B& W$ m, N
) ^5 i: |$ L! I0 z* r1 W
- \! n% i9 e3 h1 l4 ^JimmyZ于2004.08.04晨
) T. o q+ y7 v1 g$ O7 U ~2 S1 D/ w2 ~* }
@) i% k$ f6 U
感谢Gary Tong和Bart Lagerweij的堪称伟大的diskemu,感谢Michael K. Ter Louw的0 n; R9 Y0 N. r, I7 m) J: A* M! N
更加好用更加完善的cdshell- `- p8 f2 L0 l( B$ k2 C5 P) z
--
$ S9 r( B: s9 g) A& {Fake Wings
5 N! ]7 n+ k8 T! t" J |2 g" Qshine , bright morning light , now in the air the spring is coming
& Z% {, l$ R; D* y% Y% \( q2 csweet blowing wind , singing down the hills and valleys
& J' [/ S0 _2 }2 I$ Fkeep your eyes on me , now we`re on the edge of hell
/ Y J' F9 C) m _$ M7 F! rdear my love , sweet morning light
; U' _3 ?! ^" @& Gwait for me you`ve gone much farther , too far
1 i8 z5 L. g- t2 `# _※ 修改:·JimmyZ 於 08月04日02:03:07 修改本文·
) e3 `7 V- Y1 x7 O※ 来源:·瀚海星云 bbs.ustc.edu.cn· |
|