Ich habe ein wirklich seltsames Problem. Ich habe einen Raspberry Pi, auf dem ein SMB-Server läuft, der in der Seitenleiste des Finders angezeigt wird. Normalerweise kann ich einfach darauf klicken und mich verbinden. Erst heute funktioniert es nicht mehr und gibt mir die Fehlermeldung "Verbindung fehlgeschlagen". Es hat in der Vergangenheit gut funktioniert. Ich verwende OS 10.8.4 auf einem Mac Pro. Unser MBP (auch 10.8.4) verbindet sich einwandfrei, keine Probleme. Ich sehe Protokollmeldungen in Console.app wie folgt:
9/10/13 7:14:43.869 PM com.apple.kextd[12]: Request from non-root process 'netbiosd' (euid 222) to load /System/Library/Extensions/smbfs.kext - not allowed.
9/10/13 7:14:43.870 PM netbiosd[84]: Loading com.apple.filesystems.smbfs status = -603947004
Gedanken?
Im Wesentlichen:
corecrypto.kext
Kernel-Erweiterung – fehltKönnen Sie sicher sein, dass alle anderen Teile des Betriebssystems integriert sind?
Überprüfen Sie das Dateisystem: Verwenden Sie das Festplattendienstprogramm.
Überprüfen Sie die Festplatte gründlicher. Dafür können Sie Badblocks oder so etwas wie Drive Genius verwenden .
Verwenden Sie den App Store, um das vollständige OS X Mountain Lion-Installationsprogramm für OS X 10.8.5 herunterzuladen.
Installieren Sie das Betriebssystem neu.
Versuchen Sie zunächst, die Dateifreigabe im Bereich „Freigabeeinstellungen“ neu zu starten.
Es gibt einen Fehler in OS X, der immer noch in 10.8.5 vorhanden ist, bei dem eine Race-Bedingung dazu führen kann, dass die Dateifreigabe gestartet wird, bevor eine Authentifizierungskonfiguration durchgeführt wurde, wodurch jede SMB-Verbindung zu Netzwerkfreigaben mit irgendeiner Art von Privilegien fehlschlägt.
Wenn dies Ihr Problem gelöst hat, besteht eine Möglichkeit zur Automatisierung dieses Prozesses darin, einen launchd
Agenten mit den folgenden Inhalten zu erstellen:
<?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>Label</key>
<string>com.mcdado.restart_smb</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>sleep 60;touch "/Library/Preferences/SystemConfiguration/com.apple.smb.server.plist"</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Speichern Sie diese Datei unter ~/Library/LaunchAgents/com.mcdado.restart_smb
und laden Sie sie dann, indem Sie den folgenden Befehl ausführen:sudo launchctl load ~/Library/LaunchAgents/com.mcdado.restart_smb
mount_smbfs: failed to intitialize the smb library: Device not configured
Ich habe in den Kommentaren eine Reihe von Vorschlägen zur Fehlerbehebung gemacht, die ich unten als Antwort aufzeichne. Wenn wir eine Lösung finden, werde ich diese Antwort bearbeiten.
1. Stellen Sie sicher, dass OSBundleAllowUserLoad wahr ist
Apples Manpage für kextload
sagt
Für die meisten Kexts muss kextload als Superuser (Root) ausgeführt werden. Unter /System/ installierte Kexts mit einer auf true gesetzten OSBundleAllowUserLoad-Eigenschaft können von Nicht-Root-Benutzern über kextload geladen werden.
Ich frage mich also, ob diese Eigenschaft auf Ihrem Mac Pro irgendwie geändert wurde. Auf meinem 10.8.4-System cat /System/Library/Extensions/smbfs.kext/Contents/Info.plist
wird die längliche Auflistung am Ende dieser Antwort angezeigt. (Die letzte Zeile sollte </plist>
... Sie müssen möglicherweise scrollen, um sie zu sehen.)
Beachten Sie, dass mein Angebot Folgendes umfasst:
<key>OSBundleAllowUserLoad</key>
<true/>
Wenn Ihre Datei diese Zeilen nicht enthält (die den Schlüssel und den zugehörigen Wert angeben, der in der obigen Manpage erwähnt wird), würde ich vorschlagen:
cp -p /System/Library/Extensions/smbfs.kext/Contents/Info.plist ~/Desktop/
(das -p
Argument behält die Daten und andere Metadaten in der Datei bei)sudo nano /System/Library/Extensions/smbfs.kext/Contents/Info.plist
. Oder es gibt Problemumgehungen, die die Verwendung von TextEdit ermöglichen: siehe diese Antwort . (Übrigens: Ich vermute, dass dies mit möglich ist defaults write
, aber ich möchte lieber das Risiko vermeiden, versehentlich unsichtbar in die falsche Datei zu schreiben.)Ich weiß nicht, wie dieser Schlüssel und dieser Wert verloren gegangen sein könnten, aber das erneute Hinzufügen scheint einen Versuch wert zu sein. (Ich weiß nicht, ob das funktioniert – ich habe es nicht ausprobiert, und Codesignierung könnte diese Art von Änderung verhindern.) Außerdem: Bitte achten Sie darauf, nur diese eine Datei zu sichern und zu bearbeiten!
<?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>
Das Originalplakat (OP) hat dies versucht, aber es hat nicht funktioniert.
2. Fragen Sie kextutil
nach einigen Diagnosen
Entladen Sie zuerst das Kext (nur für den Fall ... das schadet nicht, wenn es bereits entladen ist):
sudo kextunload /System/Library/Extensions/smbfs.kext
Bitten Sie dann kextutil
darum, einige Diagnosen anzuzeigen ( -verbose 6
ist die höchste Auswahl für "Ausgabemenge"):
sudo kextutil -print-diagnostics -verbose 6 /System/Library/Extensions/smbfs.kext
3. Die Diagnoseausgabe zeigte eine Abhängigkeit von einem anderen kext, der fehlte
Die Ausgabe des OP umfasste Folgendes:
...
/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
... und wir kamen zu dem Schluss, dass das /System/Library/Extensions/corecrypto.kext
fehlte, obwohl wir nicht wissen, warum.
4. Kopieren Sie das Fehlende corecrypto.kext
von einem anderen Computer (auf dem dieselbe Version von OS X ausgeführt wird)
Das OP hat den fehlenden Kext kopiert, neu gestartet und erneut getestet. Wir hatten immer noch keine Lösung gefunden. kextutil
Die Diagnoseausgabe hatte sich jedoch geändert und zeigt nun die (vollständige Auflistung) unten:
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. Vielleicht smbfs.kext
ist das Bundle beschädigt?
Meine Vermutung, basierend auf der obigen Ausgabe, ist, dass das Betriebssystem denkt, dass es smbfs.kext
keine Apple-Erweiterung ist (wenn es tatsächlich eine ist). Ich schlug vor, das OP smbfs.kext
aus einem Backup wiederherzustellen oder von einem anderen Computer zu kopieren. Ergebnisse derzeit nicht bekannt.
Zum Vergleich: Auf meinem Computer, auf dem SMB ordnungsgemäß zu funktionieren scheint, sudo kextutil -print-diagnostics -verbose 6 /System/Library/Extensions/smbfs.kext
lautet die vollständige Ausgabe von:
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).
Möglicherweise möchten Sie Datei-/Ordnerberechtigungen wiederherstellen. Es hilft im Allgemeinen, wenn die Dinge nicht mehr funktionieren.
Gehen Sie zu Applications/Disk Utility
Klicken Sie auf der linken Seite auf Ihr Startvolume und dann auf der rechten Seite auf „Reparaturberechtigungen“.
Es kann funktionieren.
zyphorisch
daviesgeek
Ashley
cat /System/Library/Extensions/smbfs.kext/Contents/Info.plist
eine Zeile<key>OSBundleAllowUserLoad</key>
gefolgt von<true/>
. Was zeigt das auf Ihrem Mac Pro?Markhunte
daviesgeek
daviesgeek
.plist
Datei einfügen? Ich werde versuchen, das in meine einzufügen. Vielleicht hilft die <Taste>…Ashley
sudo kextunload /System/Library/Extensions/smbfs.kext; sudo kextutil -print-diagnostics -verbose 6 /System/Library/Extensions/smbfs.kext
?daviesgeek
Ashley
/System/Library/Extensions/corecrypto.kext
?Ashley
Graham Perrin
sudo kextutil -print-diagnostics -verbose 6 /System/Library/Extensions/smbfs.kext
Graham Perrin
grg
daviesgeek
Ashley
daviesgeek
Ashley
daviesgeek