macbook上实现MacOS+Windows8+Ubuntu三系统
至于为什么要装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三系统的更多相关文章
- kali linux 、 windows、ubuntu三系统的引导问题
'小飞机'是一个学生,所以接触的东西,虽广泛,但并不精通,在此利用随笔,记录自己的一些学习过程,以及自己的想法,既可以有时间自己复习,也可以顺便帮助别人. 近期由于同学的引诱以及男生天生对于破解的好奇 ...
- 神舟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 ...
- [Linux]三种方案在Windows系统下安装ubuntu双系统(转)
在学习linux的过程中,ubuntu无疑是初学者的最佳选择. 下面来列举给Windows系统安装ubuntu双系统的三种方法. 一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已 ...
- ubuntu,kali linux和windows三系统流水账——写给自己
我先说一下ubuntu和windows双系统安装的几种方法,最后总结kali linux的安装,想起什么写什么,所以有点乱.然后记录一下自己的使用过程中遇见的问题和解决的方法,还有我的个人建议. 我个 ...
- Windows7上安装Ubuntu双系统
零.前言 最近不小心把Ubuntu系统搞崩了打不开了,在网上找了找方法,从最初的步骤开始安装,本文是安装Ubuntu16.04,不过安装啥版本步骤都一样,下面逐一介绍. 一.如何卸载Ubuntu(第一 ...
- 这可能是史上最全的windows10装ubuntu双系统教程
一. 先搞清楚自己电脑的类型: A MBR传统bios+单硬盘 B MBR传统bios+双硬盘(SSD固态硬盘+机械硬盘) C UEFI新式bios+单硬盘 D UEFI新式bios+双硬盘( ...
- Ubuntu Linux系统三种方法添加本地软件库
闲着没事教教大家以Ubuntu Linux系统三种方法添加本地软件库,ubuntu Linux使用本地软件包作为安装源——转2007-04-26 19:47新手重新系统的概率很高,每次重装系统后都要经 ...
- 三种方案在Windows系统下安装ubuntu双系统
一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已,比如Mac OS对硬件不兼容,Federa安装频繁出错,各种驱动不全等等,不推荐使用虚拟机安装. 个人感觉这是一种对操作系统的亵 ...
- mac上安装ubuntu双系统
mac和ubuntu双系统 mac系统安装ubuntu双系统的方法, mac系统要安装ubuntu, 必须使用u盘作为启动盘, 在mac启动的时候引导mac安装ubuntu, 下面为详细的安装方法: ...
随机推荐
- 史上最易懂的Android jni开发资料--NDK环境搭建
谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK.而在NDKr7开始,Google的Windows版的NDK提供 ...
- C# 中using的几个用途
参考文献 http://www.cnblogs.com/morningwang/archive/2008/03/12/1102952.html http://msdn.microsoft.com/zh ...
- tar命令参数笔记
是指的linux下的tar命令,该命令的用法相当多,以下的内容来自tar的info手册 --numeric-owner This option will notify 'tar' thar it sh ...
- ql Server 高频,高并发访问中的键查找死锁解析
死锁对于DBA或是数据库开发人员而言并不陌生,它的引发多种多样,一般而言,数据库应用的开发者在设计时都会有一定的考量进而尽量避免死锁的产生.但有时因为一些特殊应用场景如高频查询,高并发查询下由于数据库 ...
- UBI系统原理分析【转】
转自:http://blog.chinaunix.net/uid-28236237-id-4164656.html 综述 UBI全称Unsorted Block Images,是一种原始flash设备 ...
- Java通过继承thread类与实现Runnable接口实现多线程的区别
Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过实现Runnable接口,实例化Thread类 一.通过继承T ...
- 一个平台BUG,好吧,找到了一个新的办法,同样的效果
问题的来源,我是看到别人这么做,我只是看到了这个程序运行的视频,具体是当你选择通信方式时1 COM , 2 网口:要求在combobox中选择,selectindex为0时显示COM的选项,为1 ...
- win7 64 旗舰版虚拟GPU-VMware下+vs2013安装caffe+matlab+python
转发请说明来处 Win7配置caffe(无GPU) 配置环境: 必须:win7 64 + vs2013 Win7 64位旗舰版要升级到service spack(因为是在vs2013下,想安装vs20 ...
- HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTT ...
- Oracle指定运行变量
1定义:运行时变量可以让我们和sql语句之间有个交互,允许我们执行sql语句时动态传递参数 2.语法: &varName 3.运行时变量可以出现在任意位置 例如: select &co ...