在 QEMU 和 KVM 上运行 OS X Mavericks 【已翻译100%】

简介:

今天,OS X虚拟化是一件很容易搞定的事情,因为OS X主机完全支持VMware和VirtualBox。 但是在裸机和QEMU上虚拟化会是什么情况呢?在Linux下呢?最终我在QEMU上完全搞定了Mavericks (没有额外内核拓展哦(!)),不过真不容易。

工作人员
许多关于这件事的工作都归于 Gabriel L. Somlo ,他完成了这件事的初步工作,然而我不能从他的指南里得到任何干净的安装引导的OS X Mavericks 版本。因此我只能自己调试了。

为什么?

云中OS X. 这是一个仅供娱乐的项目来看看是否我能在一个专用服务器上得到一个虚拟化的OS X, 并且我成功了。注意,这仅用于教学目的,并且不被推荐 -- 没有稳定性的保障,另外可能违背苹果的用户最终许可协议。

要准备的东西

为了完成安装,你需要做如下准备:

  • 可以运行KVM的机器
  • bash shell基本知识
  • Mavericks .ISO (由这个shell脚本生成)
  • Mountain Lion .ISO (由这个shell脚本生成)
  • git
  • build-essential (gcc, make, iasl, linux内核headers)

上面的两个shell脚本是相同的,它适用于这两个版本的OS X。

安装带OS X支持的KVM
首先你需要从git仓库下载最新的KVM代码(这是必须的,因为atp或yum仓库中的KVM没有OS X的补丁)。你也需要git仓库中的kvm-kmod代码,你可以通过以下命令获得并构建它们。

安装最新的带OS X支持的QEMU
我们要从git仓库中下载最新的且打过支持OS X补丁的QEMU和SeaBIOS。

Chameleon bootloader引导进入安装程序和OS X
你可以在安装OS X之后将Chameleon安装到磁盘,但方便起见,我们可以向QEMU传送一个二进制文件来启动Chameleon。

下载这个二进制文件并将它放到与刚才下载的文件夹相同的目录中。

安装 Mountain Lion
在我们安装Mavericks之前,我们必须先安装 Mountain Lion,然后再进行升级(这是由于直接安装Mavericks会导致QEMU卡住)。

现在,确保你的 Mountain Lion 和 Mavericks 的 .ISO 文件在同一个目录中,从现在开始,我用 MountainLion.iso 和 Mavericks.iso 来称呼它们。

现在,我们需要创建一个空白的文件来安装OS X(待会儿可以用dd将这拷贝到一个LVM或分区中,但是,不幸的是,在分区被使用的时候,我没有得到用来启动的安装器)。

qemu-img create -f qcow2 osx.img 30G

我们必须使用下面的命令来启动这个客户机:

你可能需要输入一个key,该key可以在一个Apple的电脑中使用这里的第一块代码获得。

你需要将./share/qemu/bios-mac.bin 路径替换成你自己的路径(相对你当前的路径,这可能在一个./share 或 ./usr/share中)。

这将会在localhost:5901上开启一个VNC会话,可以连接到该会话,并启动到安装器!

这里的 -smp 定义了客户机中可以使用的核心数。我将它设为4,并且工作很好。但是,只是用一个核也可以使OS X运行的很好。

正常安装OS X,之后按照下一节的内容继续进行。

升级到 Mavericks
这一步和上面的非常像,使用下面的命令打开同一个客户机:

在Chameleon中,确保从"OS X Base System"(你的.iso文件) 中启动,而不是你的HDD。然后在同一个分区中以正常的方式安装Mavericks,一定不要格式化该分区。

这步完成之后,你就有了一个可以正常工作的Mavericks了!

没有Kexts?

这是一个完全原生的系统,不需要对kext做任何改动,甚至都不需要FakeSMC。我没有使用FakeSMC做过测试,但是它应该可以正常工作。

网络

现在,QEMU默认的网卡驱动并不好使,建议你使用 virtio。你可以通过以下方式下载它:

接下来,将下面的命令添加到上面提到的命令中,运行一个客户机,然后安装从挂载的FAT驱动器中安装.pkg文件,之后重启,网卡就可以正常工作了!

相关文章
|
1月前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
34 0
|
1月前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
28 0
|
8月前
|
Java Linux Windows
在Windows操作系统上运行Java程序
在Windows操作系统上运行Java程序
79 2
|
4天前
|
Java 开发工具
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
|
1月前
|
Linux
Linux操作系统调优相关工具(二)查看Memory运行状态相关工具
Linux操作系统调优相关工具(二)查看Memory运行状态相关工具
16 0
|
6月前
|
Web App开发 缓存 安全
让你的win10/win11系统变得不再卡顿,优雅草伊凡整理-长期更新-如何让windows操作系统不用老是重装依然保持流畅运行
如题:让你的win10/win11系统变得不再卡顿,优雅草伊凡整理-长期更新-如何让windows操作系统不用老是重装在不断的更新中依然保持流畅运行 本文长期更新,本次更新2023年11月8日! 很多时候 我们的win10win11系统不管再怎么关闭更新,都会莫名又被打开,莫名的关机和自动更新,总是在你不注意的时候就更新,因此大家也明白微软的厉害了,扯远了,但是频繁的更新会让系统特别卡,传统办法就是重装系统,因而还衍生了很多一件重装工具,但是每一次重装的代价都是巨大的我相信每个同学都明白。
|
6月前
|
存储
【OS Pintos】用户程序是如何工作的 | Pintos 运行原理 | 虚拟内存 | 页函数 | 系统调用
【OS Pintos】用户程序是如何工作的 | Pintos 运行原理 | 虚拟内存 | 页函数 | 系统调用
171 0
|
6月前
|
测试技术 KVM 开发工具
【OS Pintos】Pintos 内核库基本数据结构 | 运行测试用例 alarm-multiple
【OS Pintos】Pintos 内核库基本数据结构 | 运行测试用例 alarm-multiple
77 0
|
2月前
|
Go 调度
|
9月前
|
测试技术 虚拟化
在同一物理服务器上同时运行多个独立的操作系统实例
在同一物理服务器上同时运行多个独立的操作系统实例
243 1