Spotlight erweiterte Fehlersuche

Von Berlinerbande @berlinerbande

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.

man mdutil mdutil(1) BSD General Commands Manual mdutil(1) NAME mdutil -- manage the metadata stores used by Spotlight SYNOPSIS mdutil [-pEsav] [-i on | off] mountPoint ... DESCRIPTION The mdutil command is useful for managing the metadata stores for mounted volumes. The following options are available: -p Spotlight caches indexes of some network devices locally. This option requests that a local caches be flushed to the appropriate network device. -E This flag will cause each local store for the volumes indicated to be erased. The stores will be rebuilt if appropriate. -i on | off Sets the indexing status for the provided volumes to on or off. Note that indexing may be delayed due to low disk space or other condi- tions. -d Disables Spotlight searches on the provided volume. -s Display the indexing status of the listed volumes. -a Apply command to all volumes. -v Print verbose information when available. SEE ALSO mdfind(1), mds(8), mdimport(1)

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.