Im ersten Spotlight Artikel, Spotlight – Wenn die Suche mal nicht so will, habe ich Euch Spotlight vorgestellt und Euch gezeigt wie man Spotlight einstellen kann und welche Möglichkeiten man über die grafische Oberfläche hat.
In diesem Teil geht es darum Euch zu zeigen, wo Spotlight überall seine Finger im Spiel hat und vor allem wie man Spotlight wieder auf die Beine helfen kann, wenn mal etwas klemmt.
Spotlight und die Zusammenhänge
Seit der Version 10.6. hat Apple die Spotlight Indexierung immer tiefer in das System eingegraben. Inzwischen hängt fast alles, was auch nur im entferntesten mit Dateioperationen und Suchen bzw. Erfassen zu tun hat, direkt oder indirekt mit Spotlight zusammen.
Findet z.B. die Mail App nichts mehr wenn Ihr nach bestimmten Kriterien sucht oder braucht, Time Machine auf einmal ewig benötigt bis das Backup abgeschlossen wird oder überhaupt erst einmal startet, ist es sehr wahrscheinlich, dass Spotlight ein Problem hat.
Spotlight und das Terminal
Der große Vorteil von OS X ist der Unix Unterbau, so dass wir uns mit dem Terminal meist sehr genau ansehen können, was wo passiert und etwas tiefer in bestimmte Prozesse eingreifen können als uns das die grafische Oberfläche erlaubt.
Spotlight steuern mit mdutil
Der Prozess für Spotlight nennt sich mdworker und kann nicht selbst beeinflusst werden. Ein man mdworker am Terminal gibt dann auch lapidar nur einen kurzen Hinweis dazu aus.
man mdworker Shell dworker(8) BSD System Manager's Manual mdworker(8) NAME mdworker -- metadata server worker SYNOPSIS mdworker DESCRIPTION mdworker is the metadata server worker process. It is used by mds to scan and index files as a volume is mounted or a file changes. There are no configurations to mdworker, and users should not run manually. SEE ALSO mdfind(1), mdls(1), mdutil(1) Mac OS January 19, 2006 Mac OS (END)12345678910111213141516171819 dworker(8) BSD System Manager'sManual mdworker(8) NAME mdworker--metadata server worker SYNOPSIS mdworker DESCRIPTION mdworker isthe metadata server worker process It isused by mds toscan andindex files asavolume ismounted orafilechanges There are no configurations tomdworker,andusers should notrun manually SEE ALSO mdfind(1),mdls(1),mdutil(1) Mac OS January19,2006 Mac OS(END)
Während mdfind und mdls für die Steuerung von Spotlight uninteressant sind ist mdutil, also das Metadata Server Utility, genau das was wir jetzt brauchen.
mdutil und die Parameter
man mdutil zeigt uns was wir alles mit dem kleinen Tool anstellen können.
123456789101112131415161718192021222324252627282930313233343536 mdutil(1) BSD General Commands Manual mdutil(1) NAME mdutil--manage the metadata stores used by Spotlight SYNOPSIS mdutil[-pEsav][-ion|off]mountPoint DESCRIPTION The mdutil command isuseful formanaging the metadata stores formounted volumes The following options are available: -p Spotlight caches indexes of some network devices locally This option requests thatalocal caches be flushed tothe appropriate network device -E Thisflag will cause eachlocal store forthe volumes indicated tobe erased The stores will be rebuilt ifappropriate -ion|off Sets the indexing status forthe provided volumes toon oroff Note that indexing may be delayed due tolow disk space orother condi- tions -d Disables Spotlight searches on the provided volume -s Display the indexing status of the listed volumes -a Apply command toall volumes -v Print verbose information when available SEE ALSO mdfind(1),mds(8),mdimport(1)
Aha? Und was bringt mir das jetzt?
Dann wollen wir das ganze mal etwas aufschlüsseln.
Wenn irgendwo etwas klemmt, solltet Ihr zuerst einmal überprüfen, ob Spotlight überhaupt indexiert und wenn ja wo. Dazu stellt uns mdutil den Parameter „s“ zu Verfügung, mit dem man den Indexierungsstatus eines bestimmten Volumes überprüfen kann.
Wenn man also überprüfen will, ob die Indexierung auf einer bestimmten Platte läuft, kann man „mdutil -s“ ausführen um den Indexierungsstatus zu überprüfen.
mdutil -s Shell stephans-imac:~ stephan$ mdutil -s /Volumes/Macintosh\ HD /: Indexing enabled. stephans-imac:~ stephan$1234 stephans-imac:~stephan$mdutil-s/Volumes/Macintosh\HD/:Indexing enabledstephans-imac:~stephan$
Zeigt uns also das die Festplatte indexiert wurde und es dabei keine Probleme gegeben hat. Bei Problemen mit der Indexierung bekommt Ihr folgende Fehlermeldung.
mdutil -sa Shell stephans-imac:~ stephan$ mdutil -sa /.MobileBackups: 2013-12-08 13:24:56.311 mdutil[10651:507] Metadata.framework [Error]: mdsCopyStoreAttributes failed: (8) (os/kern) no access No index. stephans-imac:~ stephan$1234 stephans-imac:~stephan$mdutil-sa/.MobileBackups:2013-12-0813:24:56.311mdutil[10651:507]Metadata.framework[Error]:mdsCopyStoreAttributes failed:(8)(os/kern)no accessNo indexstephans-imac:~stephan$
Dies ist natürlich nur ein Beispiel um zu zeigen wie eine Fehlermeldung aussehen könnte.
Fehler beheben
Spotlight kann sich aus mannigfaltigen Gründen verschlucken, der einfachste Schritt zur Fehlerbehebung ist eine neu Indexierung. Dazu stoppt man Spotlight erst einmal via …
mdutil -i off stephans-imac:~ stephan$ sudo mdutil -i off /Volumes/Macintosh\ HD Password: /: Indexing disabled. stephans-imac:~ stephan$12345 stephans-imac:~stephan$sudo mdutil-ioff/Volumes/Macintosh\HDPassword:/:Indexing disabledstephans-imac:~stephan$
Die Meldung „Indexing disabled“ zeigt uns, dass die Indexierung beendet wurde. Wie Ihr oben seht geht das ganze nur via sudo.
Nun gilt es natürlich Spotlight wieder ans laufen zu bringen, denn ohne ist OS X so gut wie blind. Dies macht man via …
mdutil -i on stephans-imac:~ stephan$ sudo mdutil -i on /Volumes/Macintosh\ HD /: Indexing enabled.123 stephans-imac:~stephan$sudo mdutil-ion/Volumes/Macintosh\HD/:Indexing enabled
Normalerweise sollte hierbei auch der Spotlight Index neu erstellt, bzw. upgedatet werden, manchmal klappt das aber nicht so ganz. Dann kann man mdutil mit dem Parameter -E verwenden.
mdutil -E stephans-imac:~ stephan$ mdutil -E /Volumes/Stephan/ /Volumes/Stephan: Indexing and searching disabled. stephans-imac:~ stephan$1234 stephans-imac:~stephan$mdutil-E/Volumes/Stephan//Volumes/Stephan: Indexing andsearching disabledstephans-imac:~stephan$
Hiermit wird der Index auf dem angegebenem Volume komplett gelöscht.
Ist man sich nicht sicher und möchte einen „Rundumschlag“ auf alle angeschlossenen / eingebauten Datenträger abfeuern, so macht man dies mit dem Parameter -a .
Ich hoffe, diese kleine Übersicht in das Terminal und der Steuerung von Spotlight, hilft dem einen oder anderen von Euch bei der Fehlersuche. Vor allem bei Problemen mit Time Machine kann das ganz nützlich sein. Für ausführliche Diagnosen und Fehlersuche im Zusammenhang mit Time Machine möchte ich Euch Pondini.org an’s Herz legen.