ฉันได้จัดทำข้อเสนอแนะการแก้ไขปัญหาตามลำดับในความคิดเห็นซึ่งฉันบันทึกไว้เป็นคำตอบด้านล่าง หากเราพบทางออกฉันจะแก้ไขคำตอบนี้
1. ตรวจสอบให้แน่ใจว่า OSBundleAllowUserLoad เป็นจริง
หน้าคนของ Apple สำหรับkextload
พูดว่า
สำหรับ kexts ส่วนใหญ่ kextload จะต้องเรียกใช้เป็น superuser (root) Kexts ที่ติดตั้งภายใต้ / System / พร้อมกับคุณสมบัติ OSBundleAllowUserLoad ที่ตั้งค่าเป็นจริงอาจถูกโหลดผ่าน kextload โดยผู้ใช้ที่ไม่ใช่รูท
ดังนั้นฉันจึงสงสัยว่าคุณสมบัตินี้มีการเปลี่ยนแปลงใน Mac Pro ของคุณหรือไม่ ในระบบ 10.8.4 ของฉันcat /System/Library/Extensions/smbfs.kext/Contents/Info.plist
แสดงรายชื่อ longish ที่ด้านล่างของคำตอบนี้ (บรรทัดสุดท้ายควรเป็น</plist>
... คุณอาจต้องเลื่อนเพื่อดู)
โปรดทราบว่ารายชื่อของฉันมีดังต่อไปนี้:
<key>OSBundleAllowUserLoad</key>
<true/>
หากไฟล์ของคุณไม่รวมบรรทัดเหล่านี้ (ซึ่งระบุรหัสและค่าที่เกี่ยวข้องที่กล่าวถึงในหน้า man ด้านบน) ฉันขอแนะนำ:
- สำรองไฟล์ - ตัวอย่างเช่นโดยใช้
cp -p /System/Library/Extensions/smbfs.kext/Contents/Info.plist ~/Desktop/
( -p
อาร์กิวเมนต์เก็บรักษาวันที่และข้อมูลเมตาอื่น ๆ ในไฟล์)
- แก้ไขไฟล์เพื่อรวมบรรทัดที่ฉันพูดถึงข้างต้น เนื่องจากไฟล์เป็นเจ้าของโดย root คุณจึงไม่สามารถแก้ไขได้ใน TextEdit
sudo nano /System/Library/Extensions/smbfs.kext/Contents/Info.plist
คุณสามารถใช้ หรือมีวิธีแก้ปัญหาที่อนุญาตให้ใช้ TextEdit: ดูคำตอบนี้ (โดยวิธีการ: ฉันสงสัยว่ามันเป็นไปได้ที่จะทำเช่นนี้โดยใช้defaults write
แต่ฉันควรหลีกเลี่ยงความเสี่ยงของการเขียนล่องหนผิดไฟล์โดยไม่ตั้งใจ)
- รีบูตและทดสอบ
ฉันไม่รู้ว่าคีย์และค่าดังกล่าวอาจหายไปได้อย่างไร (ฉันไม่ทราบว่าจะใช้งานได้หรือไม่ฉันยังไม่ได้ลองและการเซ็นรหัสอาจทำให้การดัดแปลงประเภทนี้ไม่ได้) ด้วย: โปรดระวังการสำรองและแก้ไขไฟล์นี้เพียงไฟล์เดียว!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>12E53</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>smbfs</string>
<key>CFBundleIdentifier</key>
<string>com.apple.filesystems.smbfs</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>smbfs</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.8.4</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.8.4</string>
<key>DTCompiler</key>
<string></string>
<key>DTPlatformBuild</key>
<string>4F250</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>12E53</string>
<key>DTSDKName</key>
<string></string>
<key>DTXcode</key>
<string>0440</string>
<key>DTXcodeBuild</key>
<string>4F250</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2004-2013 Apple Inc. All rights reserved.</string>
<key>OSBundleAllowUserLoad</key>
<true/>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kext.triggers</key>
<string>1.0.0d1</string>
<key>com.apple.kpi.bsd</key>
<string>9.0.0</string>
<key>com.apple.kpi.iokit</key>
<string>9.0.0</string>
<key>com.apple.kpi.libkern</key>
<string>9.0.0</string>
<key>com.apple.kpi.mach</key>
<string>9.0.0</string>
<key>com.apple.kpi.private</key>
<string>10.0.0d1</string>
<key>com.apple.kpi.unsupported</key>
<string>9.0.0</string>
</dict>
<key>OSBundleRequired</key>
<string>Safe Boot</string>
</dict>
</plist>
โปสเตอร์ดั้งเดิม (OP) ลองทำสิ่งนี้ แต่มันใช้งานไม่ได้
2. ขอkextutil
การวินิจฉัยบางอย่าง
ก่อนอื่นให้ยกเลิกการโหลด kext (ในกรณีที่ ... สิ่งนี้จะไม่เป็นอันตรายหากมีการยกเลิกการโหลด)
sudo kextunload /System/Library/Extensions/smbfs.kext
จากนั้นขอkextutil
ให้แสดงการวิเคราะห์บางอย่าง ( -verbose 6
เป็นตัวเลือก "จำนวนเอาต์พุตสูงสุด"):
sudo kextutil -print-diagnostics -verbose 6 /System/Library/Extensions/smbfs.kext
3. เอาต์พุตการวินิจฉัยแสดงการพึ่งพา kext อื่นซึ่งหายไป
ผลลัพธ์ของ OP รวมถึงสิ่งต่อไปนี้:
...
/System/Library/Extensions/smbfs.kext - no dependency found for com.apple.kec.corecrypto.
...
Dependency Resolution Failures:
Only Apple kexts may link against com.apple.kpi.private.
No kexts found for these libraries:
com.apple.kec.corecrypto
... และเราสรุปว่า/System/Library/Extensions/corecrypto.kext
มันหายไปแม้ว่าเราจะไม่รู้ว่าทำไม
4. คัดลอกข้ามสิ่งที่หายไปcorecrypto.kext
จากเครื่องอื่น (ใช้ OS X เวอร์ชั่นเดียวกัน)
OP คัดลอกทั่ว kext ที่หายไปรีบูตและทดสอบใหม่ เรายังไม่พบวิธีแก้ปัญหา อย่างไรก็ตามkextutil
ผลลัพธ์การวินิจฉัยมีการเปลี่ยนแปลงตอนนี้แสดง (รายการที่สมบูรณ์) ด้านล่าง:
Kext user-space log filter changed from 0xff2 to 0xfff.
Kext kernel-space log filter changed from 0xff2 to 0xfff.
Kext library architecture set to i386.
No kernel file specified, using '/mach_kernel'
Kext library recording diagnostics for: validation authentication dependencies warnings.
/System/Library/Extensions/smbfs.kext has an Apple prefix but no copyright.
/System/Library/Extensions/smbfs.kext has an Apple prefix but no copyright.
/System/Library/Extensions/smbfs.kext has an Apple prefix but no copyright.
Diagnostics for /System/Library/Extensions/smbfs.kext:
Dependency Resolution Failures:
Only Apple kexts may link against com.apple.kpi.private.
5. อาจเป็นsmbfs.kext
กลุ่มที่เสียหายหรือไม่
ฉันเดาตามผลลัพธ์ข้างต้นคือระบบปฏิบัติการคิดว่าsmbfs.kext
ไม่ใช่ส่วนขยายของ Apple (เมื่อเป็นจริง) ฉันแนะนำให้ OP กู้คืนsmbfs.kext
จากข้อมูลสำรองหรือคัดลอกจากเครื่องอื่น ไม่ทราบผลลัพธ์ในขณะนี้
สำหรับการเปรียบเทียบบนเครื่องของฉันซึ่ง SMB ทำงานได้อย่างถูกต้องผลลัพธ์ที่สมบูรณ์ของsudo kextutil -print-diagnostics -verbose 6 /System/Library/Extensions/smbfs.kext
คือ:
Kext user-space log filter changed from 0xff2 to 0xfff.
Kext kernel-space log filter changed from 0xff2 to 0xfff.
Kext library architecture set to x86_64.
No kernel file specified, using '/mach_kernel'
Kext library recording diagnostics for: validation authentication dependencies warnings.
/System/Library/Extensions/smbfs.kext appears to be loadable (not including linkage for on-disk libraries).
Loading /System/Library/Extensions/smbfs.kext.
Reading load info for 8 kexts.
Reading loaded kext info from kernel.
(kernel) User-space log flags changed from 0x0 to 0xfff.
(kernel) Received 'Get Loaded Kext Info' request from user space.
(kernel) Returning loaded kext info.
Loaded kext info:
{
"com.apple.kpi.mach" = {
"OSBundleWiredSize" = 2188
"CFBundleIdentifier" = "com.apple.kpi.mach"
"OSBundleUUID" = <4edbbc26 0d734a03 b9f2131a ac114ede>
"OSBundleLoadAddress" = -551895728128
"OSBundleLoadTag" = 5
"OSBundleStarted" = true
"OSBundleCompatibleVersion" = "8.0.0d0"
"OSKernelResource" = true
"CFBundleVersion" = "12.4.0"
"OSBundlePath" =
"//System/Library/Extensions/System.kext/PlugIns/Mach.kext"
"OSBundleRetainCount" = 90
"OSBundlePrelinked" = true
"OSBundleIsInterface" = true
"OSBundleLoadSize" = 2188
}
"com.apple.kpi.libkern" = {
"OSBundleWiredSize" = 39416
"CFBundleIdentifier" = "com.apple.kpi.libkern"
"OSBundleUUID" = <5cfa490e 7e0540f5 bb983f3e 8ca54d37>
"OSBundleLoadAddress" = -551895687168
"OSBundleLoadTag" = 4
"OSBundleStarted" = true
"OSBundleCompatibleVersion" = "8.0.0d0"
"OSKernelResource" = true
"CFBundleVersion" = "12.4.0"
"OSBundlePath" =
"//System/Library/Extensions/System.kext/PlugIns/Libkern.kext"
"OSBundleRetainCount" = 104
"OSBundlePrelinked" = true
"OSBundleIsInterface" = true
"OSBundleLoadSize" = 39416
}
"com.apple.kpi.bsd" = {
"OSBundleWiredSize" = 26732
"CFBundleIdentifier" = "com.apple.kpi.bsd"
"OSBundleUUID" = <ed0f756e c36b41ee 9e630573 11c12b4e>
"OSBundleLoadAddress" = -551895646208
"OSBundleLoadTag" = 1
"OSBundleStarted" = true
"OSBundleCompatibleVersion" = "8.0.0b1"
"OSKernelResource" = true
"CFBundleVersion" = "12.4.0"
"OSBundlePath" =
"//System/Library/Extensions/System.kext/PlugIns/BSDKernel.kext"
"OSBundleRetainCount" = 71
"OSBundlePrelinked" = true
"OSBundleIsInterface" = true
"OSBundleLoadSize" = 26732
}
"com.apple.kpi.iokit" = {
"OSBundleWiredSize" = 112620
"CFBundleIdentifier" = "com.apple.kpi.iokit"
"OSBundleUUID" = <bd6bb21a 080d4f2b a6590437 d164ecde>
"OSBundleLoadAddress" = -551895605248
"OSBundleLoadTag" = 3
"OSBundleStarted" = true
"OSBundleCompatibleVersion" = "7.0"
"OSKernelResource" = true
"CFBundleVersion" = "12.4.0"
"OSBundlePath" =
"//System/Library/Extensions/System.kext/PlugIns/IOKit.kext"
"OSBundleRetainCount" = 99
"OSBundlePrelinked" = true
"OSBundleIsInterface" = true
"OSBundleLoadSize" = 112620
}
"com.apple.kpi.unsupported" = {
"OSBundleWiredSize" = 9164
"CFBundleIdentifier" = "com.apple.kpi.unsupported"
"OSBundleUUID" = <0a01a811 58284493 99b48233 fd6edeaa>
"OSBundleLoadAddress" = -551895699456
"OSBundleLoadTag" = 7
"OSBundleStarted" = true
"OSBundleCompatibleVersion" = "8.0.0b1"
"OSKernelResource" = true
"CFBundleVersion" = "12.4.0"
"OSBundlePath" =
"//System/Library/Extensions/System.kext/PlugIns/Unsupported.kext"
"OSBundleRetainCount" = 54
"OSBundlePrelinked" = true
"OSBundleIsInterface" = true
"OSBundleLoadSize" = 9164
}
"com.apple.kext.triggers" = {
"OSBundleWiredSize" = 20480
"CFBundleIdentifier" = "com.apple.kext.triggers"
"OSBundleStarted" = true
"OSBundleCPUType" = 16777223
"OSBundleCompatibleVersion" = "1.0.0d1"
"OSBundleUUID" = <e376df1d 63633e78 af0820ba bbf94701>
"OSKernelResource" = false
"CFBundleVersion" = "1.0"
"OSBundleLoadTag" = 109
"OSBundleLoadAddress" = -551874535424
"OSBundleDependencies" = (
1
4
3
7
6
5
)
"OSBundlePath" = "//System/Library/Extensions/triggers.kext"
"OSBundleRetainCount" = 1
"OSBundleCPUSubtype" = 3
"OSBundlePrelinked" = true
"OSBundleIsInterface" = false
"OSBundleLoadSize" = 20480
}
"com.apple.kpi.private" = {
"OSBundleWiredSize" = 20492
"CFBundleIdentifier" = "com.apple.kpi.private"
"OSBundleUUID" = <9a83c9f5 ff6145e6 837c7cf7 e10f3654>
"OSBundleLoadAddress" = -551895724032
"OSBundleLoadTag" = 6
"OSBundleStarted" = true
"OSBundleCompatibleVersion" = "8.0.0b1"
"OSKernelResource" = true
"CFBundleVersion" = "12.4.0"
"OSBundlePath" =
"//System/Library/Extensions/System.kext/PlugIns/Private.kext"
"OSBundleRetainCount" = 40
"OSBundlePrelinked" = true
"OSBundleIsInterface" = true
"OSBundleLoadSize" = 20492
}
}
/System/Library/Extensions/System.kext/PlugIns/BSDKernel.kext (version 12.4, UUID ED0F756E-C36B-41EE-9E63-057311C12B4E) is loaded.
/System/Library/Extensions/System.kext/PlugIns/BSDKernel.kext (version 12.4): is started.
setting load address of /System/Library/Extensions/System.kext/PlugIns/BSDKernel.kext to 0xffffff7f8074c000
/System/Library/Extensions/System.kext/PlugIns/Mach.kext (version 12.4, UUID 4EDBBC26-0D73-4A03-B9F2-131AAC114EDE) is loaded.
/System/Library/Extensions/System.kext/PlugIns/Mach.kext (version 12.4): is started.
setting load address of /System/Library/Extensions/System.kext/PlugIns/Mach.kext to 0xffffff7f80738000
/System/Library/Extensions/System.kext/PlugIns/Libkern.kext (version 12.4, UUID 5CFA490E-7E05-40F5-BB98-3F3E8CA54D37) is loaded.
/System/Library/Extensions/System.kext/PlugIns/Libkern.kext (version 12.4): is started.
setting load address of /System/Library/Extensions/System.kext/PlugIns/Libkern.kext to 0xffffff7f80742000
/System/Library/Extensions/System.kext/PlugIns/IOKit.kext (version 12.4, UUID BD6BB21A-080D-4F2B-A659-0437D164ECDE) is loaded.
/System/Library/Extensions/System.kext/PlugIns/IOKit.kext (version 12.4): is started.
setting load address of /System/Library/Extensions/System.kext/PlugIns/IOKit.kext to 0xffffff7f80756000
/System/Library/Extensions/System.kext/PlugIns/Unsupported.kext (version 12.4, UUID 0A01A811-5828-4493-99B4-8233FD6EDEAA) is loaded.
/System/Library/Extensions/System.kext/PlugIns/Unsupported.kext (version 12.4): is started.
setting load address of /System/Library/Extensions/System.kext/PlugIns/Unsupported.kext to 0xffffff7f8073f000
/System/Library/Extensions/triggers.kext (version 1.0, UUID E376DF1D-6363-3E78-AF08-20BABBF94701) is loaded.
/System/Library/Extensions/triggers.kext (version 1.0): is started.
setting load address of /System/Library/Extensions/triggers.kext to 0xffffff7f81b6e000
/System/Library/Extensions/System.kext/PlugIns/Private.kext (version 12.4, UUID 9A83C9F5-FF61-45E6-837C-7CF7E10F3654) is loaded.
/System/Library/Extensions/System.kext/PlugIns/Private.kext (version 12.4): is started.
setting load address of /System/Library/Extensions/System.kext/PlugIns/Private.kext to 0xffffff7f80739000
Omitting loaded kext /System/Library/Extensions/System.kext/PlugIns/BSDKernel.kext from mkext for kernel load.
Omitting loaded kext /System/Library/Extensions/System.kext/PlugIns/Mach.kext from mkext for kernel load.
Omitting loaded kext /System/Library/Extensions/System.kext/PlugIns/Libkern.kext from mkext for kernel load.
Omitting loaded kext /System/Library/Extensions/System.kext/PlugIns/IOKit.kext from mkext for kernel load.
Omitting loaded kext /System/Library/Extensions/System.kext/PlugIns/Unsupported.kext from mkext for kernel load.
Omitting loaded kext /System/Library/Extensions/System.kext/PlugIns/Private.kext from mkext for kernel load.
Omitting loaded kext /System/Library/Extensions/triggers.kext from mkext for kernel load.
Adding /System/Library/Extensions/smbfs.kext to mkext.
/System/Library/Extensions/smbfs.kext added 245568-byte noncompressed executable to mkext.
Created mkext for architecture x86_64 containing 1 kexts.
Loading /System/Library/Extensions/smbfs.kext.
(kernel) User-space log flags changed from 0x0 to 0xfff.
(kernel) Received kext load request from user space.
(kernel) Received request from user space to load kext com.apple.filesystems.smbfs.
(kernel) Loading kext com.apple.filesystems.smbfs.
(kernel) Kext com.apple.kpi.bsd is already loaded.
(kernel) Kext com.apple.kpi.mach is already loaded.
(kernel) Kext com.apple.kpi.libkern is already loaded.
(kernel) Kext com.apple.kpi.iokit is already loaded.
(kernel) Kext com.apple.kpi.unsupported is already loaded.
(kernel) Kext com.apple.kext.triggers is already loaded.
(kernel) Kext com.apple.kpi.private is already loaded.
(kernel) Allocated link buffer for kext com.apple.filesystems.smbfs at 0xffffff7f949c1000 (229376 bytes).
(kernel) Kext com.apple.filesystems.smbfs executable loaded; 56 pages at 0xffffff7f825c1000 (load tag 146).
(kernel) Kext com.apple.filesystems.smbfs calling module start function.
(kernel) Kext com.apple.filesystems.smbfs is now started.
(kernel) Kext com.apple.filesystems.smbfs loaded.
Successfully loaded /System/Library/Extensions/smbfs.kext.
/System/Library/Extensions/smbfs.kext successfully loaded (or already loaded).