WSL (ubuntu / windows) AppData \ Local \ Lxss no se sincroniza realmente con ubuntu, ¿ideas?


10

Si crea un archivo en bash (toque /root/foo.txt) que aparece en los directorios ocultos al AppData\Local\Lxss\ modificarlo, no lo cambia en bash. ¡Peor si lo cambia de nuevo en bash, el archivo que cambió a través del explorador se aplasta!

¿Hay algún punto de montaje real en C:\?

¿Dónde se esconde la imagen real? (como si el sistema de archivos estuviera escribiendo en un archivo de imagen en realidad?)

0:14:29 en este https://channel9.msdn.com/Events/Build/2016/C906 parece afirmar que tendrá acceso completo desde el explorador. 0:16:30 te muestran, AppData\Local\Lxss\ pero ni una sola vez mencionan que tus archivos no se sincronizarán como lo describí.


Es triste que no haya linux-binary o algo que pueda usar las llamadas sys que le enseñaron al ntkernel fuera de la cárcel (de vuelta a cygwin para eso :() pero necesitan al menos montar el sistema de archivos raíz grabable en Windows C: \ cuando aniversario se vuelve oro.
sabgenton

Supongo que siempre hay samba :(
sabgenton

1
Aparentemente no está destinado a ser usado de esa manera. github.com/Microsoft/BashOnWindows/issues/45
wbkang

Que tonteria. cosmicdanparece decir lo que hice cerca del final de los comentarios. Mac parece todavía una mejor configuración en este momento.
sabgenton

Respuestas:


4

Los archivos nuevos que se crean a través del Explorador de Windows posiblemente no aparezcan en bash porque les faltan atributos especiales de LXSS NTFS.

Cuando LXSS crea archivos en la raíz LXSS, les adjunta información adicional a través de atributos NTFS para almacenar cosas que no pueden ser representadas por los atributos NTFS estándar, como los permisos de archivos de Linux. Si faltan, los archivos no se muestran.

Esto se ve respaldado por el hecho de que si crea un archivo en bash y luego hace una copia con el Explorador de Windows, aparecerá en bash. Esto se debe presumiblemente a que todos los atributos especiales de LXSS se duplicaron con el archivo.

La capa del sistema de archivos LXSS también parece almacenar en caché el sistema de archivos, por lo que las entradas de directorio en bash no reflejarán el estado real del sistema de archivos si los archivos se agregan o eliminan hasta que se detengan todos los terminales bash (lo que finaliza la sesión LXSS en el servicio LXSS y por lo tanto borra el caché).


3

Ok, parece que las cosas AppData\Local\Lxss\son modificables y se sincronizarán con la sesión de Ubuntu bash.

Debes cerrar bash por completo. Y no puedes crear nuevos archivos.

Extraño como Microsoft parece decir que no puedes.

Sin embargo, aparte de ser molesto, esto todavía no es muy útil, ya que hacer nuevos archivos no parece funcionar.

No sé si la sesión de bash pone cosas en ram o qué, pero Microsoft puede hacer que esto suceda, parece ... Si así lo eligen.


3

Lo que funciona para mí es copiar con bash en lugar de usar Explorer.

El C-unidad está en / mnt / c por lo que con el fin de copiar la carpeta C: \ tmp \ test1 a / tmp / en su directorio principal fiesta de hacerlo: cp -r /mnt/c/tmp/test1 ~/tmp.


3

Creo que encontrarás esto ... increíblemente útil. Hay mucha información útil allí, pero se puede resumir como se aplica aquí en una sección:

Interoperabilidad con Windows

Si bien los archivos VolFs se almacenan en archivos normales en Windows en los directorios mencionados anteriormente, la interoperabilidad con Windows no es compatible. Si se agrega un nuevo archivo a uno de estos directorios desde Windows, carece de los EA necesarios para VolF, por lo que VolFs no sabe qué hacer con el archivo y simplemente lo ignora. Muchos editores también eliminarán los EA al guardar un archivo existente, de nuevo haciendo que el archivo sea inutilizable en WSL.

Además, dado que VFS almacena en caché las entradas de directorio, es posible que no se reflejen con precisión las modificaciones a los directorios que se realizan desde Windows mientras se ejecuta WSL.

El artículo habla sobre los detalles del sistema de archivos y los atributos extendidos también. Pero en resumen, modificar archivos WSL desde Windows es algo que no se debe hacer.


0

Hasta que resolvieron esto, instalé cygwin sshd para visibilidad del sistema de archivos NTFS nativo y ejecuté ubuntu sshd para visibilidad de los archivos linux lsxx. use apt-get para instalar sshfs y win-sshfs para hacer montajes en cada sentido. Es un hack redondo pero funciona para mí por ahora.

Si no desea meterse con el cygwin sshd, puede usar cygwin ssh para explorar los archivos de un lado a otro.

El uso de cygwin sshd ayuda a solucionar problemas de permisos de archivos mediante el uso de una cuenta de administrador real en el archivo .ssh / config. Tenía algunos permisos de acceso extraños a través de la interfaz DevFS / NTFS.


Solo debe "compartir" archivos a través de / mnt / en LXSS, no a través del sistema de archivos raíz.
ZiggyTheHamster
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.