本文介绍如何在Ubuntu下安装Mac OS X Mavericks系统。具体如下:

1)安装前准备工作

下载Mac OS X Mavericks系统,地址:http://pan.baidu.com/s/1dDDzXbb 。

需要下载的文件有:HackBoot_Mav.iso、OSXMavericks2.part1.rar 、OSXMavericks2.part2.rar 、OSXMavericks2.part3.rar。然后将压缩包解压备用。解压后的结果如下:

然后还需要下载去Virtualbox官网下载:Virtualbox、Oracle_VM_VirtualBox_Extension_Pack-4.3.14-95030.vbox-extpack。地址:https://www.virtualbox.org/wiki/Downloads

找linux系统中对应的发行版,对应的系统位数(32位或64位)的安装包下载安装即可。比如下载了virtualbox-4.3_4.3.14-95030~Ubuntu~raring_amd64.deb文件包。可以使用如下命令安装:

  1. $ sudo dpkg -i virtualbox-4.3_4.3.14-95030~Ubuntu~raring_amd64.deb

或者直接点击安装包,ubuntu会使用软件中心进行安装。

安装好virtualbox之后,可以右键点击Oracle_VM_VirtualBox_Extension_Pack-4.3.14-95030.vbox-extpack,选择Open With VirtualBox,然后virtualbox就会自行进行安装。

2)在Virtualbox中新建虚拟电脑


选择next,进入下一步:

继续选择next,如下:

点击create。

点击create。

点击next。

点击next。

点击create。完成创建过程。

3)设置系统的配置

在virtualbox的设置中,选择System。如下:

将上图中用红色标记的地方的勾选去掉。去掉后如下:

点击上图中的Disaplay选择。进行如下设置:

点击上图中的Storage选项。如下:

点击上图中的红色框住的按钮,选择Add CD/DVD Device,如下:

点击上图中的choose disk按钮。选择之前下载的HackBoot_Mav.iso文件。选择好后,如下:

点击ok按钮,保存上述设置。然后启动刚才新建的Mac OS X Mavericks虚拟机。在引导盘的引导下,会进入如下界面:

在虚拟机菜单 CD / DVD Drive -> Choose a virtual CD/DVD disk file 选择 OSXMavericks2.iso 文件。

按键 F5刷新后, 图标标签变为 OS X Base System,回车开始安装系统。

启动过程可能停在这里一分钟。

选择安装语言。

安装系统开始时,找不到任何有效的硬盘 , 使用菜单 实用工具 ->磁盘工具  格式化虚拟硬盘。

左边点选硬盘, 选择 "抹掉", 名称 Name 录入 "Mavericks",  然后点击 Erase 抹掉。

格式化完毕, 关闭磁盘工具后, 点选 Mavericks 磁盘, 点击 安装。

安装系统需要 30 分钟以上,耐心等待。

安装系统后, 需要重新启动, 虚拟机选 Close 及 Power Off 关闭虚拟机。

关闭 Mac OS X Mavericks 虚拟机后, 在设置的 Storage -> Storage Type  Controller SATA 属性 退出 OSXMavericks2.iso。

点击下面的那个删除按钮,就会弹出上图所示的对话框,点击remove即可。

然后CD / DVD Drive 的光盘图标 Add CD/DVD Drive 选择 HackBoot_Mav.iso 文件。类似上篇时介绍的那样。添加好后如下图:

启动Mac OS X Mavericks虚拟机。在引导盘的引导下,会进入如下界面:

在虚拟机菜单 CD / DVD Drive -> Choose a virtual CD/DVD disk file 选择 OSXMavericks2.iso 文件。

按键 F5刷新后, OSX Boot 图标标签变为 OS X Base System(绿灯亮),回车再次进入安装系统。

启动过程可能停在这里一分钟:

再次进入安装系统,这次选实用工具菜单  -> 终端:

