折腾xbox (3)热交换和大硬盘
除了前面提到的硬件,还需要的硬件有:
首先,hotswap热交换是在硬盘加点旋转的情况下,把它的xbox信号线拔下来然后装到PC的信号线上,其间电源线不需要拔。由于IDE硬盘的设计上是不允许这种热插拔,所以要是弄出来问题(包括触电、烧硬盘、烧主板等等),只能表示遗憾了。 我的机箱如下图所示,要做的是把硬盘的电源线和信号线都拔了(我电脑上三个硬盘一个DVD,接口实在是不富裕了):
我把PC机机箱拆开,拔掉所有硬盘,和xbox摆成如下姿势,拖出来的那个就是{dy}个IDE接口的线: ? 其中xbox的电源线可以接在PC上或者保留在xbox上,我选择留在xbox上,因为我的电源线实在不够长。在hotswap之前,建议阅读The art of hotswapping,里面有详细的介绍和原理分析: 正如前面所说,hotswap的目的是在xbox自己给硬盘unlock解锁的时候转到PC上进行读写,时机就有些讲究,网上过很多办法,我的办法是用xbox播放CD的方法,把一张CD放进去,让xbox开始播放,播放的过程中暂停,在暂停之后约10秒的时间内,硬盘的状态是unlocked,在这个时候迅速的把连接在xbox上的信号线拔下来换到PC上。 这一段是可选的一步,在windows下面备份硬盘内容。做法是,保留PC的系统硬盘不要拔掉,用PC启动,在内存检测完毕之前按下pause/break键,打开xbox播放CD并且暂停,在暂停之后约10秒的时间内(要抓紧,多试验几次),把xbox信号线拔下来,把pc信号线插上,然后再pc中再按pause/break继续启动到windows。我的主板如果发现硬盘是锁住的状态(一般是拔慢了)会有错误报出来,如果没有,它会被识别成一个USB的外接硬盘(强) 。如果顺利的话,进入windows,运行上次说到的hdd driver,如果同样顺利的话,hdd driver会说找到一个xbox硬盘,并且尝试读取。如果硬盘上有存档文件,则会显示"Invalid FileName Size",确定就可以,如果存档多的话,多确定几千次。结束之后就能看到xbox硬盘上C和E的内容,拷贝到本地。当然,这一步是不必要做的,当作hotswap的练习也不错。注意,整个过程硬盘从xbox加点,别把xbox关了。 正式的操作是,拿出上次测试好的linux光盘作为启动盘,并且在bios里面设置为光驱启动,在内存检测完毕之前按下pause/break键,打开xbox播放CD并且暂停,在暂停之后约10秒的时间内把xbox信号线拔下来,把pc信号线插上,然后再pc中再按pause/break继续启动到这个最小镜像Linux的启动画面,应该看到和上次一样的内容(又猥琐的抄别人的图了)。
选择{dy}个,linux就会加载fatx这个文件系统的启动镜像启动linux。进入linux之后,输入xbrowser,这是一个加载了fatX硬盘格式的midnight commander(玩过debian的都知道这个是好东西) 在这里,应该能看到/PriMas目录下的C和E目录,这就是你的xbox硬盘。在右边/CD目录下是那个启动CD的东西:
进入/PriMas/C,如果能看到有.xbe文件(不一定要是xboxdash.xbe),这说明hotswap成功,那个就是xbox启动的时候要加载的主界面了。如果没看到,按F10退出(看{zd2}下的命令提示,如果没有用过这个的话),然后用halt关机,重新再来。?这样,获得了硬盘的读写权限,就该干嘛干嘛了。 当然,也可以继续看下去:
下一步,按照mitbbs老鳄鱼的建议,把C的内容备份到E下面,在midnight commander里面输入 tar zcvf /PriMas/E/backupc.tgz /PriMas/C/* ,速度因人而异,取决于这个硬盘是不是挂的好,从半分钟到10分钟不等,其间没有进度提示。注意,这些关于xbox文件操作的命令都是在midnight commander里面而不是bash里面输入,因为裸bash里面没有挂上xbox的两个fatx的分区,不能读,这一点在老鳄鱼那里没说,我还犯了个傻。
然后,确信备份完毕(会看到/PriMas/E/下面一个一百MB左右的backupc.tgz) 。删除xbox硬盘/PriMas/C下面的所有内容rm -rf /PriMas/C/*,然后从CD里面把UXE目录下面的内容(就是/font什么的.xbe什么的)拷贝到/PriMas/C下面(看下面的命令提示,F5是拷贝),同时把CD的UXEE下面内容拷贝到/PriMas/E/。 退出,halt关机,再关上xbox,把线插回去。如果这时候启动xbox,应该能看到正确的绿色xbox图标,然后进入一个和平时微软原版的绿色界面不同的界面,我的是蓝色的EvolutionX:
(可怜,没有电视,只好搞显卡带的电视卡,还好能上480i)。如果没看到,xbox光驱的灯应该红绿色交替闪烁,屏幕上会显示某error。只要看到灯闪的不对,就重新来吧,还好原来的系统都备份在/PriMas/E/backupc.tgz,想放弃还可以回头。
进入System Utilities,设置xbox的IP。我选择用对等线连接PC和xbox,所以我的IP设置如下,然后PC的类似(供参考):
用对等线连起来PC和xbox,PC中打开FTP软件比如flashfxp,连接到 (对于我这个例子),连过去应该就能看到C和E的目录。把他们拷贝到PC上,保存好,并且拷贝E下面/PriMas/E/ROOT/backup(位置可能有变)的五个文件bios.bin, disk.bin, eeprom.bin, hddinfo.txt,? hddkey.bin到xboxhdm那个目录的linux/eeprom里面(这些是硬盘的密码,如果没找到,可能需要在xbox里面的System Utilies选择Backup一下来生成这些文件。),并把整个C的内容拷贝到xboxhdm/linux/C下面,以及把整个E的内容拷贝到xboxhdm/linux/E下面({zh0}把backupc.tgz一起考进去)。?这些备份可能比较大,E里面多是存档,比如我在DOA里面各位主角的N套衣服还有xbox Live!下的一些东西等等。 其实到这里,如果不想换硬盘的话,基本上可以收拾收拾结束了。放一张游戏进去,选择Lunch DVD,看看能不能玩:
我的{jp}飞车可以玩:?
接下来是换大硬盘。刚才在xboxhdm拷贝的那些xbox硬盘的备份文件(xboxhdm/linux/C, xboxhdm/linux/E,xboxhdm/linux/eeprom)用上次同样的办法make-iso-win.bat做出一张光盘。这个光盘是此xbox的系统恢复光盘,包含了现在硬盘上的所有信息。 下面就不要hotswap这么麻烦了,把xbox的硬盘拆下来(需要另外一个型号的六角螺丝刀),换上新硬盘。并且关掉PC,拔掉所有硬盘,只保留光驱并且依然是光驱启动。打开xbox给硬盘加电,信号线接在PC上启动PC,将会看到和{dy}次linux一样的界面,选择1进入系统。输入xboxhd,看到一个集成的操作界面:
要为新硬盘装上系统,就选择1,接下来它会问你一系列问题,看着回答了,同意就yes不同意就no而不是输入y或者n。对于我的硬盘250G,超过了137G,所以要做一些其他的东西建立F和G。 上一步做完后之后回到这个界面,选择2创建C分区,然后选择4创建F分区(我留给F分区129G)。如果你想挑战自己的耐心,可以选择3备份一下现在的硬盘,其间同样没有任何提示,花费约2个小时。 {zh1}也是最重要的一步就是把硬盘lock回去,因为xbox只认和eeprom下面密码对应的加锁硬盘。退到bash下,reboot到启动画面,选择3用来Lock/unlock Hard drive。由于CD里面的/eeprom保存了原xbox硬盘的5个密码文件,现在直接用lockhd -a就自动完成了。如果没lock回去的硬盘挂上xbox,xbox光驱会红绿交替闪烁显示没有硬盘。 注意一个恶心的问题,对于有些主板(比如我的),如果硬盘随着主板的启动一起启动(主板检测到这个硬盘),lock操作会产生hard disk is frozen的错误而无法lock回去。更难过得是这个lockhd只能对于Primary Master的硬盘操作(也就是/hda),如果硬盘挂在其他地方(比如/hdb)就无法找到Primary Master的硬盘。网上有很多人碰到这个问题,我的解决办法是类似hotswap:先把硬盘的跳线从cable select设置为Master Only(在硬盘背上有图示),并把硬盘安装在xbox上由xbox提供电源,但是把信号线留空。PC上信号线拖出来,bios里面禁止所有硬盘,只留下一个光驱,启动PC,忽略没有硬盘的错误,进入光盘上linux基本系统,在这时,把PC硬盘信号线挂在xbox硬盘上(有一分钟时间,超过了一分钟就自动进入{dy}个系统,就要重新来。还是要熟练阿),进入3 Lock/unlock Hard drive。注意看Linux检测硬件,尽管bios没有检测硬盘,现在linux也可以检测到。如果在飞速滚动的系统信息中发现硬盘的名字(比如我的WD123456XXX)被挂在/hda上,同时光驱也被发现,挂在比如/hdc上,那么进入系统,lockhd -a就自动完成(给你看看我的硬盘序列号也没什么关系):
完成之后,把xbox螺丝上好?:
在xbox系统信息里面,把F盘和G盘启用起来,G盘还有一些设置上的小问题:
基本上就属于换好了,下面想装XBMC来播放下载的电影也好,想把xbox光盘的游戏拷贝到硬盘上玩也好,自己琢磨吧。 {zh1},感谢无私的软件的作者们,mitbbs视频游戏精华区的文章作者们,各个服务器的维护人员们,ebay上便宜卖给我xbox的人,以及我房东友情出借的螺丝刀,以及房东家儿子友情督促我赶紧搞定赶紧玩,以及写驱动都不测试能不能用的ATI公司的显卡驱动程序。 Comments (3)
|