web-dev-qa-db-fra.com

WSL (Ubuntu / Windows) Appdata \ Local \ LXSS ne se synchronise pas réellement à Ubuntu, Idées?

Si vous créez un fichier à bash (touchez /root/foo.txt) qui apparaît dans les répertoires cachés de AppData\Local\Lxss\ Modifier il ne le change pas dans Bash. Pire si vous le modifiez à nouveau dans BASH, le fichier que vous avez changé à travers l'explorateur est classé!

Y a-t-il un véritable point de montage sur C:\?

Où est la vraie image cachée ?? (J'aime le système de fichiers écriture dans un fichier image en réalité?)

0:14:29 Dans ceci https://channel9.msdn.com/events/build/2016/c906 Semble demander que vous aurez un accès complet à l'explorateur. 0:16:30 Ils vous montrent AppData\Local\Lxss\ Mais ne mentionnez pas une fois que vos fichiers ne seront pas synchronisés comme je l'ai décrit.

9
sabgenton

Les nouveaux fichiers créés via Windows Explorer ne figurent éventuellement pas dans Bash car ils manquent des attributs SPÉCIAL LXSS NTFS.

Lorsque LXSS crée des fichiers de la racine LXSS, il leur attache des informations supplémentaires via les attributs NTFS pour stocker des éléments qui ne peuvent pas être représentés par les attributs NTFS standard, tels que les autorisations de fichier Linux. Si ceux-ci sont manquants, les fichiers ne se présentent pas.

Ceci est soutenu par le fait que si vous faites un fichier à bash, puis effectuez une copie de celui-ci avec Windows Explorer, il apparaît dans Bash. Ceci est probablement parce que tous les attributs spéciaux LXSS ont été dupliqués avec le fichier.

La couche de système de fichiers LXSS apparaît également de cache le système de fichiers. Les entrées de répertoires de BASH ne refléteront pas l'état réel du système de fichiers si des fichiers sont ajoutés ou supprimés jusqu'à ce que toutes les bornes BASH soient arrêtées (qui met fin à la session LXSS dans le service LXSS. et donc efface le cache).

4
Ryan

Ok, il semble des choses à AppData\Local\Lxss\ est modifiable et se synchronisera à la session Ubuntu Bash.

Vous devez fermer complètement bash. Et vous ne pouvez pas créer de nouveaux fichiers.

Étrange comme Microsoft semble dire que vous ne pouvez pas.

Cependant, autre que d'être ennuyeux, cela n'est toujours pas très utilisable car de nouveaux fichiers ne semblent pas fonctionner.

Je ne sais pas si la session Bash met des trucs dans la RAM ou ce que Microsoft peut faire cela arriver, il semble que cela semble. S'ils choisissent.

3
sabgenton

Je pense que vous trouverez cela ... incroyablement utile. Il y a beaucoup de choses tiles Information là-bas, mais on peut être résumé dans la mesure où elle s'applique ici dans une section:

Interopérabilité avec Windows

Bien que les fichiers Volfs soient stockés dans des fichiers réguliers sous Windows dans les répertoires mentionnés ci-dessus, l'interopérabilité avec Windows n'est pas prise en charge. Si un nouveau fichier est ajouté à l'un de ces répertoires de Windows, il manque les eas nécessaires par Volfs. Volfs ne sait donc pas quoi faire avec le fichier et simplement l'ignorer. De nombreux éditeurs élimineront également les eas lors de la sauvegarde d'un fichier existant, ce qui rend le fichier inutilisable dans WSL.

De plus, étant donné que VFS met en cache des entrées de répertoire, toute modification de ces répertoires fabriquées à partir de Windows tandis que WSL s'exécute peut ne pas être reflétée avec précision.

L'article parle des spécificités du système de fichiers et des attributs étendus. Mais en résumé, la modification des fichiers WSL de Windows est nulle part.

3
ehiller

Ce qui fonctionne pour moi est de copier avec BASH au lieu d'utiliser Explorer.

Le C-Drive est AT/MNT/C afin de copier le dossier C:\TMP\Test1 sur/TMP/dans votre annuaire Bash Home Do: cp -r /mnt/c/tmp/test1 ~/tmp.

3
toft