x86 硬件上的 Mac OS X 2008–2024 技术文献库
InfiniteMac OSx86 › 硬件配置、Apple 原厂设备与程序开发 › 教程指南:如何在 Vista 与 XP 下以 AHCI 模式引导 Mac Pro 并启用全部 6…
338,350 reads · 2009-06-17 – 2011-01-23
实战指南 硬件与开发 AHCI / SATA Retail DVD / USB

教程指南:如何在 Vista 与 XP 下以 AHCI 模式引导 Mac Pro 并启用全部 6 个 SATA 端口

我最初在 InsanelyMac 论坛发表了这篇文章,但我觉得这里的社区氛围更友善、大家也更热心助人,因此更适合发布在此。相比原帖,我还为这篇文章加入了一些更新与补充信息……

主笔作者
@ludacrisvp 发表于 2009-06-17
所属专区
硬件配置、Apple 原厂设备与程序开发
典藏规模与记录
338,350 次历史阅读 · 5 则精选技术笔记(萃取自 6 则原始回帖) · 2009-06-17 – 2011-01-23
参与贡献成员 (6)
@ludacrisvp@Nadav35@moskitos@Adrenaline1965@darkfader@armadacd55
相关硬件参考
SATA III & NVMe SSDs ↗ Apple Mac & Input Gear ↗ USB 3.2 Boot Flash Drives ↗
简体中文精译技术专卷 · 完整保留原始命令、Kext 名称、ACPI 节点与引导参数查看英文原版 (Original English) →

我最初在 InsanelyMac 论坛发表了这篇文章,但我觉得这里的社区氛围更友善、大家也更热心助人,因此更适合发布在此。

相比 IM 原帖,我为这篇文章加入了一些更新与额外补充信息。

以下方法将让你在 Mac Pro(初代及 Early 2008 型号亲测有效)上完整使用全部 6 个 SATA 端口。
这一做法或许也能在其他 Mac 平台上启用 AHCI,但我手头没有其他机型可供测试。
此前在 OnMac 论坛上,曾有 MacBook Pro 用户提到在 Windows 下启用 AHCI 以获得更快的硬盘访问速度。

这能让你将 Blu-ray 蓝光或 DVD SATA 光驱接入 Windows 系统,而无需牺牲任何一个硬盘位的 SATA 端口。

同时,这也会将 Windows 下的数据传输速度从传统兼容模式(Legacy Mode)的 100MB/s 提升至 SATA 硬盘原生的 1.5Gbps 或 3.0Gbps 速率。

在此特别鸣谢 pipomolo42 率先验证该方案可行,
并提供修改版的 GRUB 引导程序 Stage1 文件。

这项技术最初于 2007 年中在 OnMac 论坛上被研发出来,当时是为了尝试在 Windows 下启用 RAID 5。

然而,无论对普通用户还是进阶玩家来说,要在不搞得焦头烂额的情况下完成这套配置都绝非易事。

目前有两种方法可以启用这项支持。

较新的方法由 johnsock 开发,他编写了一个在 OS X 下运行的脚本,用来直接修改已安装 Vista、XP 或 Windows 7 硬盘的 MBR(主引导记录)。

-----------------------------------------------------------------------------------------

以下是使用该脚本的快速教程。
他本人仍将该脚本视为 Beta 测试版;虽然它具备自动检测目标操作系统的功能,但并不保证一定成功,若运行异常,所有风险需自行承担。

Vista 32/64 及 Windows 7 32/64
- 运行 Regedit(注册表编辑器)
- 定位到 "HKLM\System\CurrentControlSet\Services\msahci"
- 编辑 "Start" 键值,将数值修改为 "0"
- 这会指示 Vista 在下次开机时检查 AHCI 状态,并在检测到 AHCI 模式时自动安装 AHCI 驱动程序
- 这一步只会安装微软通用的 AHCI 驱动,对这套硬件而言性能表现相当糟糕,稍后你必须安装 Intel 官方驱动才能发挥完整性能。

