こんばんわ、スピード狂であることに定評のあるしばやんです。
普通の人は SSD 買ったら AHCI を有効にして NCQ や TRIM でホルホルしたいですよね。僕もしたいのですが、Apple の陰謀により Boot Camp 使用時には IDE モード固定だったり、EFI で起動できなかったりと制限が多いです。
しかし、AHCI に関してはひよひよ大先生により日本語の情報が公開されてます。
MBR を改造して Mac Pro でも Windows を AHCI で使おう
さすが、ひよひよ大先生!
そして今日、Twitter で上のように教えてもらったので MBR を書き換えてみました。
結果:IDE から変化がない。
MBR の場所をミスったのか、Apple が EFI 書き換えて塞がれたのか、コンフィギュレーションレジスタの書き換える場所が異なっているのか、さっぱりわかりません。
悔しいのでもうちょっと調べてみたいと思います。
追記
ネットを漂っていると AHCI 時は port 0-5 みたいな記述があったので、AHCI 有効 + AHCI 6 port にする設定にして試しました。
0000016D B060 mov al,0x60
これを MBR に書き込んで再起動するとブルースクリーン。エラーメッセージには SATA Controller 周りでエラーがあるから新しいデバイスを外せとか書いてありました。
さらに追記
http://forums.macrumors.com/showthread.php?t=1104245
このフォーラムに上がっている画像を見ると AHCI 時のデバイス ID は 1C03 のようです。Windows では 1C01 なので、Intel のドキュメント*1に上がっているデータと付き合わせると、Mac OS X 起動時には AHCI port 0-5 で動いているものと考えられます。
なので先ほどの AHCI + 6 ポートにする方法で AHCI 自体は有効に出来ているんではないかと考えています。何でブルースクリーンになるのかはわからないのですが、他にも弄る部分があるのかもしれないです。
Mac OS X 起動時での PCI コンフィギュレーションレジスタの値を確認出来ればいいのかもしれないですが、最近の OS はいろいろとセキュリティ厳しいので難しい感じがします。
さらにさらに追記
MBR を書き換えて再起動する前に Intel の AHCI ドライバを入れて試したところ、STOP エラーは出るのですがドライバのロードは行われているような感じでした。
そこで回復コンソールから CrystalCPUID x64 を使ってシステム情報を出力した結果、SATA Controller のデバイス ID は 1C01 から 1C03 に変わっていることを確認できました。
13 0 31 0 8086h:1C49h.05h 060100h ISA Bridge 14 0 31 2 8086h:1C03h.05h 010601h Serial ATA Controller 15 0 31 3 8086h:1C22h.05h 0C0500h SMBus Contoller
Intel が出している資料によると、1C03 はモバイル向けチップセットの AHCI + 6 port モード時のデバイス ID となっています。
Dev ID | B2 Rev ID | B3 Rev ID | Comments |
---|---|---|---|
1C01h | 04h | 05h | Mobile: Non-AHCI and Non-RAID Mode (Ports 0-3) |
1C03h | 04h | 05h | Mobile: AHCI (Ports 0-5) |
282Ah2 | 04h | 05h | Mobile: RAID 0/1/5/10 (Ports 0-5) (AIE bit = 0) |
1C05h2 | 04h | 05h | Mobile: RAID 0/1/5/10 (Ports 0-5) (AIE bit = 1) |
この STOP エラーを何とか出来れば MacBook Pro (Early 2011) でも AHCI 運用が出来そうですが、いつものように原因はさっぱりわからず・・・。
*1:http://www.intel.com/Assets/PDF/specupdate/324646.pdf