Here is a short summary of the options available inrsync. Please refer to the detailed description below for
a complete description.-v, --verbose increase verbosity
-q, --quiet suppress non-error messages
--no-motd suppress daemon-mode MOTD (see caveat)
-c, --checksum skip based on checksum, not mod-time size
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
--no-OPTION turn off an implied OPTION (e.g. --no-D)
-r, --recursive recurse into directories
-R, --relative use relative path names
--no-implied-dirs don't send implied dirs with --relative
-b, --backup make backups (see --suffix --backup-dir)
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
-u, --update skip files that are newer on the receiver
--inplace update destination files in-place
--append append data onto shorter files
--append-verify --append w/old data in file checksum
-d, --dirs transfer directories without recursing
-l, --links copy symlinks as symlinks
-L, --copy-links transform symlink into referent file/dir
--copy-unsafe-links only "unsafe" symlinks are transformed
--safe-links ignore symlinks that point outside the tree
-k, --copy-dirlinks transform symlink to dir into referent dir
-K, --keep-dirlinks treat symlinked dir on receiver as dir
-H, --hard-links preserve hard links
-p, --perms preserve permissions
-E, --executability preserve executability
--chmod=CHMOD affect file and/or directory permissions
-A, --acls preserve ACLs (implies -p)
-X, --xattrs preserve extended attributes
-o, --owner preserve owner (super-user only)
-g, --group preserve group
--devices preserve device files (super-user only)
--specials preserve special files
-D same as --devices --specials
-t, --times preserve modification times
-O, --omit-dir-times omit directories from --times
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-B, --block-size=SIZE force a fixed checksum block-size
-e, --rsh=COMMAND specify the remote shell to use
--rsync-path=PROGRAM specify thersyncto run on remote machine
--existing skip creating new files on receiver
--ignore-existing skip updating files that exist on receiver
--remove-source-files sender removes synchronized files (non-dir)
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during xfer, not before
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from dest dirs
--ignore-errors delete even if there are I/O errors
--force force deletion of dirs even if not empty
--max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
--partial keep partially transferred files
--partial-dir=DIR put a partially transferred file into DIR
--delay-updates put all updated files into place at end
-m, --prune-empty-dirs prune empty directory chains from file-list
--numeric-ids don't map uid/gid values by user/group name
--timeout=SECONDS set I/O timeout in seconds
--contimeout=SECONDS set daemon connection timeout in seconds
-I, --ignore-times don't skip files that match size and time
--size-only skip files that match in size
--modify-window=NUM compare mod-times with reduced accuracy
-T, --temp-dir=DIR create temporary files in directory DIR
-y, --fuzzy find similar file for basis if no dest file
--compare-dest=DIR also compare received files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-z, --compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with suffix in LIST
-C, --cvs-exclude auto-ignore files in the same way CVS does
-f, --filter=RULE add a file-filtering RULE
-F same as --filter='dir-merge /.rsync-filter'
repeated: --filter='- .rsync-filter'
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE read include patterns from FILE
--files-from=FILE read list of source-file names from FILE
-0, --from0 all *from/filter files are delimited by 0s
-s, --protect-args no space-splitting; wildcard chars only
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
--blocking-io use blocking I/O for the remote shell
--stats give some file-transfer stats
-8, --8-bit-output leave high-bit chars unescaped in output
-h, --human-readable output numbers in a human-readable format
--progress show progress during transfer
-P same as --partial --progress
-i, --itemize-changes output a change-summary for all updates
--out-format=FORMAT output updates using the specified FORMAT
--log-file=FILE log what we're doing to the specified FILE
--log-file-format=FMT log updates using the specified FMT
--password-file=FILE read daemon-access password from FILE
--list-only list the files instead of copying them
--bwlimit=KBPS limit I/O bandwidth; KBytes per second
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating dest
--read-batch=FILE read a batched update from FILE
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-6, --ipv6 prefer IPv6
--version print version number
(-h) --help show this help (see below for -h comment)
成立UT办事器
UT2003办事器架设指南
做办事器前先到:
下载办事器版UT2003,(v2107, Windows: 265MB | Linux: 249MB)安拆需要780M硬盘空间。
申请办事器公用CD-KEY
下载办事器安拆文件后:
linux用户:新建一个用户帐号专门用来运行办事器,用那个用户登录,运行ut2003lnxded.sh.bin文件。跟具屏幕提醒陆续 。
windows用户:把zip文件解压缩到硬盘中,没有安拆法式,解开来就行了。
在设置装备摆设办事器前先下载最新晋级补钉,给办事器蚂判枣法式晋级。
再下载evolutionpack2,它能帮你处理许多用web页面治理 上面的问题,和批改了一些bug。
20KB
安拆办事器:
在你下载完并解冲含压缩所有需要的文件后:
A 假设 你已经在机器上拆了零售版UT2003,那么跳到第M条
B 假设 你下载了免费的办事器公用法式,且不需要再申请办事器公用cdkey,那么跳到第D条
C 假设 你是利用零售版UT2003来运行办事器的话,那先安拆游戏,游戏会主动添加注册表中需要的信息。跳到第M条。
D 翻开 ,输进 一些需要的信息后,办事器公用CDkey会通过email发给你。linux用户需要把收到的cdkey文件复造到你的系统文件夹中
E 假设 你已经晓得怎么在注册内外添加CDKEY就跳过那一步到J。
F 点击起头---运行。在窗口中输进 regedit ,回车。
G 在注册表治理 器中,双击"HKEY_LOCALMACHINE"展开它,双击"software"展开它,在它下面找到"Unreal Technology"文件夹.假设 那个文件夹已经存在,跳到J。
H 添加一个新的键值。单击"software"文件夹,然后点编纂---新建---主键。一个新的文件夹就呈现了,有一个高亮的区域让你给它定名,输进 Unreal Technology 回车。
I 单击适才新建的文件夹,点编纂---新建---主键。一个新的文件夹呈现啦,又有一个高亮的区域让你定名,输进 Install Apps 回车,跳到K。
J 在Unreal Technology Installed apps文件夹下找到"UT2003"文件夹,假设 它存在,跳到L
K 单击"Installed Apps"文件夹,点编纂---新建---主键。一个崭新的文件夹降生啦,有一个高亮的区域让我们定名,输进 UT2003 回车。
L 单击"UT2003"文件夹,点编纂---新建---建值。一个新的文件夹又呈现啦,又有一个高亮的区域能够让我们起名字啦。输进 "CDKEY",回车。双击新成立的键值,你就能够编纂它的值。在里面输进 你的cdkey序列号。点OK。关掉注册表编纂器。
M 假设 你晓得怎么用号令行号令进进 你的虚幻安拆文件夹里的system文件夹,跳到步调O
N 用号令行成立办事器。我把我的文件安拆在UT2003server,我用那个举例子,输进 cd ut2003server\system
O 输进 ucc server DM-Antalus.ut2
假设 一切顺利,一个公用办事器就架设好了,游戏中的地图是DM-Antalus。
默认下面,公用办事器的设置装备摆设是给internet游戏设置装备摆设的。那意味着它他测验考试和国外的主办事器联络把它加进 到主办事器的数据库里,如许你的办事器就能够呈现在他人的办事器搜刮列内外。目前有两个差别的主办事器在运行,Epic的和Gamespy的。
假设 你在机器上已经安拆了零售版的UT2003,那就没必要运行Epic mail给你的.reg文件了闷拆,不然你注册内外的CDKEY会被改成办事器公用的,如许你本身就不克不及用那台机器玩了。
假设 你是在居域网里成立办事器,而且想制止UT2003和主办事器联络那就编纂UT2003.ini里修改下面的句子(假设 找不到那部门,就在最初加后那几行):
[IpDrv.MasterServerUplink]
DoUplink=False
UplinkToGamespy=False
设置装备摆设办事器
如今你应该晓得最根本的架设办事器的办法了,你需要把它设置装备摆设成你需要的。下面的每个部门都有详尽 的常见问题解答
System 文件夹里有最重要的三叠文件:user.ini runserver.bat和ut2003.ini 。 user.ini保留了地图轮回列表。ut2003.ini保留了许多其他设置。runserver.bat 保留了启动办事器的设置。Linux用户没有runserver.bat文件,你要把每次都输进 一长串号令启动办事器,或者你必需用一个外壳脚本启动办事器。(linux上用脚本启动UT2003办事器的例子拜见- community.com/forums/showthread.php?s=threadid=231043)
假设 你架设多个办事器,凡是你会利用一个配合的ut2003.ini文件,然后用差别的runserver.bat或者外壳脚本启动差别的办事器,下面是一个runserver.bat的例子:
ucc.exe server DM-Antalus?game=XGame.XDeathmatch?maxplayers=16?minplayers=4?timelimit=20?fraglimit=25
ucc.exe 是办事器的施行文件,"server"告诉uccc下面要架设一个公用办事器。后面的工具是一些参数,设置办事器的游戏规则。第一条是办事器初始游戏的地图名字,那个例子中是DM-Antalus。跟着是游戏类型,例子中是灭亡形式。差别的参数用问号分隔。不管你输进 几参数,整个号令都必需在一行中,假设 分隔来就不管用了。
下面列出ucc后面能够利用的所有参数列表。重视 下面有一些参数在运行办事器是是觉得不出有什么改变 的,列出它们只是为了列表了完全 性:
AccessControl 用来翻开高级治理 员系统。和UT2003.ini中[Engine.GameInfo]部门里的AccessConrolClass一行的参数不异。
AdminName=xxxx 网页治理 和掌握 台治理 员的名字--参看下面的高级网页治理 员部门。
adminpassword=xx 治理 员密码。至少5位,不然无效。
bAutoNumBots=true/false 设置成true在人数小于地图默认设定的最小数时,会主动加进 电脑bot补足。设置成false则不会。
autoadjust=true/false 设置成true,电脑bot会跟具玩家程度主动调整本身的品级。false则不会。
bPlayerMustBeReady=true/false 设置成true翻开角逐形式,每局开时前所有玩家要按下鼠标确认后游戏才起头。false则不需要。
Balanceteams=true/false 主动分配玩家平衡步队。
BlueTeam= 设置蓝队的名字。但是,不要认为你能够改动步队的名字。However, don't get clever and decide you'll name the blue team Purple or something like that. Many classes in the game refer to this variable to perform team info logic那句话不太好翻本身看吧。总之更好不要加那个参数,加上它会有不良后果。
BlueTeamAI= 特殊 的参数用来掌握 蓝队电脑AI。给MOD造造 者用来设置装备摆设本身写的AI给新的游戏形式用的。别碰它。
BlueTeamSymbol= 设置蓝队的队标。更好别设它。
Character=X 玩家用的人物,架办事器时无效。
Class 假设 在架办事器的时候利用,在办事器玩的玩家只能用默认的人物皮肤。凡是玩家城市用本身喜好的人物皮肤。所以那个号令毫无用途。
difficulty=x 设置电脑注销,从1到7别离 是novice到godlike。
FF=x 友队损害 的百分比。0是封闭,1是100% 所以.25就是25%友队损害 。
fraglimit=x 灭亡形式最多杀人数。
game= 游戏类型,能够用:xDeathmatch, xCTFgame,xBombingRun,或者xDoubleDom
gamepassword= 做为客户端加进 游戏时需要的密码。
GameRules 设置特殊 的GameRules类,GameRules是mutator在UT2003中增加的新类型。凡是你不需要用它。几乎所有的mod城市本身动设置装备摆设它们本身的GameRules。
Gamespeed=x 设置游戏速度,默认是1。更大2
Gamestats=true/false 设置成true会翻开统计功用(玩家的游戏材料,如射中率等会上传到主办事器材料库停止统计并参与 全世界排名),电脑数量必需设为0才气生效。
goalscore=x CTF,DOM和BR形式里的步队分数上限。
maxlivers=x last man standing形式,死x后玩家就出局,曲到只剩最初一人游戏完毕。
maxplayers=x 更大同时游戏人数。
maxspectators=x 更大同时看 战者人数。
minplayers=x 最小游戏人数,小于此数用电脑bot补足。
mutator= 在游戏中添加mutator(详细看下面)
numbots=x 设置电脑bot数量。重视 打死bot,游戏统计功用就无效了。
Password=xxxx 此外游戏者端加进 游戏时需要的密码。
PlayerMustbeready=true/false 在每局起头前期待其他的玩家。
QuickStart 容许 游戏在没有人的时候照旧停止,当然有电脑bot在玩的时候有效。
RedTeam 参看BlueTeam
RedTeamAI 参看BlueTeamAI
RedTeamSymbol 参看BlueTeamSymbol
SaveGame 陆续 一个保留过的单人游戏。架办事器时没用。
SpectatorOnly=True/False 客户端选项,容许 客户端用号令行指定看 察者形式,架办事器时没用。
Team 客户端选项,容许 客户端用号令行指按期看 加进 的步队。同样架办事器时没用。
translocator=true/false 设置为true容许 利用移位器,false相反。
timelimit=x 每局时间限造。
Tournament=true/false 设置成竞技场形式
weaponstay=true/false 兵器保留。
几个例子:
ucc server DM-Antalus?game=XGame.XDeathmatch?minplayers=4 架设灭亡形式办事器,初始地图DM-Antalus,起码4人,不敷4人用电脑补足。
ucc server CTF-Citadel?game=XGame.xCTFGame?FF=0 架设夺旗形式办事器,初始地图CTF-Citadel,无友队损害 。
ucc server DOM-SunTemple?game=xGame.xDoubleDom?mutator=UnrealGame.MutLowGrav 双重据点形式办事器,初始地图DOM-SunTemple,低重力形式开启。
ucc server BR-Anubis?game=XGame.xBombingRun?weaponstay=true 架设BR形式办事器,初始地图BR-Anubis,兵器保留开启。
ucc server DM-Curse3?game=XGame.xTeamGame?fraglimit=100 团队灭亡形式,初始地图DM-Curse3,杀人数上限100.
关于和主办事器的联络
假设 你不想你的办事器展现 在游戏的办事器搜刮列内外,或者你只是在居域网里的办事器,你能够在UT2003.ini里把下面那些关掉
[IpDrv.MasterserverUplink]
DoUplink=true|false 掌握 你的办事器能否与internet上的主办事器联络。
UplinkToGamespy=true|false 和DoUplink类似,是决定能否和gamespy办事器成立联络。
SendStats=true|false 能否发送统计信息到主办事器
ServerBehindNAT=true|false 办事器能否在网关后面。
DoLANBroadcast=true|false 设置办事器能否能够在居域网中查找到。一般设true
地图轮回和个性化地图列表
默认下流戏会地图会轮回呈现。 轮回挨次在user.ini文件里面掌握 。 每个游戏类型都有一个部门列出轮回的地图。你能够编纂它,往 掉你不喜好的,加上你喜好的地图。如
[XInterface.MapListDeathMatch]
MapNum=0
Maps=DM-Morbias-2k3
Maps=DM-Spacepir8
Maps=DM-KillingField
Maps=DM-Deck16]i[-BETA
Maps=DM-MoonTemple
Maps=DM-Reigncaster
Maps=DM-Golgatha
Maps=DM-Tooth-N-Claw
Maps=DM-Stage1
Maps=DM-Liandri2003_BETA2
假设 你想玩更多的地图,就往 网上下载吧。把他们解压缩后把ut2文件放到map文件夹里,utx放到texture文件夹里,以及其他响应文件都放到响应目次里,你就能利用新地图了。
在一个游戏办事器上运行多个游戏类型
你可能会想在一个游戏办事器上运行多个游戏类型,好比 CTF,DOM,BR。能够用以下办法切换地图,举例如下:
好比 我们先起头一个灭亡形式游戏在DM-Asbestos地图上。因为如今是灭亡形式,游戏完毕后UT会查抄user.ini中[XInterface.MapListDeathMatch]部门索取下一幅地图的名字。它找到了BR-Anubis地图名字,然后就切换到BR形式读取BR-Anubis地图。一但BR-Anubis的游戏完毕后,UT会查抄 [XInterface.MapListBombingRun]部门,因为已经是BR形式了。它又找到CTF-Citadel地图,然后就换成CTF形式,陆续 ....
[XInterface.MapListCaptureTheFlag]
MapNum=0
Maps=DM-Asbestos?game=XGame.xDeathMatch
[XInterface.MapListDeathMatch]
MapNum=0
Maps=BR-Anubis?game=XGame.xBombingRun
[XInterface.MapListBombingRun]
MapNum=0
Maps=CTF-Citadel?game=XGame.xCTFGame
第三册地图和重定向
假设 你利用了不是游戏自带的第三幅地图,他人连上办事器就可能花很长时间下载地图同时占用此外游戏者的带宽使游戏不畅 ,处理办法能够是把地图文件放到另一个网页办事器上然后告诉客户端主动从那里下载
用 UT2003compress(能够鄙人载)...?的ut2003.ini 下面的部门重定向下载办事器:
IpDrv.HTTPDownload]
HTTPServer=
Proxyserver=
Proxyport=
UseCompression=True
记住httpserver=后面的地址最初必然要加上个"/" ,不然它不会工做。假设 碰着问题的话,把域名改成网页办事器的IP地图碰运气(好比192.168.1.10)
Mutators
Mutators要和启动号令加在统一行里。下面的例子是架设一个灭亡形式的办事器地图是DM-Asbestor带大头的mutator和Instagib的mutator:
ucc.exe DM-Asbestos?Game=XGame.xDeathmatch?Mutator=UnrealGame.MutBigHead,XGame.MutInstaGib
默认mutator参数列表:
Arena - XWeapons.MutArena
Big Head - UnrealGame.MutBigHead
Float-Away Corpses - XGame.MutHeliumCorpses
InstaGib - XGame.MutInstaGib
Zoom InstaGib - XGame.ZoomInstaGib
LowGrav - UnrealGame.MutLowGrav
No Adrenaline - XGame.MutNoAdrenaline
No Super Weapons - XWeapons.MutNoSuperWeapon
Quad Jump - XGame.MutQuadJump
AutoHealing - XGame.MutRegen
Slow Motion Deaths - XGame.MutSlomoDeath
Species Specific Stats - XGame.MutSpeciesStats
Vampire - XGame.MutVampire
重视 部门mutator参数的前缀的差别:XWeapons , UnrealGame 等。
给每张地图差别的Mutator
你能够通过修改user.ini为每张地图设置差别的mutator 。除非你换掉它们,那些mutator会在所有地图中生效。你能够用"mutator="后面什么也不要加来鄙人一册地图中往 掉mutator。下面的例子是在DM-Antalus地图上的游戏带有Slow-mo death和low-grav两个mutator,然后鄙人一张DM-Golgotha时往 掉它们。
Maps=DM-Reigncaster
Maps=DM-Antalus?game=XGame.xDeathMatch?mutator=XGame.MutSlomoDeath,unrealGame.MutLowGrav
Maps=DM-Golgatha?mutator=
Maps=DM-Asbestos
同样的办法能够加载其他的号令在后面,好比你可能想在某一本地图上有队友损害 ,然后鄙人一本地图中往 掉它:
Maps=CTF-Chrome?FF=0.75
Maps=CTF-Citadel?FF=0
页面治理 员和高级页面治理
根本的页面治理 员通过在runserver.bat里指定治理 员名字和密码,并编纂ut2003.ini中[UWeb.WebServer]部门启用。那将容许 你通过web页面完全掌握 办事器,只需要一个治理 员帐号。重视 ,那些都不需要通过IIS或者Apache就能够完成。UT办事器供给了本身的web页面办事器。假设 你的办事器上运行了IIS或者Apache,你要把它们的监听端口口改成80以外的。
[UWeb.WebServer]
bEnabled=True
Listenport=xxxx
高级网页治理 员容许 多个差别掌握 权限的治理 员帐号。重视 ,阿谁evolutionpack目前发如今利用高级治理 员下有潜在的严峻平安破绽。我强烈定见 在互联网长途掌握 系统中不要利用它。
详细的高级治理 员指南拜见;artid=7
你应该在你的runserver.bat里加上治理 员名字和密码参数,除非你不想利用高级网页治理 东西。
一台机器上架设多个办事器
你能够有两种办法在一台机器上架设多个办事器:给每个办事器差别的端标语,或者分配差别的IP地址给你的每个UT办事器,
假设 你用差别的端标语架设办事器,你可能碰着他们在游戏的办事器搜刮列内外展现 不出来的问题。
假设 你有多个IP你能够用-multihome 参数在runserver.bat里给每个办事器绑定差别IP。例如下面把IP地址192.168.0.1绑到办事器上
ucc server DM-Antalus?game=XGame.xDeathMatch -multihome 192.168.0.1
在linux下面,你需要恋情multihome=ip的参数:
ucc server DM-Antalus?game=XGame.xDeathMatch -multihome=192.168.0.1
办事器在网关,防火墙,路由器后面
假设 你的办事器在网关,防火墙,路由器后面你需要翻开一些端口让外面的客户端连进来。默认的端口有7777,7778,7787,7788,28900,28902。我如今还不确定他们是TCP,UDP或者两者都是。
你还要在UT2003.ini中找到[IpDrv.MasterServerUplink]部门,把ServerBehindNat设为true。
除非你改动了端口(如上面说的一台机器运行多个办事器)那么但凡你用到的端口都要翻开。
硬件要求
Epic定见 ,两个32人的公用办事器在一台办事器主机上需要一台1.7G的CPU。你至少需要128M内寸(最小级限了)。
比来改一些客户端的项目,测试的时候需要利用windows,因为是windows的客户软件,所以不能不利用windows, 本来老是在我的debian上安拆vmware, 自从晋级内核到2.6.17后,发现怎么安拆vmware都有问题, 就比力烦,本来看到过华华说过qemu,0.8.1的时候安拆过一次,觉得不是太抱负,出格 是sdl的屏幕形成鼠标挈 动很慢, 往 主战的forum里看了看,发现那个已经被patch掉了。
并且kqemu又到了pre9了。正好试一下。
说一下目标:
安拆qemu和kqemu, 配好收集。实现virtual machine 和 host 可以互通,也就是不是利用默认的user形式。 而改利用tun/tap的形式。
那里有两个要求:
第一:内核要撑持network filter. 出格 要用到的是nat.
第二:内核要撑持tun/tap模块。
我的是debian,本身编译的内核,所以在编译的时候就已经弄好了,因为我历来不消官方的内核,所以我就不晓得debian的管方内核是不是已经有了。
不外能够本身看一下。
iptables的撑持是不消问的,一般都是内置的。
就是tun/tap设备的撑持。 那一点,能够如许看一下:
modprobe tun, lsmod 看一下有没有tun 假设 胜利,就是撑持的, 并且是被编译成了模块,假设 没有,能够看一下:/dev/net/,看看是不是存在tun如许一叠文件,假设 存在就是内核内置的,没有编译成模块,别的, 假设 编译成了模块,也要重视 能否有那个文件存在。不在的话,得本身建了。
mknode /dev/net/tun, 一般如今的发行版城市在你modprobe tun时主动帮你弄好,所以不消担忧那个。
好了。我们开工了。
从主站上下载回来qemu的源码:
tar zxvf qemu-0.8.2.tar.gz
cd qemu-0.8.2
gcc -v
那里看一下gcc的版本。
qemu目前只能用gcc3来编译。假设 你的是gcc4,
就su - 一下,到root, 然后到/usr/bin/
看一下有没有gcc3
有的话,看看本来的gcc是链接仍是一份文件。假设 是一份文件,就备份一下,呆会恢复。 假设 是链接就不消管它了。看它指向哪一个gcc, 记得呆会儿要恢复过来的。 链接的做法简单了: ln -s gcc-3.3 gcc
就如许的。 备份就更简单了。mv gcc gcc.bak
回到我们适才的目次里。
运行:
./configure
make
make install
如许就拆好了qmeu,
如今我们需要利用kqemu模块来加速了。
下载回来kqemu-1.3.0pre9.tar.gz.
解开后。
tar zxvf kqemu-1.3.0pre9.tar.gz
然后进进 到目次里。那个时候有两件事要重视 :
1. 需要有你如今所用的内核的内核头文件。
2. gcc的版本要和你的内核编译的gcc版本一致。一移 来说就是你适才改正的哪个了。恢复回来就好了。
好了。
./configure make make install
就好了。
我们已经就拆好了所有的软件。
但是有时候我们需要一些设置才气工做。
1. modprobe kqemu
2. 看看/dev/kqemu 字符文件能否存在。
3. /dev/kqemu 文件的权限如果0666的。
做好那些后就能够起头安拆你的虚拟机了,
安拆好,我们再设置你的收集
退出你的root, 然后
cd ~ 进进 你的home directory
mkdir qemu
cd qemu
qemu-img create win2k.img 2G
成立一个硬盘文件。然后我们就能够在那个上面安拆win2000了。
能够利用iso文件, 也能够利用光盘。
我们那里利用光盘来安拆。
qemu -hda win2k.img -cdrom /dev/cdrom -boot d -localtime -m 256 -win2k-hack
如许就能够起头安拆2000了。阐明 一下那里的选项:
-hda 指定第一个硬盘。
-cdrom 指定你的cdrom 后面的文件能够是一个iso文件
-boot d 从光盘启动,假设 从你的硬盘启动,就-boot c, -localtime利用本机的时间。 -m 就是设定内存的大小。默认是128, 重视 能够设得大一点的内存,但是需要你的/dev/shm足够大。
-win2k-hack, 在安拆2000的时候会有一个问题,它会提醒你磁盘空间不敷,加上那个参数就能够了。
好了。
安拆完成了之后,就能够启动来看一把了。
启动如下:
qemu -hda win2k.img -boot c -localtime -m 256. 如许就默认利用了kqemu
如今应该也能够上彀了,但是重视 虚拟机利用的是dhcp的体例来上彀的。
并且不克不及ping通你的本机,我想那个可能是大大都人不想要的,所以下面我们来设置装备摆设收集。 通过tun/tap, 有点象vmware里的host-only
要设置装备摆设host-only(tun/tap)如许的收集,我们上面已经讲过了两个要求,如今我们来做更多的事:
1、 成立一份文件 /etc/qemu-ifup
内容很简单:
#!/bin/sh
sudo /sbin/ifconfig $1 192.168.0.1 netmask 255.255.255.0
然后chmod a+x /etc/qemu-ifup
重视 那里的192.168.0.1是你的tun/tap网卡的地址,必然要重视 :不克不及和你的现实的网卡在统一个网段。 也就是假设 tun/tap是192.168.2.0.0/24, 那么你的时间网卡就不克不及在那个网段。
然后写一个小的脚本:
userinit 那个是文件名:
文件内容如下:
#!/bin/bash
case "$1" in
start)
[ ! -e /dev/kqemu ] mknod -m 666 /dev/kqemu c 250 0
echo 1024 /proc/sys/dev/rtc/max-user-freq
echo 1 /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
stop)
esac
然后:chmod a+x userinit
再:mv userinit /etc/init.d/
再: update-rc.d userinit start 25 2 3 .
要重视 的是那个操做是在debian 下面的做法。
假设 是在其他发行版:好比Fedora, 你能够间接写如许的script在你的/etc/rc.local文件里
[ ! -e /dev/kqemu ] mknod -m 666 /dev/kqemu c 250 0
echo 1024 /proc/sys/dev/rtc/max-user-freq
echo 1 /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
编纂你的/etc/modules. 加上: kqemu (假设 你的tun被编译成了模块,也加上tun)
最初还有一点。各人必然重视 到了一个问题: 就是qemu-ifup脚本哩利用了sodu, 所以假设 想通俗用户能用,那么就配一下sudoer.
那个好配极了。 编纂:/etc/sudoers
你的用户名 ALL=(ALL):ALL NOPASSWD:ALL
如许就能够不消输进 密码了。
如今我们能够起头启动你的虚拟机了。
要象如许启动:
qemu -hda win2k.img -boot c -localtime -m 256 -net nic,vlan=0 -net tap,vlan=0
假设 嫌费事,
就痛快写一个一句话的脚本:
#!/bin/bash
qemu -hda win2k.img -boot c -localtime -m 256 -net nic,vlan=0 -net tap,vlan=0
存储为win2k, 加上x的权限,然后放置到/usr/bin, 或者是/usr/local/bin下
以后间接运行win2k, 就能够启动2000了。
同理也能够安拆多个系统,写多个脚本启动。
如许比力的酷