20 votes

L'indexation Spotlight du flux de fichiers Google Drive est désactivée au redémarrage.

J'ai récemment reçu un Macbook Air M1, 2020 fonctionnant sous MacOS Big Sur 11.2.3. Je m'appuie sur le flux de fichiers Google Drive pour mon travail et j'ai réussi jusqu'à présent à installer le programme avec succès. Cependant, il semble que je rencontre des problèmes pour indexer le lecteur avec Spotlight. Spotlight n'indexe pas automatiquement le lecteur, et je dois l'exécuter : sudo mdutil -i on /Volumes/GoogleDrive/ à chaque fois que je démarre la machine. Il faut un certain temps pour indexer le disque de 80 gigaoctets, puis cela fonctionne comme je l'aime. Le seul problème est que lorsque je redémarre la machine, il semble que l'index ait disparu et lorsque je lance le programme sudo mdutil -s /Volumes/GoogleDrive/ il indique que l'indexation est désactivée. J'espère qu'il y a une solution pour que l'indexation reste en place et que je n'aie pas à l'activer et à attendre à chaque fois que je démarre la machine.

Il existe des instructions distinctes pour installation de GDFS sur un Mac M1 Mais comme mon installation s'est déroulée sans problème, je n'ai pas démarré en mode de récupération ou quoi que ce soit d'autre. Je me demande si le fait d'autoriser l'utilisateur à gérer les extensions du noyau peut résoudre ce problème, car je préfère ne pas trop toucher à cet ordinateur professionnel.

18voto

emersonford Points 329

Voici une solution de contournement étape par étape pour Google Drive v49 (peut ne pas fonctionner dans les futures versions) :

  1. Quittez Google Drive (cliquez sur l'icône Google Drive dans la barre de menu, puis sur la roue dentée, et enfin sur Quitter).
  2. Sauvez ce fichier quelque part comme change_gdrive_smb_port.py (ex : curl -LO https://gist.githubusercontent.com/emersonford/85cc74f7f90c81d1b75c3c246124591d/raw/442834222e2aaa2be61badb6e84f53183ee10624/change_gdrive_smb_port.py ).
  3. Lisez vous-même le script pour vous assurer qu'il peut être exécuté en toute sécurité.
  4. Exécuter ce script avec python3 change_gdrive_smb_port.py . Il vous donnera quelques indications lorsqu'il aura trouvé un compte et sur quel port modifier le port SMB de ce compte. Ces ports doivent être des ports inutilisés sur votre système.
  5. Relancez Google Drive.
  6. Exécuter le mdutil -i on la commande script crache.
  7. Laissez à Spotlight le temps de tout indexer dans Google Drive. Il devrait maintenant rester activé !

Si mon script casse Google Drive ou si vous souhaitez réinitialiser cette modification, il vous suffit de supprimer core_feature_config de ~/Library/Application Support/Google/DriveFS/<ACCOUNT_NUM> et redémarrez Google Drive.

EDIT : Ce n'est pas aussi permanent que je le pensais. Il semble que Google puisse pousser à distance des changements dans le fichier "feature_config", ce qu'ils ont fait une fois par jour d'après ce qu'ils ont vu. Quand ils poussent des changements, ils finissent par écraser les changements que mon script a fait à core_feature_config ...

Au minimum, vous pouvez toujours réexécuter le script et redémarrer Google Drive (enchaînez-le avec pkill "Google Drive" && sleep 5 && echo "yes\n[PORT_NUM]" | python3 change_gdrive_smb_port.py && open /Applications/Google\ Drive.app ). Ce n'est pas génial, mais cela préserve la base de données de l'index Spotlight, de sorte que vous n'avez pas à attendre / gaspiller des cycles CPU pour réindexer à chaque fois.

Je mettrai à nouveau à jour cette page si je trouve une solution de contournement !

Explication technique


Google Drive avait l'habitude d'utiliser un FUSE appelé DriveFS sur MacOS, qui semble avoir intégré la prise en charge de l'indexation Spotlight. Il semble -- et ce n'est qu'une spéculation de ma part car je ne suis pas un employé de Google -- qu'ils ont eu beaucoup de mal à l'intégrer aux nouveaux Macs M1, d'après ce qui suit article . Même sans cela, les implémentations de FUSE ont tendance à être vraiment difficiles à maintenir, donc je ne les blâmerais pas de vouloir s'en éloigner.

Je suppose que dans le cadre du déploiement de Google Drive pour tout le monde, ils voulaient s'assurer que tout le monde pouvait utiliser Google Drive sans avoir à se soucier des extensions du noyau. Ils semblent donc avoir migré le système de fichiers de Google Drive vers une implémentation de serveur Samba, puis monté ce dernier avec le client Samba intégré de MacOS (d'où la raison pour laquelle vous voyez maintenant 'localhost' monté dans Network). C'est plutôt malin si vous voulez mon avis !

Le problème de Spotlight est double. Premièrement, Apple désactive par défaut Spotlight sur les lecteurs réseau (probablement à juste titre), ce qui signifie que vous devez maintenant activer manuellement Spotlight sur Google Drive.

Deuxièmement, Google Drive définit la liaison du port du serveur Samba sur -1, ce qui signifie que le système d'exploitation choisit un port disponible aléatoire pour vous. Je ne sais pas quand cela a changé, mais Spotlight ne place plus son index dans le dossier Root avec le nom Spotlight-V100 . Tous les index de Spotlight sont maintenant stockés dans /var/db/Spotlight-V100 ; de plus, pour les lecteurs réseau, cet index est nommé de la manière suivante smb%3A%2F%2FDRIVE@localhost%3A59999%2FGoogle%2520Drive . Si vous regardez bien, le numéro de port du lecteur réseau fait partie du nom de l'index Spotlight. C'est pourquoi l'indexation Spotlight semble se désactiver d'elle-même après un certain temps. Lorsque Google Drive remonte le FS (parfois de manière aléatoire, parfois lors de déconnexions du réseau), il est probable que le système d'exploitation lui a attribué un nouveau port auquel se lier. Ainsi, pour Spotlight, cela ressemble à un lecteur réseau entièrement différent sur lequel vous n'avez pas activé l'indexation Spotlight, donc vous devez non seulement réactiver l'indexation, mais aussi attendre que Spotlight indexe tout à nouveau.

J'ai fouillé dans les journaux (dans ~/Library/Application Support/Google/DriveFS/Logs ) et j'ai remarqué ceci dans la section de démarrage :

2021-07-22T18:12:33.759ZI [6139763:CrBrowserMain] global_features_manager.cc:266:CompositeAll Composited global features *WITHOUT* overrides: drive_dot: true
...
mac_smb_port: -1
...

Il semble donc que le changement du port SMB en port statique soit une préférence, il faut juste trouver où. Il m'a fallu un peu de temps pour le trouver, car il ne semble pas s'agir d'un paramètre plist, mais en utilisant la commande strings j'ai pu en déduire que c'était en core_feature_config dont j'ai découvert qu'il s'agissait d'un fichier binaire dans le fichier protobuf format. Il suffisait donc de trouver le bon champ et de remplacer le mac_smb_port avec ce que je voulais (avec le bon encodage protobuf). Une fois que j'ai compris cela avec le bon script, Spotlight a été stable pour moi depuis !

Je ne pense pas que ce sera un problème pendant longtemps, donc si vous n'êtes pas à l'aise en utilisant mon script et que vous êtes prêt à attendre, je pense que vous pouvez rester tranquille. Soit les gens de Google Drive ajouteront un numéro de port statique (ou un paramètre) pour résoudre ce problème, soit ils migreront vers l'utilisation de la fonction intégrée Fournisseur de fichiers (que j'ai découvert que vous pouvez activer dès maintenant en changeant un autre drapeau dans le fichier core_feature_config ), qui aura probablement une meilleure prise en charge de Spotlight intégrée.

