2023年11月24日发(作者:)

Mac安装Windows 10,双系统,多分区

目录

Mac安装Windows 10,双系统,多分区...................................................................................... 1

一、最终效果 ........................................................................................................................... 1

二、原理 ................................................................................................................................... 2

三、硬盘分区 ........................................................................................................................... 2

(一)禁用 Core Storage ................................................................................................. 2

(二)分区规划 ............................................................................................................... 3

(三)分区方法 ............................................................................................................... 4

四、安装 ................................................................................................................................... 8

五、补充说明 ......................................................................................................................... 11

1. 为什么不用BootCamp向导? ................................................................................. 11

2. Windows 7 可以用本文的方法安装吗? ............................................................... 11

3. 当心Windows磁盘工具 ........................................................................................... 12

六、参考 ................................................................................................................................. 12

一、最终效果

不改动已有osx系统,硬盘添加分区,添加安装Windows 10,双系统启动

硬盘采用GPT分区,纯EFI启动,告别MBRBIOS兼容模式

硬盘多分区,操作系统和数据在不同分区,重装系统不影响数据分区

不用BootCamp,不用虚拟机

二、原理

Mac电脑硬盘只有一个分区,osx操作系统和我们自己的文件都保存在这个分区下,收

缩这个分区,划出空闲空间,在空闲空间上新建几个分区,然后把Windows系统安装在其中

一个分区即可。

OSX系统自带的磁盘工具支持收缩分区,划出空闲空间;

GPT格式支持128个甚至更多分区,不像MBR只支持4个分区;

EFI本身就支持从多个分区启动,不像MBR只能指定一个启动分区;

Windows 10 64位完全支持EFIGPT分区,并且可以在安装过程中自动向EFI添加

开机启动项(开机按Option键(Alt键)即可看到启动选项)。

三、硬盘分区

分区是操作的重点,分好了区,安装操作系统是比较容易的傻瓜式操作。

警告:不要用UWinPE启动并用自带的分区工具分区或修复分区。因为很多U盘系统

自带的分区工具是基于MBR的,没法识别GPT分区表,用它们修复分区表反而会把分区表改

错。

进入osx系统,用osx系统自带的磁盘工具收缩磁盘,增加分区。

(一)禁用 Core Storage

可是近几年上市的mac都启用了coreStorage,导致硬盘只能新增一个分区,不能随意

分区。需要禁用coreStorage,使硬盘可以随意分区。

coreStorage是处于硬盘底层分区之上的一个虚拟程序,主要用于Fusion Drive,因为

高速的固态硬盘价格太高,苹果就用一块很小的固态硬盘保存经常使用的程序、文件,而把

不常使用的其他程序、文件放在大容量、低成本的普通硬盘上,这样合二为一的两块硬盘就

Fusion DrivecoreStorage就是处在底层硬盘之上,将两块硬盘合二为一,将常用程序

放在高速硬盘上,将不常用的放在低速硬盘上,对上层其他程序模拟出一块而不是两块硬盘。

因此,如果你的电脑没有配置 Fusion Drive 就完全可以禁用coreStorage我的mac

没有配置Fusion Drive,因此没有进一步研究Fusion Drive应该如何处理。

禁用coreStorage很简单,一条命令: diskutil cs revert 。在osx系统中,打开

终端(Terminal),运行“sudo diskutil cs revert”。

(二)分区规划

硬盘分区可以根据需要,几十上百个分区都可以,我的硬盘分区如下:

$ diskutil list (Terminal (终端)命令)

1: EFI分区: GPT分区格式第一个分区,也叫ESPEFI System Partition)分区,

保存着硬盘上各个操作系统的引导程序, Windows 10 安装时会自动在其中创建自己的引导

程序,这个分区系统自带,我们只是要注意不要不小心删、改了这个分区。

2Yosemite分区: 我指定的OSX系统分区,原有osx系统分区压缩后得到。

3: Recovery HD分区:mac自带的系统恢复程序所用分区,不要删、改这个分区。

4: Yosemite tmBak分区:这是我创建的HFS+分区,用于保存Time Machine备份。以

便重装osx系统。这个不是必须的。

5: Microsoft Reserved分区:这是微软要求的,在GPT分区硬盘上安装Windows78

10所需的分区,原因请参考 Wikipedia: Microsoft Reserved Partition MSDN

UEFI/GPT-based hard drive partitions

6: BOOTCAMP分区:Win10操作系统分区,虽然我不是用BootCamp助手安装的操作系统,

