QEMU品尝Rhapsody

请注意:本文章发表于 2018年12月24日 ,已经超过一年,其内容可能已经过期。对于发表时间较久的文章,本站不能在准确性和质量方面做出保证。虽然仍然欢迎提出改进建议,但一般不再维护,敬请谅解。

之前我已经写了两篇文章,分别介绍了在VMware上安装和体验Rhapsody DR2 x86,在Macintosh实体机上安装和体验Rhapsody 5.6 PowerPC的过程和心得。而这篇文章如约而至,将向你介绍如何通过QEMU PowerPC跨平台模拟,来无需实体机运行上Rhapsody 5.6 PowerPC。对Rhapsody系统本身的更多介绍,请参见我的上一篇文章;且在你准备尝试安装之前,也建议先阅读上一篇文章,这样你就可以了解实体机的安装流程,做为一个参考——本文将不再细化地讲述这些,主要讲述操作的经验。


QEMU在今年年初的更新中,增加了对ADB键鼠的模拟,从而彻底解决了以往的不能操作鼠标的问题——目前最新的3.0版本更是再接再厉,改进了2.0后期版本的鼠标粘滞漂移问题,极大地改善了模拟体验。然而,虽然QEMU是不断更新的,它的性能依旧不尽人意——整数性能只勉强相当于G3水平,而浮点性能可能还不到G3的一小半,因此Rhapsody体验会十分卡顿;但至少,它成功地运行起来了。QEMU是全平台的开源模拟器,本文基于Mac OS X 10.13介绍整个安装流程。

准备工作

在你继续之前,你需要做一些准备工作。在一切开始之前,先下载好下面的资源:(QEMU可以在E-Maculation下载到,而Mac OS X Server可以在Macintosh Repository下载到)

  • 任意平台的QEMU程序(直接下载3.0最新版);
  • Mac OS X Server,1.2v3的映像(不同于上一篇文章安装的1.2版本,QEMU只能运行1.2v3)。

下载好之后,我们开始准备磁盘映像。Rhapsody安装只在raw格式的磁盘映像上进行,qcow/qcow2等其他格式的映像会导致特殊的错误。我们使用qemu-img来创建虚拟磁盘映像。找到下载好的QEMU主目录,找到qemu-img这个小程序,给予它以下参数:

qemu.img create -f raw -o size=2G (PATH)hd.img

不要忘记将(PATH)替换为QEMU目录的路径,这样我们就在QEMU的目录下创建了一个叫做hd.img的2GBraw格式磁盘映像。至于具体如何执行这个程序,依照你使用QEMU的平台而定。Windows可以使用「运行」,而Mac OS X和Linux则使用终端,直接把这个程序拖入然后带好参数即可。

如果你是从我上文提供的Macintosh Repository下载的Mac OS X Server映像,那么他是一个toast「面包机」映像;这种映像可以在Mac OS X下很方便地转换。本文是以Mac OS X 10.13平台为例,来介绍整个安装流程的,因此本段基于Mac OS X的磁盘工具(10.11+)。如果你在别的平台下,请自行寻找办法。

打开「磁盘工具」,选择「映像」菜单栏——「转换」;

在弹出窗口中选择下载好的Toast映像,然后在弹出的窗口——「映像格式」中选择「DVD/CD 主映像」,「存储位置」则可以直接存储到你的QEMU目录中;

找到转换好的映像,它的扩展名是.cdr。我们直接将它的全名改为cd.iso——直接修改扩展名即可。这样我们就在QEMU目录下得到了一个名为cd.iso的Mac OS X Server 1.2v3安装光盘映像。

第一阶段安装

在继续下去之前,还是再次建议您,阅读上篇文章,即真机上的安装流程。系统的整个安装流程和真机是基本相同的,当然具体操作有巨大不同。真正的光驱变成了参数的编辑,且QEMU的重新启动功能也是不能使用的。QEMU的OpenBIOS缺少对NVRAM的模拟,所以我们还需要手动在固件里引导光盘的Rhapsody系统。在本文中这些安装的阶段是都会和之前的介绍一一对应的,可以方便读者理解——第三次建议您,阅读上一篇文章——那里有对安装流程的一个具体介绍,这个很有必要,非常有参考价值。

首先,我们编辑QEMU目录下的启动脚本,准备第一阶段的安装。根据平台的不同这个脚本的类型自然也是各有不同——例如Windows下的BAT脚本;在Mac OS X下,这个文件叫做qemu.command。用文本编辑即可把它打开,先清空里面的所有内容,然后填入以下内容:(以Mac OS X 10.13为例,其他平台的参数通用,请自行调整即可)

#!/bin/bash
cd "$(dirname "$0")"

./qemu-system-ppc -L pc-bios -m 256 -hda ./hd.img -cdrom ./cd.iso -boot d -prom-env "auto-boot?=true" -M mac99