进入终端, 安装内核扩展,依次输入命令:

  1. umount /Volumes/Mavericks
  2. hdiutil attach /dev/disk0s2 -mountpoint /Volumes/mnt
  3. cp -rp /Backup/Kexts/ElliottForceLegacyRTC.kext /Volumes/mnt/System/Library/Extensions
  4. cp -rp /Backup/Kexts/FakeSMC.kext /Volumes/mnt/System/Library/Extensions
  5. cp -rp /Backup/Kexts/NullCPUPowerManagement.kext /Volumes/mnt/System/Library/Extensions
  6. chmod -R 0755 /Volumes/mnt/System/Library/Extensions/ElliottForceLegacyRTC.kext
  7. chmod -R 0755 /Volumes/mnt/System/Library/Extensions/FakeSMC.kext
  8. chmod -R 0755 /Volumes/mnt/System/Library/Extensions/NullCPUPowerManagement.kext
  9. chown -R root:wheel /Volumes/mnt/System/Library/Extensions/ElliottForceLegacyRTC.kext
  10. chown -R root:wheel /Volumes/mnt/System/Library/Extensions/FakeSMC.kext
  11. chown -R root:wheel /Volumes/mnt/System/Library/Extensions/NullCPUPowerManagement.kext
  12. hdiutil detach /Volumes/mnt

安装内核扩展后, 退出终端后, 必须等待虚拟机的硬盘指示灯熄灭, Power Off 关闭虚拟机:

关闭 Mac OS X Mavericks 虚拟机后, 在设置的 Storage -> Storage Type  Controller SATA 属性 CD / DVD Drive 的光盘图标 Add CD/DVD Drive 选择 HackBoot_Mav.iso

删除上图中的OSXMavericks2.iso,添加HackBoot_Mav.iso。效果如下:

在 HackBoot_Mav.iso 的启动引导下, 如下 OSX Boot 页面出现后 , 使用右键选择启动 Mavericks (绿灯亮),回车开始启动系统:

启动 Mac OS X Mavericks 虚拟机文件后, 进入 Mac OS X 设置国家 :

输入用户名称和用户初始密码:

完成其他安装步骤后,不要启动 iCloud 也不要注册, 并成功进入 Mac OS X 系统:

在苹果菜单 -> 系统偏好设置(System Preferences) -> "安全性与私隐" 里面选择 “任何来源” (用于安装 MultiBeast):

使用 Mac OS X Mavericks 的 Safari, 下载   MultiBeast 6.1  : http://pan.baidu.com/s/1sjCUOGH。自动解压后的文件是在 下载 文件夹里面, 双击 MultiBeast 启动安装:

点选 Build 及最后点击右下角的 Install 开始安装:

等待几分钟后,安装完毕后, 关机。

关机及关闭 Mac OS X Mavericks 虚拟机后,  打开 VirtualBOX 设置虚拟机, 在 Storage -> Controller SATA 属性退出 HackBoot_Mav.iso 文件。退出后的结果如下所示:

在虚拟机设置的 系统 -> 主板 勾选 "启用 Enable EFI":

启动虚拟电脑, 会直接启动 Mac OS X Mavericks 虚拟硬盘,  以后并不需要 Hackboot_Mav.iso 光盘文件的引导:

最终的效果如下图:

