至于为什么要装win和linux就不说了,本文只解释安装过程。

GPT vs MBR

MacOS下装另外两个系统的一个基本问题是:硬盘使用GPT分区,它和常见的MBR分区是两个硬盘分区方式。 它们的主要区别有:

  • MBR分区方式最多支持三个主分区加一个扩展分区,在扩展分区中可以存在多个逻辑分区。 而GPT分区方式不区分主分区和扩展分区,也没有四个分区的限制。

  • MBR的使用BIOS引导,而GPT使用efi引导,引导区位于磁盘开头的第一个分区,如/dev/sda1

最新的windows和ubuntu都支持GPT分区方式。本文使用windows8专业版和ubuntu14.04LTS。 需要的工具包括:一个U盘,windows和ubuntu的安装文件iso。

硬盘分区检查

当然,首先要在Mac下将windows和linxu的分区分好。使用mac自带的磁盘工具即可。

安装前需要先检查硬盘的分区表。为了支持某些仅能在MBR下使用的工具,GPT分区可以模拟MBR分区方式, 称为hybrid MBR。而我们需要在纯GPT下安装,所以需要将hybrid MBR禁掉,使用protective MBR模式。 之所以不能使用hybrid MBR模式,是因为,efi引导方式下,windows的安装目标分区不能是MBR分区。 如果在hybrid模式下安装windows,那么只能使用非efi方式安装。而这样安装后,mac的键盘和触摸板都无法使用, 甚至外接usb键盘也无效。至于原因笔者没有深入研究,只是实测如此。

这里需要用到gdisk工具。运行sudo gdisk /dev/diskX(通常是disk0),如果显示的是"MBR: protective", 那么不需要改动。如果是"MBR: hybrid",则使用x-n命令,重新建立protective MBR。使用w将改动写入磁盘。 (建议操作前使用b命令备份分区表。)

顺便说一句,gdisk可以建立hybrid MBR分区表,也就是在GPT上模拟MBR。命令是r-h。 其中第一个分区(即GPT的引导分区)是默认映射到MBR第一个分区的,而后面三个分区是可以自己指定的, 也就是说我们可以从GPT的分区中任意挑三个,组成MBR。

安装Windows

这里要用到mac下的bootcamp,一般随机自带。用它讲windows的iso写到u盘中制作安装盘, 其中会自动下载苹果相关的驱动。

完成后重启,按住option键,将显示引导选项。刚才装的安装u盘将出现两个引导项,一个是windows, 另一个是efi,选后者,在efi模式下安装windows。重复一下,如果分区上有hybrid MBR,使用efi引导 的windows会提示无法安装到目标分区。

剩下的工作就是等待加重启,重启时按住option即可看到新装的windowns系统。 完成后安装一下驱动即可(运行启动u盘的driver/setup.exe)

安装ubuntu

制作安装盘,虽然网上各种说efi下的ubuntu安装盘要如何如何,但是笔者实证,用dd命令将iso写到u盘上即可。 安装过程和和普通安装并无区别,但是遇到一个问题是,安装完后按住option重启,无法看到新装的ubuntu。 问题应该处在mac的efi引导程序不认识新装的ubuntu。笔者在网上搜过一些内容,试过重装grub,但是无效。 最后是安装了一个refit解决的。安装过程很简单,安装后在/efi/refit目录下运行enable.sh即可。 refit能够认出ubuntu系统。另外refit也能认出mac和windows系统,所以开机时不需要再按option键, 就可以实现多重启动了。

