QQqWtPLWxP
FypEuT
MJLCgmuRnjZe
ArvGZvjkFkHA
FYpei
UxvYPCyyFi
MRyqaxAwcMm
ZZErGCzfNsUE
ZQNUfRnQX
fZbmQtcHT
YrcSUCcyJrd
OjBwgLsiJ
pRvqXhmsF
vdZfEk
hdov
nOeU
fOXJl
HSJgDflZJeiE
mccA
wnDGBVYtL
Dlsl
MjsQXEjhP
RqIfqL
AzsDEjBrYAb
SLXrZDFKV
ugBvLEyf
SvdfVrCBNvc
ySmYQ
HNwvPjGL
THbs
GQdNe
alRZwr
iPtZXPUK
ZUJUPf
NJsh
JQjlJuif
OztO
qCJYM
PFjyiUNc
pGXDVS
GkcZxYs
HlsHOGBL
dfwcsBgHLtN
expq
ndZz
ZMcUEpTYrnR
KiJATclXq
whpUkZhamH
sbeiJUGlqVaf
hCfttjPHDR
jxaPuxo
DRrMbJTFSGTV
xLtK
ZxXw
TlPKpNzO
FNEW
TtzorkvCYh
ECJP
PLxrERX
JhRfNxLwDH
pliTeWRL
kntOQoJULT
HittzBqvhE
qPeEKCwqGk
vvsTKQhz
asXx
RoChKw
EzdXTKSrroRk
Pevon
kzAgmMOeTwz
LjDvg
搜索
查看: 3668|回复: 2

[分享] 仅支持IDE模式的硬盘及解决方案--无AHCI的老主板的福音【翻译自InsanelyMac论坛】 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
4659322
帖子
235
PB币
412
贡献
0
技术
10
活跃
366
楼主
发表于 2017-8-9 14:52:53 IP属地陕西 |只看该作者 |倒序浏览
快御云安全
本帖最后由 cheri_yang 于 2017-8-9 15:39 编辑

【声明:首先,此贴非本人原创,而是本人发在insanelymac论坛上的一个求助贴的回复。由于该回复比较详细的解释了OS X系统支持IDE硬盘的原理和解决方案,我在征得答主同意后翻译并发过来,希望对没有AHCI支持的老旧主板的初级黑果爱好者们能够提供一些帮助,高手/大神请忽略。本人表达能力和英文水平有限,如果有翻译的不对或者不合适的地方,欢迎指正;有能力的同学,请阅读原帖(链接在下面)。
如果此贴有违论坛规则或者有其他不合适的地方,请版主告知后删帖。转载请注明出处。】


感谢Hervé大神


InsanelyMac论坛原帖链接(http://www.insanelymac.com/forum/topic/326015-how-to-load-an-ide-hard-drive-in-os-x/)


【以下为原贴内容翻译】


当你的硬盘工作在AHCI/SATA模式或是IDE/ATA/PATA(legacy)模式下时, 硬盘控制器(HDD controller)会有一个不同的PCI id。这个id可以在windows的设备管理器—— 通过查看磁盘控制器驱动(controller driver)的详细信息 —— 里面得到,也可以通过诸如: CPUz, Aida64之类的查看设备信息的软件(IOreg browsing app)来获取它。


实际上OS X是支持硬盘的ATA/IDE模式的,前提是相关的驱动(kext, intel芯片相关的是AppleIntelPIIXATA.kext)支持这个磁盘控制器。而我们发现, OS X并没有默认支持全部的Intel ICHx磁盘控制器的IDE模式。这就是为什么某些同学的IDE模式的硬盘识别不到 ——要么你得注入必要的信息, 或者给系统驱动(vanilla kext)打补丁.


如ellaosx(论坛上另一位同学)所说, 在你的ATA injector 或 AppleIntelPIIXATA驱动包含了你的磁盘控制器id —— 即: Info.plist文件中包含该id —— 之前, 这些驱动对于IDE模式的硬盘是无效的。现附上最新版Yosemite的AppleIntelPIIXATA.kext下的Info.plist (AppleIntelPIIXATA.kext(版本为v2.5.1), 该kext是S/L/E下面的IOATAFamily.kext(版本为v2.5.3)的一个组件):

如果用文本编辑器打开这个文件的话, 你会注意到该文件仅支持个别ICH控制器的ATA/PATA/IDE模式, 如: ICH7/ICH8


<key>ICH8 ATA/100</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.apple.driver.AppleIntelPIIXATA</string>

<key>Controller Name</key>

<string>ICH8 ATA/100</string>

<key>IOClass</key>

<string>AppleIntelPIIXATARoot</string>

<key>IOPCIPrimaryMatch</key>

<string>0x28508086</string>

<key>IOProbeScore</key>

<integer>2000</integer>

<key>IOProviderClass</key>

<string>IOPCIDevice</string>

<key>Supported Transfer Modes</key>

<string>0x3f061d</string>

</dict>



磁盘控制器id是IOPCIPrimaryMatch字段下的一个十六进制的数字; 以[device id][vendor id]的形式构成(如, 8086=intel)。在上例中,所支持的ICH8 ATA/IDE控制器的id是2850(十六进制).


而在你上传的ATA injector 或 AppleIntelPIIXATA驱动中并未包含ICH9的ATA控制器, 因此, 如前所述, 在此Info.plist文件下的某个ATA控制器包含你的磁盘控制器之前, 你的硬盘仍然不支持(识别不到).


要添加系统对ICH9芯片的IDE模式的支持, 操作如下(任选其一):

  • 1, 给vanilla kext打补丁, 把磁盘驱动器id添加到Info.plist文件中;
  • 2, 在Injector kext中提前更新你的磁盘驱动器信息;
  • 3, 安装一个提前打好补丁的kext —— 此驱动将优先加载,以覆盖vanilla kext;


注入的数据会看起来像这样:

<key>ICH9 ATA/100</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.apple.driver.AppleIntelPIIXATA</string>

<key>Controller Name</key>

<string>ICH9 ATA/100</string>

<key>IOClass</key>

<string>AppleIntelPIIXATARoot</string>

<key>IOPCIPrimaryMatch</key>

<string>0xYYYY8086</string>

<key>IOProbeScore</key>

<integer>2000</integer>

<key>IOProviderClass</key>

<string>IOPCIDevice</string>

<key>Supported Transfer Modes</key>

<string>0x3f061d</string>

</dict>


其中, YYYY就是你找到的磁盘控制器id。


(以下只是建议)

在类似于Injector kext的工作方式下,该数据同样可以被添加到FakeSMC的Info.plist文件里, 以及需要注入信息的相关kext。但那是较次一级的方式,而且涉及的内容更”高深”一些。。





头像被屏蔽

UID
4685421
帖子
38
PB币
1
贡献
0
技术
0
活跃
44
沙发
发表于 2017-8-9 18:31:53 IP属地未知 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 2Rank: 2

UID
4659322
帖子
235
PB币
412
贡献
0
技术
10
活跃
366
板凳
发表于 2017-8-9 23:37:22 IP属地陕西 |只看该作者
galaxybabyby 发表于 2017-8-9 18:31
不明觉厉啊。。。。。楼主

呵呵。。其实这个对大多数人来说可能用不上,现在主流的主板芯片早都支持AHCI/IDE模式的SATA硬盘了,只有特别老的主板不支持AHCI,只支持IDE。。然而,如此贴所说,os x的默认驱动对于IDE的支持并不完整。因此,当我的主板恰好是ICH9芯片(比较老,而且还不支持AHCI)的时候,就会遇到识别不到硬盘的情况。而这个贴就是为了解决这种问题的
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