- 论坛徽章:
- 0
|
所需软件:记事本,starwind原版,starwind可同时加载ibv img补丁
方法:1:安装starwind原版至d:\swind\
2.进入控制面板,管理工具,服务。停止starwind服务
3。将starwind可同时加载ibv img补丁复制到d:\swind
4.复制d:\swind到d:\swind2(由于15T限制可能要多个服务才能符合要求。)
5。进入命令模式安装服务 再d:;(;不输,只是为了区别以后同) cd d:\swind2 执行命令StarWindService --install --name "update_server" --display "update_server" -l1 5891此服务用于专门加载img用于更新img包
6.建立img包。进入命令行。输入命令d: ;cd d:\swind 再执行mksparse -o 盘符:\game.img 300000M(-o参数为生成固实的img包。固实的包在格式化时速度快,3.1.4的-o参数无效果。其它版本加上后建立img包速度将非常慢。小心使用).楼主我建立的是300G的大包
7.建立ibv包。进入命令行。输入命令d: ;cd d:\swind 再执行IBVolumeCtl image 盘符:\01.ibv 0 . 盘符:\game.img。这样就建立了一个ibv。
8.建立大量的ibv.请开动复制贴贴大法。制造出一票ibv文件。再用文件批量改名工具将文件名改为合适的名字。
9.共享出一个ibv。打开starwind管理器.connt 默认的服务。点击add device。选择ibvolume device(snapshots)。“下一步” 点击...选择一个刚才建立的ibv文件(如:盘符:\01.ibv)。再选择 auto-restored snapshot点击“下一步”.写入target名,如:xx01.点击“下一步”。
10.共享出大量ibv.用上面的方法可以共享出一个ibv。如果共享出100个也像那样操作将全累死(我是懒人。不想那么干)。打开d:\swind\,找到starwind.cfg并用记事本打开。再查找盘符:\01.ibv。找到后将这一行文本复制下来。在此行回车换行并粘贴。修改target和device。3.1.4是如下格式处理后的格式如下:
用这种方法加入了所有ibv 的信息。进入:控制面板,管理工具,服务。重启starwind服务.
11.共享出img。为了安全。不建议在一个服务同时加载ibv和img。我们用另一个服务加载img。如果要更新游戏就启动那个服务。更新完毕就停止服务。这样可以有效防止一些别有用心的小人破坏。打开starwind管理器。点击:add connection.把Port改为5891.再点击确定。这样这个管理器上就有了两个服务。连接local:5891并点击local:5891.再点击add device 选择image file device点击下一步;点击...按钮。选择刚才建立的img文件(如果找不到。请在左边的窗口选择相应的盘符),选好后点击“下一步”.填写一个target名称,如:UPdate。点击“下一步”.再点击“完成”
至此。服务端的建立宣告完成。这样操作后以后更新游戏只需要启动"game_update"服务。不更新时关掉此服务即可。非常安全.
另外:3.1.4 无法修改密码。折中的办法是修改配置文件中的用户名。千万要注意。一定要修改。否则小人可以随便装个客户端让你的starwind服务死掉。
最后:我这个教程偏向于直接修改配置文件。如果操作正确绝对不会出问题。(当然。如果不放心,请备份原配置文件)我曾经发过一个同时加载补丁。加了壳,被骂死了。就算这样。到了第二天网上四处可下载到我的补丁。并且都没有作任何的注解XXX发布。这是对我劳动的侮辱。
视频教程已关闭下载
如何更新游戏?
以本方法做出的系统更新游戏非常简单:
1、打开工作站(此时如果加载了ibv的target请断开)
2、在服务器上启动update_server服务(如果你是按教程来的话就应该是这个服务,不会?这个玩笑不好笑)
3、工作站连接服务器,服务器IP,端口5891.挂接UPdate目标。此时将会出盘。
4、更新游戏。
5、断开连接,如果无法断开连接请重启该计算机。
6、等待一分钟。
7、在服务器上停止update_server服务。
starwind教程到此结束
客户端应用:可选:starport客户端。microsoft客户端。重中之重:每一台计算机连接不同的ibv
附:iscsi连接器见二楼(基于microsoft客户端,starport的手动连接请用四楼的vbs脚本)
更新连接器
![]()
点击浏览该文件
服务器IP=starwind服务器的IP地址(必填)
服务器端口=starwind服务器的端口(必填)
用户名=ibv的用户名(选填)
密码=ibv的密码(选填)
尝试次数=尝试自动连接的次数(必填)
工作目录=starwind盘出盘的盘符,用于检测是否连接成功 (必填)
执行程序=starwind盘连接成功后执行的程序(如显示游戏菜单,同步桌面等等 选填)
管理目标=starwind img目标,用于升级游戏或管理时使用(暂未实现。为了便于扩展 选填)
管理端口=starwind img目标端口,用于升级游戏或管理时使用(暂未实现。为了便于扩展,选填)
另外,做这个玩具的原因如下:恶意用户可能连接其它机器的ibv。那会引起其它的人无法连接自己应有的ibv。合理的方法是在target上加上用户名,密码。这也是为什么我将ini数据加密的原因.
2.6.4 3.2.1测试通过 ms iscsi 2.0 msiscsi1.06测试通过
![]()
Starport 2.6.4连接脚本(正常连接后关闭starport,某些精简版本上无法使用。在jujumao 2003.miniXP2测试通过)
Dim WSHShell
Set WSHShell=Wscript.CreateObject("Wscript.Shell")
Dim ComputerName,targetname
ComputerName=WSHShell.RegRead ( "HKEY_CURRENT_USER\Volatile Environment\LOGONSERVER")
targetName=right(ComputerName,2)
WSHShell.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Rocket Division Software\StarPort\iSCSIDevices\0\TargetName",targetName
WSHShell.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Rocket Division Software\StarPort\iSCSIDevices\0\InitiatorName","iqn.2003-06.com.rocketdivision.starport:sjx"+targetName
WSHShell.run "C:\WINDOWS\iscsi\StarPort.exe"
set WSHShell=nothing
dim fso
Set fso=CreateObject("Scripting.FileSystemObject")
do while (not fso.DriveExists("d:\"))
Wscript.sleep 1000
loop
KillProcess("starport.exe")
set fso=nothing
Function KillProcess(NameorPID)
Dim oWMI, oProcs, oProc, strSQL
KillProcess = False
strSQL = "SELECT * FROM Win32_Process"
If NameOrPID "" Then
If IsNumeric(NameOrPID) Then
strSQL = strSQL & " WHERE Handle = '" & NameorPID & "'"
Else
strSQL = strSQL & " WHERE Name = '" & NameorPID & "'"
End If
End If
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
Set oProcs = oWMI.ExecQuery(strSQL)
For Each oProc In oProcs
oProc.Terminate
KillProcess = True
Next
Set oProc = Nothing
Set oProcs = Nothing
Set oWMI = Nothing
End Function
Set WSHShell=nothing
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68279/showart_717208.html |
|