但装好win10后还是需要bootcamp安装包安装硬件驱动,bootcamp这个程序也会随之安装,

安装包同时会把分区名改为BOOTCAMP,这个分区名无关紧要。

7: WinData分区:我创建的ntfs格式分区,用于保存程序、文件,与操作系统分开,

以便重装系统时不影响其他文件。

8: WINHDINS分区:这个是我自己创建的fat32分区,把Win10安装镜像解压到此分区

根目录,就可以在开机时按OptionAlt键)选择启动这个分区的安装程序,安装win10.

如果有4G容量的U盘,当然也可以制作win10安装U盘,不过U盘读写速度不如硬盘快,

制作这么一个win10硬盘安装分区就是为了快。

(三)分区方法

警告:不要使用WinPE自带的DiskGenius之类的分区工具,也不要使用Windows的磁

盘管理修改分区,这些工具即使支持GPT分区格式,也不能完全理解osx的分区,比如osx

要求HFS+数据分区后紧跟128M空闲空间用于分区加载,再比如Win的磁盘管理不明白osx

系统分区和Recovery HD的具体作用, 这些都会导致上述分区工具报错并询问 “是否修复

分区表”, 很容易手快点击 OK”,把分区表改错。

因此,确保只使用osx自带的磁盘工具,以及GPT分区专用工具gdisk,进行硬盘分区

操作。gdisk需要下载,分别有osxwindowslinux的版本,虽然是命令行工具,但是

非常简单好用,前文所说的误操作导致的gpt分区错误,gdisk可以很方便地检查和修复。

gdisk下载地址: SourceForgeGPT fdisk osx系统下载.pkg文件, win系统下载.zip

文件。 gdisk文档: GPT fdisk Tutorial

分区大致过程如下:

1. 进入osx系统,使用图形化的磁盘工具(Disk Utility),拖动分区图示右下角的

调整按钮,收缩现有的osx大分区划出空闲空间,或者直接点击+号创建新分区。 osx

带的磁盘工具,可以在不影响分区文件的基础上压缩分区,又是图形化操作,简单上手,不

需要多讲。

2. 前文所示的分区规划,几个osx使用的分区彼此相邻,放在前面,几个windows使

用的分区也是彼此相连,放在后面,这不是必须的,只是为了条理清晰,便于管理。 osx

分区和windows分区顺序也可以随意排列,不按照我的规划,除了MSR分区,下文即将具体

讲到。

3. 使用osx自带的磁盘工具划出需要的几个osx分区后,接下来要创建windows分区

了。首先就是MSRMicrosoft Reserved )分区。微软规定,MSR分区要在ESP分区之后,

win系统分区之前,因此,我们要先建MSR分区,然后紧跟着MSR分区创建win系统分区。

这个分区大小128M osx磁盘工具不能创建这么小的分区,而且也不能设置分区类型为MSR

需要使用gdisk创建:

# 请先下载安装gdisk 然后打开 terminal (终端), 输入以下命令

以管理员身份运行gdisk /dev/disk0 是硬盘设备号,如果你只有一块硬盘,就

/dev/disk0

Password后要求输入管理员密码, 以使用管理员权限运行gdisk

$ sudo gdisk /dev/disk0

Password:

GPT fdisk (gdisk) version 1.0.1

Warning: Devices opened with shared lock will not have their

partition table automatically reloaded!

Partition table scan:

MBR: protective

BSD: not present

APM: not present

GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help):

# 干脆键入?, 看看有哪些可用的命令:

Command (? for help): ?

b back up GPT data to a file

c change a partition's name

d delete a partition

i show detailed information on a partition

l list known partition types

n add a new partition

o create a new empty GUID partition table (GPT)

p print the partition table

q quit without saving changes

r recovery and transformation options (experts only)

s sort partitions

t change a partition's type code

v verify disk

w write table to disk and exit

x extra functionality (experts only)

print this menu

Command (? for help):

#输入n新建分区:

Command (? for help): n

#直接回车,接受默认的分区号码

Partition number (9-128, default 9):

First sector (34-1919970703, default = 649854528) or {+-}size{KMGTP}:

#这一步需要指定分区从哪里开始,如果你像我一样,这个MSR分区紧跟着一个HFS+

数据分区,那这里就不能接受默认的分区起点,而是要留出128MB的空闲空间,因此要输入

128M原因: osx要求,每个HFS+数据分区后需要有128MB的空闲空间,用于加载分区。

