TA的每日心情 | 奋斗 前天 11:21 |
---|
签到天数: 2393 天 [LV.Master]伴坛终老
|
现在新主板越来越多的支持了SATA,但是要在SATA硬盘上安装XP等操作系统,需要把
$ ` r: n9 h, U: s/ L8 ~SATA驱动放在软盘中,XP安装启动时按F6加载SATA驱动才可以正常在SATA硬盘上安装! R( u" X1 H2 [
新系统.# u( m& O" ?0 I( \* f! l5 |
4 A) [& k6 K4 G7 J' q这个问题很搞笑,因为装SATA的新机器多半不会装软驱了吧.好在有办法在XP安装盘
1 X) n& i: E" x$ V) P3 k& s中集成SATA驱动,具体方法在google上以XP SATA driver F6 integration搜一下就
' n2 z" C/ k# H有了,大体方法是修改驱动的inf文件加入到XP安装文件中使其自动加载,这里不在赘
9 X4 d0 }- _' n: ]% N( H' k0 ^述.* Z& S8 n0 X' O+ W
# F. L9 `) |* W" r/ V& l
这种方法的缺点在于修改麻烦,一般修改简单的驱动还行,可是像VIA现在发布的SATA" l; E, F6 l, e
驱动是非常麻烦的,修改起来不是那么简单(我就是因为这个放弃了这种方法).另一
0 W3 N) `1 L- c/ Y点,厂商一旦发布新的驱动,更新的话就要重新修改.
4 I& f* b; f, d
4 r' }: P. x; _$ x5 o& V我要说的是用cdshell来虚拟软驱,完成没有软驱的情况下加载软盘中的SATA驱动的/ D% ]% O1 O3 i) b
"不可能任务".cdshell是一个光盘引导管理程序,非常强大,关于它以及这个强大工
5 n1 L5 S: S* q% [: K* S7 k5 d具从diskemu -> Boot Scripter ->CDShell的演化历程,请至www.cdshell.org
- U7 [4 A: H/ M, B @* c
' H( |# D+ x( b- e+ r3 s( ~大致介绍一下cdshell:
. r# p- J$ _( j$ Scdshell的引导程序loader.bin被写在光盘的eltorito引导区,然后它会加载cdshell
% Z- h2 z5 o, [% d, e P& k4 M/ V5 b的主程序并加载各功能模块(其中就包括之前bart所作的著名的把软盘模拟发展到极6 Y8 N2 L X% {. F2 ]9 a s
致的diskemu).然后它可以引导光盘上的软盘镜像(通过diskemu或是另一个组件memd6 G9 H7 `5 Q# g2 p. v# k+ v
isk)/另一个光盘引导记录/另外一个光盘iso(2.0.13b之后),并且提供了一个很强大4 R8 L. ~1 ^! }8 ]) Z' [
的脚本系统,可以实现用户交互(2.0.15b之后甚至可以用鼠标了).常见的N合一启动
' X5 }9 ^ l t9 S盘基本就是用它或其前身来完成的.
, z7 K8 H8 _/ G, L
& a8 E3 M* ~$ q! ~. q$ t在2.0.12b中cdshell加入了一个非常有用的功能:它的diskemu组件现在可以只加载: n; S6 U. c7 y
软盘镜像,而不启动它,在这之后我们可以再启动一个光盘镜像.这就是我们要的功能!, q, w" a5 q# c+ W, S0 G
! B3 G% e$ `' U9 w9 B7 u4 s9 x比如启动一个软盘镜像的命令行是这样的:
1 t8 I: u5 k/ y$ @$ o! ?diskemu imgfile.img
5 @: V1 z, g% H h' S& v启动一个光盘引导记录的命令行是这样的:
" s4 J3 g9 \( _" r! achain cdrecord.ert
* [5 M, Y% |" c4 _ ^3 f先虚拟软盘再启动光盘引导记录的命令行就是这样:
+ X5 D1 Y% a Z- S6 hdiskemu imgfile.img noboot
, {& @8 ^1 F; V' }9 G& Y/ Xchain cdrecord.ert% t6 z; O" y* {, V
7 u( Y8 P5 K) C2 [2 ?3 T
就这么简单,具体步骤如下:: S7 w" F0 d% y$ r
6 n) P. a# F8 F" n0 X这里使用cdimage来创建可启动镜像,也可以使用mkisofs代替.( n9 s4 j* G# W- d1 d+ [( B- y! t: B
. o2 U# f1 E( K* M; v
1:把XP安装文件拷到D:\temp\XPins(这个你随意)下
* ]- L8 d- O# B6 _' ?, ` p0 d0 C5 J2:把cdshell的bin包里的boot目录整个拷贝到D:\temp\XPins' ^. k2 L6 l& L$ X
3:把D:\temp\XPins\boot下的loader.bin移到D:\temp6 H+ A6 n+ ~: K
4:准备你要用的SATA驱动的软盘镜像(可以使用WinImage创建),放在boot下9 Q' _, K1 f8 D+ L; M
5:按需修改cdshell.ini这个脚本文件,有兴趣的话,看一下cdshell的说明,看看哪些组件) x9 D3 m* G. }
是你要的,不用的可以删除,脚本可以参照下面的范例
1 a3 j, Q& {4 b3 T6:把cdimage.exe放到D:\temp\,运行下面的命令创建镜像
( k2 T: s$ \4 [cdimage -lXPinsSATA -h -n -bloader.bin D:\temp\XPins D:\temp\XP.iso) k/ i1 K. G: I1 m$ c9 y) h
7:burn it, have fun!2 a+ Q: d* E2 [7 ?
/ Z9 V9 h5 z, J Z- l
我的cdshell.ini:$ L" L8 `8 ~4 I5 y
###########################################################################, h# [' T! u3 P" H" y* o& R. W4 w& j" c5 t
start:
) l- P! y5 ?8 D- v3 Dset c_1 = $textColor #get the default color6 J. K# J+ t. T
here
& R% t" I+ X7 |2 S% pset c_2 = color[brightblue on black]6 C( b7 Q4 x5 W4 T1 Z+ h# i6 ]
set c_3 = color[brightgreen on black]3 [( y) C( z: z5 |
set c_4 = color[brightred on black]1 y7 e. j$ i" F( S$ Z. K0 g, P
set c_5 = color[white on black]
7 u$ U4 p3 i; @; B) x& b1 r
' X0 @4 `- m# O6 u8 O* hcls
7 d4 N1 X* a" yprint c "\nJimmyZ`s XP install with RAID floppy emulation Disk Version
, k& T* P7 q( E8 d0 j1 i! H: @\c($c_3)Aug 4th,2004\c($c_1)\n"
( C) c& ~; r4 |0 Pprint r "\c($c_5)Powered by CDshell.org\c($c_1)"# ~9 L; g% J& N! y% ^2 W: f
print "\n"
* P+ A& @. G0 a7 H# I( c1 kprint l "\t\c($c_2)1\c($c_1). Boot Extreme Pure MS-DOS 7.10 (for bios
" Y! I/ K4 O$ a7 E& ?3 wflasher etc)\n"
5 ?& C( i- K. Q& e# Wprint l "\t\c($c_2)2\c($c_1). Boot Standard MS-DOS 7.10\n"+ c7 r" x$ s: O
print l "\t\c($c_2)3\c($c_1). Boot Super MS-DOS 7.10 by Wengier\n"0 T9 X5 x, N1 [% D
print l "\t\c($c_2)4\c($c_1). Boot Standard PC-DOS 7.10\n"
' `! V$ Q1 Z. Y; l& zprint l "\t\c($c_2)5\c($c_1). Boot tom`s rtbt-2.0.103.Eltorito Edition6 e9 i4 l" a0 }$ @" g
(Linux 2.2.10)\n"1 b6 V6 t: l- ?: h7 |( s
print l "\t\c($c_2)6\c($c_1). Boot Windows XP VLK SP1 ENG setup\n", B& N/ n( }) D5 e( D: L8 O
print l "\t\c($c_2)7\c($c_1). Boot Windows XP VLK SP1 ENG setup with VIA
% P9 k( R2 g4 RRAID floppy emulation\n"9 [, E) ?$ N# P, @& r) V/ E( n5 z
print l "\t\c($c_2)8\c($c_1). Boot Windows XP VLK SP1 ENG setup with Intel
; ]# N% w9 @. e9 D- n: RRAID floppy emulation\n\n") o6 ^: K7 o3 E5 E( F) j
print c "\"\c($c_4)F\c($c_1)\" boot Floppy, \"\c($c_4)Esc\c($c_1)\" boot' W* i3 A# _4 i' [* N7 a
1st HDD\n\n"
3 ]3 `% Y0 D4 dprint r "\"\c($c_4)C\c($c_1)\" to CD-Shell Command Prompt" F c3 f9 x, U& C7 `+ l% `+ V
print r "\n.ini written by JimmyZ: \c($c_5)sorceress_92@hotmail.com\c($c_1)"
9 U+ s" ]! y8 l+ z
h1 P6 l6 s, W$ b* v' Lmainkey:
' J% j( I, y# S' @ fgetkey 30 set lastKey = key[esc]
8 m, y5 ]2 b4 }" o' r5 ~if $lastKey == key[1];then goto ms710cln0 F5 l9 {2 ~# G' k+ h' `; B5 v& }
if $lastKey == key[2];then goto ms710std* c; b- a d% G/ y$ E7 X, ]
if $lastKey == key[3];then goto ms710spr2 z p# l4 ]4 B8 `
if $lastKey == key[4];then goto pc710! D) d" b6 D# u& s' k* U
if $lastKey == key[5];then goto toms
- h. k# j# O4 H" u5 C$ Bif $lastKey == key[6];then goto xpins
" l7 L9 v' ^5 h/ m: C0 R, L! ~7 xif $lastKey == key[7];then goto xpinsvia
6 \ r9 a" |2 x* L* Jif $lastKey == key[8];then goto xpinsintel- \% I! P5 ^: P8 Y0 O# ^
if $lastKey == key[f];then goto floppy2 C7 j- G/ N9 w+ a1 j! w" S
if $lastKey == key[esc];then goto hdd09 K$ ]3 [: j/ o" _3 n( k, R. Y
if $lastKey == key[c];then goto exit, {, \' E7 B* r7 l9 o* }" R
goto mainkey
; |- ?/ b/ j1 G5 x, h( `4 a* Y3 K) m: q& j# R( p% ?( K
ms710cln:
# m! x5 E+ L2 q: \( R7 U8 h4 [cls3 v& P& |. ^# L1 J
diskemu images\MS710CLN.IMG
9 t$ I( c e6 ?8 `9 h( V# Ugetkey
( `7 J+ Q' h. \/ }3 z! agoto start
0 Z3 Q- w: R2 l
( H' p% t4 j& tms710std:& ~- h" N7 g7 v+ F O8 M) ?
cls
j/ a& @/ D+ V) H& M Tdiskemu images\MS710STD.IMG
! F C7 d# s/ {, h: ?2 xgetkey3 `! G; {) m( }
goto start
3 E+ Y( G" n' A7 e% H! E0 ?! P: p* Q
ms710spr:
0 C9 j* W& t) v4 `0 |cls
0 Y( d# T' Y" K0 odiskemu images\MS710SPR.IMG
( E% S) Q$ w/ k8 u8 T3 E' d E$ h) Egetkey" M1 Z0 Q& G" `* o4 z
goto start3 b7 ^6 U8 s l( ~( s$ u& F- n
+ n7 ?2 O9 a% o( X$ n T1 Epc710:
" d9 d8 L3 \, p* \7 Vcls/ B8 i- m* S6 V9 S8 o4 W
diskemu images\PCDOS710.IMG7 M2 Z7 t8 o, }0 I6 R4 x% v+ X
getkey/ B) ?1 g5 L/ f
goto start
) K: N9 c5 Y+ U+ e; N( i1 G3 c% G! a3 O" e" M) ~
toms:
% \; H" |: V( A" @, {cls
$ Y4 `9 g( h2 Q4 ^, l- c( Gdiskemu images\tomsrtbt.img
! o( S- g6 s6 Fgetkey9 A0 h/ @7 H# Y7 r
goto start6 K' T" q3 I" \" L
; H7 p* W, Z" n& R$ {7 [. l
xpins:1 ^* [& [) m) ^
cls
I: [: U" J3 L7 g! m( R+ Mchain images\MSXPVLK1.etr. Z5 v7 t2 j1 l1 N
getkey" I1 H: B; x g8 |) M* @
goto start/ c, G! b$ f, T
O, K2 p0 d# T) Wxpinsvia:
: G+ h0 S7 L3 Icls. _, A; w0 C1 {5 X
diskemu images\viaRAID.IMA noboot
- l, c3 a5 Z; Z+ j; S' u1 Z: g ]chain images\MSXPVLK1.etr
7 A$ f' ?* \. Q* o5 Ugetkey/ E7 g# z: w- F$ J
goto start* b( p% u. J8 M0 j4 m& y) M; [
! _, H1 M) S& ?xpinsintel:, R5 x! o7 O, a2 ?* ~: k
cls, N# }. z( Q7 ~1 [
diskemu images\intRAID.IMA noboot
$ }( b$ k3 ~' r) f) Q$ d+ j0 w2 tchain images\MSXPVLK1.etr' ?6 ~; X m8 k9 R; e' K
getkey
0 O/ O" C" w/ Z ^1 ?" cgoto start
; P2 c' [; z9 Y. Z" z/ k W M, k }* r, v' v
floppy:
* V0 z2 w6 t, G3 j- i- ~$ Y# }cls
" U- {3 R$ f% s' u7 Zboot 0x00. Q% q$ W9 d6 Z
getkey
- g" `+ G; R5 c; h1 n* h" y' i; h( igoto start; t9 ~- D, L. L& n
0 Z# {$ V. S3 P+ M& Ohdd0:
, ~. e1 Y' ~( f" ^ Y( v$ Y& Kcls
& N/ j* X+ l( |' c8 N8 }0 L, hboot 0x80
3 {# t8 ^; I, o0 Dgetkey5 O" _2 N+ [# n) h3 ^
goto start2 p( m! I; A S; y
8 d" d. P ~# b8 A% p) t6 B
exit:
& ? U+ b7 b7 a7 mcls
; O( j1 r) i6 g- thelp0 _( z' i: x0 a3 e- p* ~; q
end
6 r. m9 d* H! j###########################################################################
1 x' `6 G" K( q/ }6 @1 |
5 x+ q1 l. f, O& x1 ]' M I3 i: N我做这个的主要原因是想装的新机器想用SATA的硬盘也不想装软驱,所以做了这个,己- v( O' y# M, Y6 }
经试验过XP安装程序的确可以正常加载虚拟软驱中的驱动.如果大家觉得这个方法带
$ e' f0 r1 [6 g* O: u/ D来方便,不胜荣幸.* A# d% z! B0 r# C' M; K
' c6 B- G. Z$ G3 W4 J) t3 \
7 P5 b; x4 W1 ^JimmyZ于2004.08.04晨
0 o+ L6 O5 `- _5 r! J) a: `. I" s7 }
4 [* ]$ e W& u7 j& [* E0 _: F
感谢Gary Tong和Bart Lagerweij的堪称伟大的diskemu,感谢Michael K. Ter Louw的$ [3 R6 M) D. S6 V+ m
更加好用更加完善的cdshell( E0 e& F/ U: ?2 Q+ M" ~
--
% g* O. s) R# bFake Wings
2 v- w( j& m& l9 Y+ w4 @shine , bright morning light , now in the air the spring is coming$ _' O8 K' y" T3 [: {
sweet blowing wind , singing down the hills and valleys
5 @6 N& E% y! z" |keep your eyes on me , now we`re on the edge of hell& X8 f7 W& q& L3 d
dear my love , sweet morning light
; E. z) w4 W% l+ ?, v9 o7 _wait for me you`ve gone much farther , too far' d+ b2 h" y4 [
※ 修改:·JimmyZ 於 08月04日02:03:07 修改本文·
% v. _2 p4 a: `! D4 I0 q/ h4 F※ 来源:·瀚海星云 bbs.ustc.edu.cn· |
|