至于为什么要装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. linux--------wdcp中的各种坑。

    1.刚买的空间客服给安装了wdcplinux,结果上去一看PHP是5.2版本的,这不是搞笑嘛.然后就有了下面的升级: 复制这条命令回车然后敲Y就可以: wget http://soft.itbulu. ...

  2. paper 95:《模式识别和机器学习》资源

    Bishop的<模式识别和机器学习>是该领域的经典教材,本文搜罗了有关的教程和读书笔记,供对比学习之用,主要搜索的资源包括CSDN:http://download.csdn.net/sea ...

  3. MVC异常日志生产者消费者模式记录(异常过滤器)

    生产者消费者模式 定义自己的异常过滤器并注册 namespace Eco.Web.App.Models { public class MyExceptionAttribute : HandleErro ...

  4. Android DrawerLayout Plus 增强版抽屉菜单

    DrawerLayout是官方提供的侧滑菜单,相比SliddingMenu,它更加轻量级.默认情况下,DrawerLayout可以设置左侧或者右侧滑出菜单.如下,   xml布局: <!-- & ...

  5. mysql常用操作语句(转)

      mysql -u root -p mysql -h localhost -u root -p database_name 2.列出数据库: show databases; 3.选择数据库: use ...

  6. js与jsp

    jsp :j2ee 中的一样模版技术,运行于服务器端javascript :一种运行于客户端的脚本语言,动态性.JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的 ...

  7. websphere如何删除应用程序服务器(概要管理工具)

    在IBM WebSphere 的概要管理工具中我们可以新建一个应用程序服务器,但是工具中并未提供删除已经建过的应用程序服务器.下面 交大家一个比较简单的方法来删除应用程序服务器 图片中可以看到,我已经 ...

  8. noi 2718 移动路线

    题目链接: http://noi.openjudge.cn/ch0206/2718/ 右上角的方案数 f(m,n) = f(m-1,n) + f(m,n-1); http://paste.ubuntu ...

  9. bat 自动编译运行

    @echo off g++ %1 -Wall -Wextra --std=c++98 -O3 -DNDEBUG -D_NDEBUG -D_GLIBCXX_NO_ASSERT ^ -U_STLP_DEB ...

  10. GridControl

    隐藏Drag a column header here to group by that column https://www.devexpress.com/Support/Center/Questi ...