针对 Windows XP
你需要强制安装 AHCI 模式驱动程序,覆盖原有的 Legacy 传统模式驱动
--操作步骤如下--
- 打开设备管理器(Device Manager)
- 在 IDE / ATA 类别下,打开 "Intel® 631xESB/6321ESB Ultra ATA Storage Controller - 2680" 的属性
- 将 2680 的驱动程序更新为标有 2681(ESB2 SATA AHCI Controller)的驱动程序
- 你需要取消勾选“显示兼容硬件”(仅显示已知支持硬件驱动)的复选框
- 安装完成后系统会要求重启
- 若未完成后续步骤就直接重启进入 XP,将会直接触发 BSOD 蓝屏死机并瞬间重启

加载 Mac OS X 或 Linux Live CD
OS X 下操作:

在“终端”(Terminal)中以 'sudo' 权限运行 johnsock 的脚本。

ludacrisvps-mac-pro:~ ludacrisvp$ sudo -s
Password:
bash-3.2# /Users/ludacrisvp/Downloads/ahci.sh
AHCI Master Boot Record Patch 1.0
Type /Users/ludacrisvp/Downloads/ahci.sh -h for command line options.

Scanning drives...
Windows partition found on /dev/disk4
Do you want to use this drive? (Y/N)y
The MBR on /dev/disk4 appears to already be modified.

bash-3.2# /Users/ludacrisvp/Downloads/ahci.sh
AHCI Master Boot Record Patch 1.0
Type /Users/ludacrisvp/Downloads/ahci.sh -h for command line options.

Scanning drives...
Windows partition found on /dev/disk4
Do you want to use this drive? (Y/N)n
Enter drive to use: /dev/disk1
Backing up MBR from /dev/disk1 to ./backup.mbr
MBR backup complete.

Detected Windows Vista Master Boot Record.

Are you ABSOLUTELY sure you want to write the modified MBR to /dev/disk1? (Y/N)y

Modified MBR written to /dev/disk1

如果自动检测失败,你可以按照以下步骤手动选择硬盘。
打开“磁盘工具”(Disk Utility)
找到已安装 AHCI 设备驱动程序的操作系统所在硬盘。
在显示硬盘容量的位置右键点击或按住 Command 点击,然后选择“显示简介”(Information)
这会显示运行脚本时应填入的磁盘代号。
每次开机时,磁盘编号顺序都可能会随机变动。
下图是我的 Windows 7 硬盘,如红框所示,这次它的代号是 Disk4。

完成后,请在所有已转换为 AHCI 模式的操作系统中,完整安装 Intel Matrix Storage 驱动程序。

-------------------------------------------------------------------------------------------------------------
以下是第二种方法,同样经证实运行良好。

你可以通过几种不同方式来配置系统。
以下我会针对已安装好的 Vista 及 XP 系统进行说明。
如果你想全新安装操作系统,也可以通过 GRUB 加载安装光盘,
并在 Vista 安装期间通过 U 盘提供 AHCI 控制器驱动程序,
或者预先将驱动集成(Slipstream)到 XP 或 Vista 安装盘中。

1. 加载 Live CD
- 运行分区编辑器(Partition Editor)
- 在硬盘最前端创建一个小型 FAT32 分区
- 我选择创建一个 100MB 的分区并格式化为 FAT32
- 这会调整大小并将我的 XP 分区向后推移 100MB——该过程大约耗时 45 分钟

2a. 重启进入 XP(若使用 Vista 请跳过此步,直接看步骤 2b)
- 强制安装 AHCI 模式驱动程序以覆盖原有的 Legacy 驱动
- 打开设备管理器
- 在 IDE / ATA 类别下,打开 "Intel® 631xESB/6321ESB Ultra ATA Storage Controller - 2680" 的属性
- 将 2680 的驱动程序更新为标有 2681(ESB2 SATA AHCI Controller)的驱动程序
- 你需要取消勾选限制仅显示已知兼容硬件驱动的复选框
- 安装完成后系统会要求重启
- 此时若直接重启进入 XP 将会导致 BSOD 蓝屏并瞬间重启,原因是 XP 尝试加载 AHCI 驱动,但硬件仍处于 Legacy 模式从而导致加载失败。