5voto

Je sais que la plupart d'entre vous sont intéressés à résoudre le problème lorsque streaming Le contenu de Google Drive (option "Stream Files" activée dans "Paramètres", voir la capture d'écran de @kortina).

Mais pour ceux d'entre vous (comme moi) qui ont fini par lire cet article parce que Spotlight n'indexe pas votre dossier Drive malgré l'utilisation de l'option "Mirror Files la solution est simple : suivre ces les instructions et redémarrer.

Edit : voici les instructions :

Allez dans Préférences Système/ Spotlight. Cliquez sur l'onglet Confidentialité. Faites glisser le dossier Google Drive dans la liste des emplacements que Spotlight ne peut pas rechercher. Attendez un moment, puis cliquez sur le bouton de suppression (-) pour le retirer de la liste. Quittez les Préférences Système. Spotlight va maintenant commencer à indexer le dossier, ce que vous pouvez vérifier en regardant les processus actifs dans Activity Monitor. Lorsque c'est terminé, redémarrez votre Mac.

Ça a marché pour moi, ça marchera pour vous !

3voto

kortina Points 169

Cela me rendait également fou, et j'étais prêt à essayer de mettre en place un cron pour exécuter la solution de contournement Python script à partir de @emersonford (ce qui est très bien et je vous remercie d'ailleurs), mais je pense avoir trouvé une meilleure solution pour mes besoins.

J'ai remarqué dans GoogleDrive préférences sous Options de synchronisation Google Drive > My Drive si vous passez de Stream à Miroir et choisissez ensuite un dossier local (j'ai fait ~/gd ), Spotlight semble indexer tous les fichiers !

Change from Streaming to Mirror

Je viens de l'activer et cela semble fonctionner jusqu'à présent, je croise les doigts pour que cela continue.

1voto

HectorMac Points 3961

Pour les utilisateurs d'Alfred App (comme moi : recommandé !), il existe une solution de contournement facile : https://www.alfredapp.com/blog/guides-and-tutorials/google-drive-workflow/ - J'essaie toujours de le faire fonctionner, mais apparemment d'autres personnes n'ont aucun problème à le mettre en place et à le faire fonctionner.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X