教學指南:如何在 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 ↗
我最初在 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 安裝期間透過 USB 手指提供 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 則高價值技術回應
現在成功啟用了,下一步呢?
我照著你的步驟操作,現在我的 Windows 7 已經完全支援 AHCI 運作了。那麼,這是否意味著我現在可以把 SATA 光碟機接到那兩個隱藏的 SATA 連接埠上,而且它們能在 Windows Boot Camp 下正常開機並被 Boot Camp 識別?目前我只裝了 4 顆 SATA II 硬碟。不過我想知道,如果要讓 SATA 光碟機在 Windows 下作為開機光碟機運作,還需要做些甚麼設定嗎?
非常感謝!真可惜 Apple 沒有在 Boot Camp 驅動程式裏直接開放這個功能。
我在使用第一種方法(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 - 修補時自動建立的備份檔
這篇教學實在太神了!
我一直在各大論壇與文章之間苦苦尋找能在 Boot Camp 下啟用 AHCI / 光碟機(ODD)SATA 連接埠的解決方案,既要做法優雅,又要有詳盡易懂的逐步說明,而這篇文章是第一篇(也許是唯一一篇?)完全符合所有要求的教學!這簡直是為 Mac 社群撰寫技術解決方案的教科書級典範!
多虧了你詳盡的指示與附件檔案,我終於在 30 分鐘內讓我接在 Mac Pro ODD SATA 連接埠上的兩台全新 SATA DVD / 藍光光碟機成功被識別並正常運作!現在我終於可以在 Mac 上觀看藍光光碟了。
致敬,
Bruno
現在的 grub2 已經內建 setpci 指令,因此不再需要對 grub 進行修補了。
我在自己的網誌上寫了一篇簡短指南 (darkfader.blog spot.com/2010/04/windows-on-intel-mac-and-ahci-mode.html)。
遇到問題
嗨,首先感謝你的教學,但我遇到了一些問題……
在裝置管理員下,我沒有看到: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 | 主筆作者 | 1 | 2009-06-17 |
| @Nadav35 | 協作成員 | 1 | 2009-11-01 |
| @moskitos | 協作成員 | 1 | 2009-11-08 |
| @Adrenaline1965 | 協作成員 | 1 | 2010-02-23 |
| @darkfader | 協作成員 | 1 | 2010-04-30 |
| @armadacd55 | 協作成員 | 1 | 2011-01-23 |