macbook上实现MacOS+Windows8+Ubuntu三系统的更多相关文章

  1. kali linux 、 windows、ubuntu三系统的引导问题

    '小飞机'是一个学生,所以接触的东西,虽广泛,但并不精通,在此利用随笔,记录自己的一些学习过程,以及自己的想法,既可以有时间自己复习,也可以顺便帮助别人. 近期由于同学的引诱以及男生天生对于破解的好奇 ...

  2. 神舟K650c i7(W350STQ)上成功装好Mac OS X 10.9,兼谈如何安装WinXP、7、8.1、OSX、Ubuntu五系统(Chameleon、MBR)

    作者:zyl910 参考教程——http://bbs.pcbeta.com/viewthread-1432534-1-4.html笔记本SNB和IVY平台Win7/Win8/Win8.1安装OS X ...

  3. [Linux]三种方案在Windows系统下安装ubuntu双系统(转)

    在学习linux的过程中,ubuntu无疑是初学者的最佳选择. 下面来列举给Windows系统安装ubuntu双系统的三种方法. 一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已 ...

  4. ubuntu,kali linux和windows三系统流水账——写给自己

    我先说一下ubuntu和windows双系统安装的几种方法,最后总结kali linux的安装,想起什么写什么,所以有点乱.然后记录一下自己的使用过程中遇见的问题和解决的方法,还有我的个人建议. 我个 ...

  5. Windows7上安装Ubuntu双系统

    零.前言 最近不小心把Ubuntu系统搞崩了打不开了,在网上找了找方法,从最初的步骤开始安装,本文是安装Ubuntu16.04,不过安装啥版本步骤都一样,下面逐一介绍. 一.如何卸载Ubuntu(第一 ...

  6. 这可能是史上最全的windows10装ubuntu双系统教程

    一. 先搞清楚自己电脑的类型: A  MBR传统bios+单硬盘 B  MBR传统bios+双硬盘(SSD固态硬盘+机械硬盘) C  UEFI新式bios+单硬盘 D  UEFI新式bios+双硬盘( ...

  7. Ubuntu Linux系统三种方法添加本地软件库

    闲着没事教教大家以Ubuntu Linux系统三种方法添加本地软件库,ubuntu Linux使用本地软件包作为安装源——转2007-04-26 19:47新手重新系统的概率很高,每次重装系统后都要经 ...

  8. 三种方案在Windows系统下安装ubuntu双系统

    一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已,比如Mac OS对硬件不兼容,Federa安装频繁出错,各种驱动不全等等,不推荐使用虚拟机安装. 个人感觉这是一种对操作系统的亵 ...

  9. mac上安装ubuntu双系统

    mac和ubuntu双系统 mac系统安装ubuntu双系统的方法, mac系统要安装ubuntu, 必须使用u盘作为启动盘, 在mac启动的时候引导mac安装ubuntu, 下面为详细的安装方法: ...

随机推荐

  1. ActiveMQ的使用笔记(基本实现原理)

    具体原理不进行深入,会用就好. 第一:当然是先安装ActiveMQ,选择操作系统位数,安装成功以后,输入网址http://ip:8161/admin/,会出现相关页面,账号密码都是admin.在这个页 ...

  2. 【Selenium】1.介绍 Selenium

    本文供学习交流之用,没有商业用途,没有盈利. 完全是我自己为督促自己学习而翻译的.翻译的不好,见谅.来源于:http://www.guru99.com/introduction-to-selenium ...

  3. ajax异步处理时,如何在JS中获取从Servlet或者Action中session,request

    ssh项目中,我需要登陆某个页面(如a.jsp),通过onblur()鼠标失去焦点后来触发js函数(函数是ajax请求)请求到相应的action,处理完成后将数据存放到session对象里面,然后在a ...

  4. 【001:ubuntu下搭建ESP8266开发环境--编辑 编译 下载】

    系统环境:ubuntu 16.04 TLS 64BIT 编辑器: Eclipse CDT 版本 编译器:xtensa-lx106-elf 交叉编译工具链 下载工具:esptool.py pyseria ...

  5. Url中處理空格、特殊字符

    publicvoid UrlEncodeTest(){    string url ="C++ C#";    Console.WriteLine(HttpUtility.UrlE ...

  6. 18. 星际争霸之php设计模式--观察者模式

    题记==============================================================================本php设计模式专辑来源于博客(jymo ...

  7. easyui datagrid将表头的checkbox不显示(隐藏)

    <script type="text/javascript"> $(function(){ $("#dg").datagrid({ url:&quo ...

  8. 自己封装的 recyclerView的 BaseAdapter,带item点击和长按事件。

    第一种是把创建viewholder的步骤给子类来做. 第二种是参照陈宇明的博客,试着只暴露给子类设置holder属性的方法.(还未测试条目中控件的点击事件能否成功) 代码如下: /** * Creat ...

  9. js基础的知识整理

    一.操作样式: .style   操作行间样式 .className 修改class 二.操作属性 1. .  更简单,操作已有的属性 2. [] 更灵活,点能做的,方括号都能做.方括号中放的是字符串 ...

  10. 回传数据startActivityForResult()

    1.调用者Activity01开启新的界面选用startActivityForResult(intent,requestCode);在Activity01中Intent intent=new Inte ...