【起航计划ObjC 002】印第安老斑鸠ObjC的幻想 ---- Ubuntu下安装并使用MAC虚拟机的更多相关文章

  1. 【起航计划ObjC 003】印第安老斑鸠ObjC的幻想 ---- ObjC经典问题

    1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和#include的区别是什么?#import<> 跟 #im ...

  2. 【起航计划ObjC 001】印第安老斑鸠ObjC的幻想 ---- Ubuntu下安装并使用Obj-C

    如何在最新版本的 Ubuntu下(14.10)来安装.编译Objective-C? Ubuntu已经有了对Objective-C的编译器(gobjc)的安装,因此安装gobjc的步骤可省,如果你用的U ...

  3. Ubuntu下安装Wine&WineQQ+Phpstorm+wps+svn+vim(计划任的使用)+flashplayer+curl扩展

    一.安装Wine 1.添加PPA sudo add-apt-repository ppa:ubuntu-wine/ppa 2.更新列表 sudo apt-get update 3.安装Wine sud ...

  4. 【起航计划 002】2015 起航计划 Android APIDemo的魔鬼步伐 01

    本文链接:[起航计划 002]2015 起航计划 Android APIDemo的魔鬼步伐 01 参考链接:http://blog.csdn.net/column/details/mapdigitap ...

  5. Ubuntu下的计划任务 -- cron的基本知识

    下面不完全: 参考:http://blog.csdn.net/cuker919/article/details/6336457 cron是一个Linux下的后台进程,用来定期的执行一些任务.因为我用的 ...

  6. 【起航计划 037】2015 起航计划 Android APIDemo的魔鬼步伐 36 App->Service->Remote Service Binding AIDL实现不同进程间调用服务接口 kill 进程

    本例和下个例子Remote Service Controller 涉及到的文件有RemoteService.java ,IRemoteService.aidl, IRemoteServiceCallb ...

  7. 【起航计划 036】2015 起航计划 Android APIDemo的魔鬼步伐 35 App->Service->Messenger Service Messenger实现进程间通信

    前面LocalService 主要是提供同一Application中组件来使用,如果希望支持不同应用或进程使用Service.可以通过Messenger.使用Messgener可以用来支持进程间通信而 ...

  8. 【起航计划 035】2015 起航计划 Android APIDemo的魔鬼步伐 34 App->Service->Local Service Controller

    Local Service Controller 是将LocalService当作“Started”Service来使用,相对于”Bound” Service 来说,这种模式用法要简单得多,Local ...

  9. 【起航计划 034】2015 起航计划 Android APIDemo的魔鬼步伐 33 App->Service->Local Service Binding 绑定服务 ServiceConnection Binder

    本例和下列Local Service Controller 的Activity代码都定义在LocalServiceActivities.Java 中,作为LocalServiceActivities ...

随机推荐

  1. A Simple Problem with Integers(线段树区间更新复习,lazy数组的应用)-------------------蓝桥备战系列

    You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of op ...

  2. Jquery动态绑定事件处理函数 bind / on / delegate

    1.bind方法绑定的事件处理函数不会应用到后来添加到DOM中的新元素.比如你在用bind给页面元素绑定事件之后,又新添加了一些与之前绑定过事件的元素一样的DOM元素,但是这些事件并不能在新的DOM元 ...

  3. 1152 Google Recruitment (20 分)

    In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the p ...

  4. HTML5本地存储和本地的数据库

    一个网站如何能在客户的浏览器存储更多的数据呢? 在Html4的时代在浏览器端存储点网站个性化的数据,尤其是用户浏览器的痕迹,用户的相关数据等一般只能存储在Cookie中,但是大多是浏览器对于Cooki ...

  5. Valgrind 检测程序内存使用

    Valgrind是用于构建动态分析工具的探测框架.它包括一个工具集,每个工具执行某种类型的调试.分析或类似的任务,以帮助完善你的程序.Valgrind的架构是模块化的,所以可以容易地创建新的工具而又不 ...

  6. Flutter 导入 import 'package:english_words/english_words.dart'

    import 'package:flutter/material.dart';import 'package:english_words/english_words.dart'; // 导入的包 vo ...

  7. UML-1-面向对象分析和设计

    1.关键词: OOA:Object-Oriented Analysis.面向对象分析.抽取对象或概念,如:航班系统包含 飞机(Plane).航班(Flight)等概念. OOD:Object-Orie ...

  8. JS中String()与.toString()的区别

    1..toString()可以将所有的的数据都转换为字符串,但是要排除null 和 undefined 例如将false转为字符串类型 <script> var str = false.t ...

  9. Java 单向链表学习

    Java 单向链表学习 链表等同于动态的数组:可以不同设定固定的空间,根据需要的内容动态的改变链表的占用空间和动态的数组同一形式:链表的使用可以更加便于操作. 链表的基本结构包括:链表工具类和节点类, ...

  10. gradle cache目录(.gradle)剖析

    https://zhuanlan.zhihu.com/p/26473930 gradle下载后会对文件路径进行修饰,本文给出反向解析,把文件路径修改为原始路径的办法. 之所以研究这个,本来的目的是为了 ...