后偏移128M即可。如果没有这个空闲空间,osx磁盘工具会发出警告,在修复这个错误时,

osx磁盘工具是通过压缩HFS+数据分区的方式挤出128M的空闲空间,无疑是有风险的。

#上一段解释操作原理,回到操作,很简单,只需要输入:+128M

First sector (34-1919970703, default = 649854528) or {+-}size{KMGTP}: +128M

Last sector (649854528-650116671, default = 650116671) or {+-}size{KMGTP}:

# 指定了分区起点,接下来需要指定分区大小,MSR分区为128M

Last sector (649854528-650116671, default = 650116671) or {+-}size{KMGTP}: 128M

#接下来就是指定分区类型:

Current type is 'Apple HFS/HFS+'

Hex code or GUID (L to show codes, Enter = AF00):

#输入L,看一下分区类型:

Current type is 'Apple HFS/HFS+'

Hex code or GUID (L to show codes, Enter = AF00): l

0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE

3000 ONIE boot 3001 ONIE config 3900 Plan 9

4100 PowerPC PReP boot 4200 Windows LDM data 4201 Windows LDM metadata

4202 Windows Storage Spac 7501 IBM GPFS 7f00 ChromeOS kernel

7f01 ChromeOS root 7f02 ChromeOS reserved 8200 Linux swap

8300 Linux filesystem 8301 Linux reserved 8302 Linux /home

8303 Linux x86 root (/) 8304 Linux x86-64 root (/ 8305 Linux ARM64 root (/)

8306 Linux /srv 8307 Linux ARM32 root (/) 8400 Intel Rapid Start

8e00 Linux LVM a500 FreeBSD disklabel a501 FreeBSD boot

a502 FreeBSD swap a503 FreeBSD UFS a504 FreeBSD ZFS

a505 FreeBSD Vinum/RAID a580 Midnight BSD data a581 Midnight BSD boot

a582 Midnight BSD swap a583 Midnight BSD UFS a584 Midnight BSD ZFS

a585 Midnight BSD Vinum a600 OpenBSD disklabel a800 Apple UFS

a901 NetBSD swap a902 NetBSD FFS a903 NetBSD LFS

a904 NetBSD concatenated a905 NetBSD encrypted a906 NetBSD RAID

ab00 Recovery HD af00 Apple HFS/HFS+ af01 Apple RAID

...

...

...

#可以看到,第二个就是Microsoft reserved,也就是MSR类型。记住类型短号0c01

输入:

Hex code or GUID (L to show codes, Enter = af00): 0c01

Changed type of partition to 'Microsoft reserved'

GPT分区类型编号是一个128位的GUIDMSR对应的分区类型编号是

E3C9E316-0B5C-4DB8-817D-F92DF00215AE虽然输入这个也行,不过实在没有必要,

还是输入短号0c01吧。

MSR分区不需要格式化,只是一个空分区。

如果没有这个MSR分区,windows安装过程中会不加提示地自动尝试在硬盘上找出一块

空闲空间建立这个分区,导致安装过程耗时增加很多,而且很可能影响已有的osx分区,

windows不完全懂得osx分区,可能占用osx需要的空间。

4. 建立windows系统分区和其他windows分区。硬盘分区整个过程,只有创建MSR

区这一步需要gdisk完成,其它分区的建立都可以使用osx的磁盘工具完成。不过,gdisk

更好用。如果你使用gdisk,记住windows操作系统分区和数据分区的分区类型短号都是列

表中的第一个 0700Microsoft basic data)。如果使用gdisk,新建的windows分区也

不需要格式化,因为windows安装过程中提供了格式化功能。 windows 10 64位操作系统

大概占用20G的硬盘空间,所以我给win系统分区分配了64G的空间。其它分区根据需要,

合理分配剩余的硬盘空间即可。

四、安装

1. 下载win10原版安装镜像。家庭版、专业版、企业版都可以,但一定要是64位版。如果

你找不到下载网址,可以去 豆豆博客 两个网站看一

看。

2. 制作win10安装U盘,或硬盘安装分区:把win10安装镜像iso中所有内容解压到U

或硬盘分区根目录下即可。开机按住Option键(Alt键),几秒钟后屏幕上会显示几个启

动盘供你选择,可以看到Win10安装U盘或win10安装分区,选择,回车,就可以启动安装

程序。

3. 安装Win10 启动安装程序后,安装win10操作系统就是一步一步的傻瓜式操作,只有

