Hartnäckiges Spotlight Problem

JochenN

Aktives Mitglied
Thread Starter
Dabei seit
05.12.2002
Beiträge
1.492
Reaktionspunkte
64
Hallo,
ich nutze auf einem Mac mini 2018 eine externe SSD (heißt "JDaten") als Datenplatte für die User-Verzeichnisse, weil die interne Macintosh HD nur 128 GB hat. Funktioniert auch sehr gut. Aber:

Seit einiger Zeit arbeitet Spotlight auf dieser Platte nicht mehr. Gestern habe ich mal etwas geforscht und gefunden, dass oftmals ein verstecktes file namens .metadata_never_index auf dem Root Level der Platte liegt und die Indizierung verhindert. Bei mir liegt die Sache (noch) etwas komplizierter. Einige Verzeichnisse haben genau dieses file und werden dann nicht indiziert. Soweit ok. die .metadata_never_index Datei kann man mit "locate" und auch mit "ls" sehen. Und wenn man so eine Datei löscht, kann man Spotlight auch wieder enablen.

Bei mir ist es aber so, dass es auf der Platte "JDaten" eine Datei (?) namens .metadata_never_index_unless_rootfs gibt. Diese wird zwar mit "locate" gefunden:
Code:
Mac-mini-LAN:JDaten m$ locate .metadata_never
/Library/Apple/System/Library/InstallerSandboxes/.metadata_never_index
/Library/InstallerSandboxes/.metadata_never_index
/Volumes/JDaten/.metadata_never_index_unless_rootfs
/Volumes/JDaten/Users/m/Library/Application Support/Google/Chrome/.metadata_never_index
/Volumes/JDaten/Users/m/OneDrive/Fotos Mediathek/Fotos-Mediathek.photoslibrary/private/.metadata_never_index
/Volumes/JDaten/Users/m/OneDrive/Fotos Mediathek/Fotos-Mediathek.photoslibrary/resources/.metadata_never_index
Mac-mini-LAN:Drop Box m$

... aber mit "ls" nicht angezeigt, was ich sehr merkwürdig finde:
Code:
Mac-mini-LAN:JDaten m$ ls -flac /Volumes/JDaten/.metadata_never_index_unless_rootfs
ls: /Volumes/JDaten/.metadata_never_index_unless_rootfs: No such file or directory
Mac-mini-LAN:JDaten m$

1. Frage an euch: Warum wird ein File mit locate gefunden, mit ls aber nicht?
2. Frage: Hat jemand einen Tipp, wie man auf so einer Platte Spotlight wieder aktiviert?
3. Frage (eher allgemein): Ich arbeite standardmäßig mit einem Mac-User ohne Admin-Rechte und empfehle das auch anderen immer. Wenn man aber Terminal-Anleitungen liest, wird immer $ sudo <command> erwähnt für Befehle, für die man mehr Privilegien braucht. Das funktioniert aber nicht (?), wenn der eingeloggte User kein Admin ist. Oder liegt ich da falsch?

Danke!!
 
Frage an euch: Warum wird ein File mit locate gefunden, mit ls aber nicht?
Weil ls alleine nur nichtversteckte Dateien anzeigt, deine .* aber versteckt ist.

Dann aber hilft ls -a
 
  • Gefällt mir
Reaktionen: dg2rbf
Deshalb hatte ich ja "ls -flac" genommen. Da ist das "ls -a" ja mit drin. (?)
 
gib mal im Terminal:
Code:
sudo mdutil -s /Volumes/deine-platte
ein
 
Deshalb hatte ich ja "ls -flac" genommen. Da ist das "ls -a" ja mit drin.
Du hast aber expressis verbis nur von ls geschrieben. Daher mein Hinweis aufs -a.