2b. 仅限 Vista
- 运行 Regedit
- 定位到 "HKLM\System\CurrentControlSet\Services\msahci"
- 编辑 "Start" 键值,将数值修改为 "0"
- 这会指示 Vista 在下次开机时检查 AHCI 状态,并在处于 AHCI 模式时安装 AHCI 驱动程序

3. 再次加载 Live CD
- 将附件提供的 stage1、stage2、menu.lst 复制到 100MB 分区的以下路径:
/boot/grub/
- 准备安装 GRUB 引导程序

4. 打开终端 —— 输入以下命令

sudo grub --device-map=/dev/null

- 这会指示 GRUB 忽略内置的设备映射表,由你手动定义新的映射关系。

device (hd0) /dev/sda

- 这会将你的第一块硬盘映射为 GRUB 中的 "hd0" 设备——请注意 GRUB 是从 0 开始编号的
- GRUB 会回显该命令以确认已接受设置。

find /boot/grub/stage1

- 这会回显 stage1 文件所在的位置——例如:(hd0,2)
- 用通俗的话来说,这代表第 1 块硬盘的第 3 个分区
- 下一步将会用到这组 (hdX,Y) 坐标

root (hd0,2)

- 这会告诉 GRUB 应该从哪里读取 stage1、stage2 及 menu.lst 文件

setup (hd0)

- 将 GRUB 引导程序安装至系统第一块硬盘的 MBR
- 屏幕会回显安装成功或出现错误的信息

quit

- 退出 GRUB

exit

- 关闭终端

5. 重启并取出 Live CD

6. 在 rEFIt 菜单中选择从硬盘启动 Linux(企鹅图标)

7. 系统会加载 GRUB 并显示引导菜单:
- Windows XP in AHCI Mode
以及
- Windows Vista in AHCI Mode

8. 在每个以 AHCI 模式启动的操作系统中,完整安装上方链接提供的 Intel 驱动程序,以发挥应有的性能。

9. 大功告成!尽情享受全部 6 个 SATA 端口完整启用 NCQ 与原生高速性能的快感吧

------------------------------------------------------------------
你可能需要根据自己机器上操作系统的实际所在位置,修改 "menu.lst" 文件。

在我的系统上,我使用一块 IDE 硬盘安装 XP,而 GRUB 也是安装在这块硬盘上。
我一共安装了 4 块硬盘:1 块 IDE、3 块 SATA。
我在每块物理硬盘上各自安装了 1 个操作系统。
在你的系统上,你可能不会使用 /dev/sda,因为那通常是你的 Mac OS X 系统盘。
一般来说,机箱内的第二个 SATA 硬盘位会对应到 /dev/sdb。

以下是所需文件的下载链接:

在 OS X 内下载并安装 rEFIt (refit.sourc eforge.net/#download)

Windows XP/Vista x86/x64 Intel Matrix Storage Manager 驱动程序 (downloadmirror.in tel.com/16750/eng/IATA85ENU.exe) - 直接从 Intel 官网下载

Ubuntu Live 8.04.1 AMD64/EM64T 桌面版 (ubu ntu.com/getubuntu/download) - 请选择离你最近的镜像站下载,务必选择适用于 64 位系统的 Desktop 桌面版本;这是 CD 版本,可直接刻录至 CD-R 光盘。

附件 "boot.zip" 内含让 GRUB 在 Mac Pro 上正常工作所需的修改版 Stage1、Stage2 及 Menu.lst。

附件 "ahci.zip" 则包含 johnsock 编写的用于修改 MBR 的脚本。

社区实测与技术补充笔记

自 6 则原始讨论回帖中萃取 5 则高价值技术回应

技术笔记 #1 @Nadav35 2009-11-01

现在成功启用了,下一步呢?

我照着你的步骤操作,现在我的 Windows 7 已经完全支持 AHCI 运行了。那么,这是否意味着我现在可以把 SATA 光驱接到那两个隐藏的 SATA 端口上,而且它们能在 Windows Boot Camp 下正常引导并被 Boot Camp 识别?目前我只装了 4 块 SATA II 硬盘。不过我想知道,如果要让 SATA 光驱在 Windows 下作为引导光驱工作,还需要做些什么设置吗?

非常感谢!真可惜 Apple 没有在 Boot Camp 驱动里直接开放这个功能。

技术笔记 #2 @moskitos 2009-11-08

我在使用第一种方法(johnsock 的脚本)时遇到问题。
我的操作步骤如下:
1. 全新安装 Windows 7 x64(未安装 BootCamp 驱动)
2. 在注册表中修改 Start 数值
3. 重启进入 Windows
4. 重启进入 Mac OS X
5. 对 disk0 运行 johnsock 的脚本(第 1 分区是 Mac OS X,第 4 分区是 Windows 7)
6. 重启进入 Windows(Windows 检测到相同驱动,但硬盘依然在 ATA 模式下工作)
7. 重启进入 Windows 并安装 Intel Matrix Storage Manager 8.9
8. 重启 Windows,结果就出问题了!

我的系统在加载界面时不断无限重启!

有人能帮忙吗?

如果我的 Mac OS X 与 Windows 安装在同一块硬盘上——我应该修补 "disk0" 还是 disk0s3 呢?

我的机型是 MacBook Pro 3.1 (2007),配备 C2D 2.4GHz、4GB DDR2 667 内存、320GB Seagate 7200 转硬盘、ICH8M SATA 控制器,运行 Mac OS X 10.6.1

windows7mbr.zip 是目前修补后的 MBR
achimbr.zip - 我修补过的 MBR
backup.mbr.zip - 修补时自动创建的备份文件

技术笔记 #3 @Adrenaline1965 2010-02-23

这篇教程实在太神了!

我一直在各大论坛与帖子之间苦苦寻找能在 Boot Camp 下启用 AHCI / 光驱(ODD)SATA 端口的解决方案,既要做法优雅,又要有详尽易懂的分步说明,而这篇文章是第一篇(也许是唯一一篇?)完全符合所有要求的教程!这简直是为 Mac 社区撰写技术解决方案的教科书级典范!

多亏了你详尽的说明与附件文件,我终于在 30 分钟内让我接在 Mac Pro ODD SATA 端口上的两台全新 SATA DVD / 蓝光光驱成功被识别并正常工作!现在我终于可以在 Mac 上观看蓝光光盘了。

致敬,

Bruno

技术笔记 #4 @darkfader 2010-04-30

现在的 grub2 已经内置 setpci 命令,因此不再需要对 grub 进行修补了。
我在自己的博客上写了一篇简短指南 (darkfader.blog spot.com/2010/04/windows-on-intel-mac-and-ahci-mode.html)。

技术笔记 #5 @armadacd55 2011-01-23

遇到问题

嗨,首先感谢你的教程,但我遇到了一些问题……
在设备管理器下,我没有看到:Intel® 631xESB/6321ESB Ultra ATA Storage Controller - 2680

只有看到:Intel® 631xESB/6321ESB Serial ATA Storage Controller - 2680

当我取消勾选兼容硬件复选框以显示所有驱动程序并尝试强制覆盖安装时,列表里并没有看到带有 2681 或 ESB2 的驱动。我正在使用 Boot Camp 3.0,这会是原因吗?我试过的所有驱动都无法工作,甚至导致必须重装 Windows……

非常感谢任何能提供的帮助。

Tom

文献来源与贡献者溯源名录(共 6 位具名成员 · 原始讨论串 #3159)
成员用户名本卷贡献角色发帖数活跃时间窗
@ludacrisvp主笔作者12009-06-17
@Nadav35协作成员12009-11-01
@moskitos协作成员12009-11-08
@Adrenaline1965协作成员12010-02-23
@darkfader协作成员12010-04-30
@armadacd55协作成员12011-01-23

选择语言 · Choose your language