一点要注意,在 “选择windows安装位置” 这一步,确保正确选择前面为Win分出的系统

分区。在这一步,因为分区比较多,一不小心就会误选其他分区,需要格外留意。

Win10 安装过程中,会自动创建启动选项(开机Option启动选择列表),并将默认启动选

项改为自身。系统安装过程中重启电脑时,会自动再次进入win10完成安装。这没关系,win10

装好后,我们再看怎么设置默认启动系统。

4. 安装mac硬件驱动程序。 虽然这时 Windows 10 看上去已经能用了(因为 windows10

带大量主要硬件厂商的驱动), 但还是有个别硬件无法驱动。 这时需要下载苹果官方

BootCamp 支持套件 虽然我们没有使用boot camp向导,也没有依照苹果官方建议

boot camp 方式添加windows系统,BootCamp支持套件中的驱动程序我们还是需要的。

下载后解压,两个文件夹$WinPEDriver$BootCamp各自包含若干驱动程序,二者都是必须

的,进入BootCamp文件夹,运行程序自动安装所有驱动,同时安装

用于修改默认启动的操作系统。

5. 最后,如何修改、设置默认启动的操作系统?

Windows系统中,程序提供了 “在OS X中重新启动” 这个选项(启

,在任务栏最右侧通知栏中,点击bootcamp图标,弹出的菜单中可以看到

这个选项),点击这个选项,系统重启,同时默认启动的操作系统改为osx

osx系统中,使用 “启动磁盘” 设置默认启动盘“系统设置” ➡️ “启动磁盘”

开机时,按住Option键(Alt键)不放,几秒钟后,屏幕上会显示出所有可以启动的

磁盘列表。

五、补充说明

1. 为什么不用BootCamp向导?

BootCamp向导是apple官方提供的mac双系统解决方案,用BootCampmac添加

windows系统,操作虽然很简单,但是硬盘只能增加一个分区,用于win系统安装,操作系

统和用户文件都放在这一个分区上,重装系统时用户文件也要备份、恢复,非常不方便。

2. Windows 7 可以用本文的方法安装吗?

也许可以,但我的实验没有成功。我制作的Win7安装U盘, 启动后进行到“选择系

统安装分区”这一步时,提示“无法在GPT分区上安装”,这表明安装U盘不是以EFI模式

启动的,而当我重新制作纯EFI模式启动的U盘时, U盘启动后黑屏,EFI启动失败。

如果你想亲自试一试,要注意win7安装程序不带usb3.0驱动,而近几年上市的mac

只有usb3.0接口,导致usb鼠标、键盘无法识别,安装过程无法进行。所以需要预先给win7

安装文件添加usb3.0驱动,这里一定要用bootcamp中的驱动,而不是网上很多文章写的

Intel出的驱动。给安装镜像添加驱动的方法: How to Install Windows 7 with only USB

3.0 Ports 制作win7启动安装U盘的工具: rufus UNetbootin, Universal USB

InstallerWindows 7 USB download tool 这四个软件任选其一。

Win7可以用BootCamp向导安装。

3. 当心Windows磁盘工具

装好双系统,如果你想添加硬盘分区, 记住不能用 Windows 的磁盘管理这个傻瓜工

具添加分区。 我曾经用windows 磁盘管理“收缩卷”功能划出空闲空间,然后在划出的空

闲空间上新建分区,结果发现开机后osx系统的启动选项没了,无法进入osx系统。gdisk

检查分区表才发现, windows 的磁盘管理这个傻瓜工具,在添加分区时又自作聪明地对整

个分区表加以整理,把osx的几个分区类型都改成了0700Microsoft basic data)类型,

导致EFI固件无法识别osx系统分区。当然,分区内容不变,只是分区表改错了,用gdisk

把几个osx分区的类型改正,这个错误也不难解决。

注意 64windows 下的 gdisk 工具为 查看、修改第一块磁盘的命令

Windows 下要这样写:

gdisk64 0:

(OSX 下用 /dev/disk0, Windows 下直接用 0:)

六、参考

1. UEFI /wiki/Unified_Extensible_Firmware_Interface

2. GPT /wiki/GUID_Partition_Table

3. UEFI 官方文档: /specifications(这个官方文档很好,虽然也

称“规范”,但写得很人性化,比 RFC 好懂多了,因此很有参考价值)

4. Refind文档: /refind/

5. gdisk文档: /gdisk/

6. 《深入解析 MAC OS X & IOS 操作系统》 郑恩遥 房佩慈译 清华大学出版社