Nebenbei kann (#1, zweites Foto)
ls -flac /Volumes/JDaten/.metadata_never_index_unless_rootfs​
wegen des völlig zutreffenden Echos
No such file or directory
nicht funktionieren.
 
Du hast aber expressis verbis nur von ls geschrieben. Daher mein Hinweis aufs -a.
OK, im Code hatte ich das "ls -flac" drin. Vorher nur "ls"...
Nebenbei kann (#1, zweites Foto)
ls -flac /Volumes/JDaten/.metadata_never_index_unless_rootfs​
wegen des völlig zutreffenden Echos
No such file or directory
nicht funktionieren.
Ja, wenn dieses File dort nicht existiert, dann ist das Ergebnis von ls korrekt. Warum aber bringt "locate" genau dieses Ergebnis hervor. Mit "locate" habe ich aber keine Erfahrung...

Funktioniert nur als Admin
Eben. Es wird einerseits immer geraten (mache ich auch selbst), NICHT als Admin zu arbeiten. Wenn man aber in einem Nicht-Admin Account etwas einstellen will, wozu man Admin-Rechte braucht, klappt das nicht. Standardmäßig bekommt man nur den Hinweis ohne weiteren Kommentar (siehe oben auch von win2mac), man sollte sudo voranstellen. Wenn man aber so arbeitet wie man sollte, klappt das nicht. (Ich habe es in der Zwischenzeit mit "su" hinbekommen).
 
und was kommt raus wenn du nur ls -la /Volumes/JDaten eingibst?
 
und was kommt raus wenn du nur ls -la /Volumes/JDaten eingibst?
Das kann ich leider nicht mehr sehen. Mittlerweile ist - wahrscheinlich durch das "gewaltsame" Aktivieren von Spotlight für das Volume per "su <adminuser>" - das Problem gelöst und auch der Output von locate
Code:
Mac-mini-LAN:JDaten m$ locate .metadata_never
/Volumes/JDaten/.metadata_never_index_unless_rootfs
ist nicht mehr vorhanden.

Die Diskussion an dieser Stelle wäre für mich nur insoweit interessant, weil es gerade bei $ locate .metadata_never ein Ergebnis gab, das auf das Vorhandensein eines Files hindeutete, das es aber offenbar doch nicht gab. Das Problem tauchte auch nur bei dem Eintrag mit *unless_rootfs auf. Allerdings auch dann, wenn man im Terminal als Root angemeldet war. Und ja, ich hatte den Root-User temporär aktiviert.

Ich bin leider nicht Unix-Guru genug, um beurteilen zu können, ob es solche Fälle gibt, wo also locate ein Ergebnis bringt, aber ls oder ls -la oder ls -flac eben nicht.

Zur weitere Klärung kann ich kaum noch etwas beitragen. Da das eigentliche Problem gelöst ist, danke ich allen hier sehr für die Beiträge und das Mitdenken!
 
Ich bin leider nicht Unix-Guru genug​
Ich auch nicht.

Da aber Echos eingegebener Shell-Befehle stur logisch zu verstehen sind, ist es plausibel, dass wenn die Datei
.metadata_never_index_unless_rootfs
lokalisiert (locate) werden soll, diesen in
/Volumes/JDaten/
gefunden wird, aber ein Listing (ls), dass sich auf den Inhalt eines Verzeichnisses bezieht, bei
ls -flac /Volumes/JDaten/.metadata_never_index_unless_rootfs
erwartbar nichts findet, weil
.metadata_never_index_unless_rootfs
eben kein Verzeichnis ist (siehe man ls).

Heißt aber auch, dass
ls -(fl)a(c) /Volumes/JDaten/
eine Datei namens
.metadata_never_index_unless_rootfs
mit im Echo auflisten würde.
 
  • Gefällt mir
Reaktionen: lisanet
Die Diskussion an dieser Stelle wäre für mich nur insoweit interessant, weil es gerade bei $ locate .metadata_never ein Ergebnis gab, das auf das Vorhandensein eines Files hindeutete, das es aber offenbar doch nicht gab. Das Problem tauchte auch nur bei dem Eintrag mit *unless_rootfs auf. Allerdings auch dann, wenn man im Terminal als Root angemeldet war. Und ja, ich hatte den Root-User temporär aktiviert.

Ich bin leider nicht Unix-Guru genug, um beurteilen zu können, ob es solche Fälle gibt, wo also locate ein Ergebnis bringt, aber ls oder ls -la oder ls -flac eben nicht.

Zur weitere Klärung kann ich kaum noch etwas beitragen. Da das eigentliche Problem gelöst ist, danke ich allen hier sehr für die Beiträge und das Mitdenken!

locate verwendet eine eigene Datenbank für die Suche und wird zyklisch (alle paar Stunden) upgedated. Bei 10.13.6 war sie bei mir auf einem alten Rechner nicht aktiv:

Code:
minis4:~ USERXXX$ locate x

WARNING: The locate database (/var/db/locate.database) does not exist.

To create the database, run the following command:

  sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Please be aware that the database can take some time to generate; once
the database has been created, this message will no longer appear.


Ob sie bei neueren MacOS-Versionen standardmäßig aktiviert ist, weiß ich nicht mehr. Interessant wäre eine Spotlightsuche nach dieser Datei, aber das hat sich ja jetzt erledigt.
 
  • Gefällt mir
Reaktionen: fox78
Zurück
Oben Unten