这些参数都已经直接预制好,如果你已经严格按照之前的操作,那么直接复制粘贴即可。保存好文件,然后双击脚本来启动QEMU;此时,QEMU将模拟一台Power Mac G4 Sawtooth电脑,具有256MB的内存,从光驱自动启动。启动后,我们双击打开光盘,运行「Drive Setup」(光盘——「Utilities」——「Drive Setup」),选择没有初始化的主硬盘,直接初始化一次,等待初始化完成。不要退出程序,再次点击刚初始化好的主硬盘,然后我们选择「Custom Setup」——Partitioning Scheme,改为Mac OS Server UFS,然后第二次初始化磁盘。这就直接准备好了安装的磁盘,避免了在第二阶段的安装中出现错误。

随后我们在光盘下直接启动安装程序。首先自然是语言选择,然后一路向下即可(由于模拟的是Sawtooth,Mac OS X Server直接支持,所以不存在真机上提示不支持的问题,更多说明请参阅上一篇文章)。安装磁盘选择我们刚刚初始化好的Mac OS Server UFS分区。

在最后安装程序设置从光盘上的Rhapsody环境启动第二阶段安装时,安装程序会报错。此时忽略掉它,选择Restart,QEMU不支持Restart所以会卡住。直接强制关闭QEMU,我们实际上已经准备好了进行第二阶段的安装,这个fatal error实际上不是那么fatal,而是吹响了成功的号角才对。

第二阶段安装

关闭QEMU之后,我们再次编辑参数,以便顺利启动Rhapsody:(依然以笔者的Mac OS X 10.13为例)

#!/bin/bash
cd "$(dirname "$0")"

./qemu-system-ppc -L pc-bios -m 256 -hda ./hd.img -cdrom ./cd.iso -boot d -prom-env "auto-boot?=false" -M g3beige -cpu g3 -prom-env "boot-args=-v"

这次的参数修改了auto-boot?为false以便顺利引导光盘上的Rhapsody分区,并且把机型从Sawtooth改为了Gossamer以避免输入设备模拟的错误,且Gossamer模拟可以顺利显示桌面而Sawtooth不能。不但如此,还设定了CPU为G3,并且加上了Verbose启动参数,方便我们一窥安装的究竟(实际上是可选的)。双击脚本再次启动QEMU,QEMU会停留在OpenBIOS,我们输入以下指令来直接启动光盘映像上的Rhapsody环境:

boot cd:9,\\:tbxi

这是一句Open Firmware命令,有实体机或是接触过的朋友是明白的,意味从CD的第九个分区启动tbxi——第九个分区就是光盘上Rhapsody的启动分区。屏幕一闪,Rhapsody开始加载,并且自动进行第一阶段的安装。安装完成之前,Mac OS X Server提示了一些NVRAM启动磁盘设置上的错误,这是可以忽略的(QEMU不模拟NVRAM);随后安装正常推进,屏幕打印出Restarting,此时QEMU会再次卡住。一个道理,我们再次强制关闭QEMU,准备第三阶段安装即可。

第三阶段安装,Rhapsody初次设置

第三阶段安装前我们再次编辑参数,以便QEMU从硬盘上安装好的Rhapsody启动:

#!/bin/bash
cd "$(dirname "$0")"

./qemu-system-ppc -L pc-bios -m 256 -hda ./hd.img -cdrom ./cd.iso -boot c -prom-env "auto-boot?=true" -M g3beige -cpu g3 -prom-env "boot-args=-v"

这次的修改,将启动磁盘从CD光盘镜像改为了虚拟磁盘,然后将auto-boot?再次调整为了true;毕竟硬盘上的Rhapsody无需手动进行引导。机型依然是Gossamer。双击脚本第三次启动QEMU,Rhapsody会首次启动到图形下进行第三阶段安装。由于QEMU性能差,这段安装会持续一段时间,直到安装程序重新启动并卡死时我们再次强制关闭QEMU即可。

这次强制关闭后,无需修改参数,就直接再次启动QEMU即可。片刻等待后进入设置助理,进行Rhapsody初次设置。由于网卡的缺失我们不要启动以及安装任何服务,以免造成Rhapsody之后由于等待网络响应而无法启动,成为一次性安装。

退出设置向导之后,在登录框,键入root和刚设置的密码,就可以登录进系统了。此时安装就告一段落,你便拥有了一个在模拟器里正常运行的Rhapsody 5.6。

拓展阅读

赞赏站长

本站是原创性质的个人站点,站长拥有所有原创内容的著作权,版权所有。

站长欢迎任何人利用本站内容进行高质量的二次创作,但必须为站长署名(@paizhangpi 或 @paizhang),并附上本站的链接,或事先与站长协商授权事宜。除此之外,严禁任何人盗用本站包括图片在内的任何原创内容,形式包括但不限于低质量或未署名的二创或使用、转载、抄袭、引用、改编、翻译,乃至用于商业用途等。以上行为一经发现,将会追究到底。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据