9

Если вы создаете файл в bash (touch /root/foo.txt), который появляется в скрытых каталогах в AppData\Local\Lxss\ его изменение не изменяет его в bash. Хуже, если вы измените его снова в bash, файл, который вы изменили через проводник, будет засорен!

Есть ли реальная точка монтирования на C:\ ?

Где настоящий образ прячется ?? (как в реальности файловая система записывает обратно в файл изображения?)

0:14:29 в этом https://channel9.msdn.com/Events/Build/2016/C906, кажется, утверждают, что у вас будет полный доступ из проводника. 0:16:30 они показывают вам AppData\Local\Lxss\ но ни разу не упоминают, что ваши файлы не будут синхронизироваться, как я описал.

5 ответов5

4

Новые файлы, созданные с помощью проводника Windows, возможно, не отображаются в bash, поскольку в них отсутствуют специальные атрибуты LXSS NTFS.

Когда LXSS создает файлы в корне LXSS, он присоединяет к ним дополнительную информацию через атрибуты NTFS для хранения вещей, которые не могут быть представлены стандартными атрибутами NTFS, таких как разрешения для файлов Linux. Если они отсутствуют, файлы не отображаются.

Это подтверждается тем фактом, что если вы создаете файл в bash, а затем копируете его в Windows Explorer, он появляется в bash. Вероятно, это связано с тем, что все специальные атрибуты LXSS были продублированы с файлом.

Уровень файловой системы LXSS также, по-видимому, кэширует файловую систему, поэтому записи каталога в bash не будут отражать фактическое состояние файловой системы, если файлы добавляются или удаляются, пока все терминалы bash не будут остановлены (что завершает сеанс LXSS в службе LXSS и отсюда очищает кеш).

3

Хорошо, кажется, что вещи в AppData\Local\Lxss\ и будут синхронизированы с сеансом Ubuntu bash.

Вы должны полностью закрыть bash. И вы не можете создавать новые файлы.

Как ни странно, но Microsoft, похоже, не может

Однако кроме того, что надоедает, это все еще не очень удобно, так как создание новых файлов, похоже, не работает.

Я не знаю, помещает ли сессия bash что-то в оперативную память или что, но Microsoft может заставить это случиться, это кажется .. Если они выбирают.

3

Я думаю, вы найдете это ... невероятно полезным. Там довольно много полезной информации, но ее можно подытожить, применимо здесь, в одном разделе:

Совместимость с Windows

Хотя файлы VolFs хранятся в обычных файлах Windows в указанных выше каталогах, совместимость с Windows не поддерживается. Если новый файл добавляется в один из этих каталогов из Windows, ему не хватает советников, необходимых для VolF, поэтому они не знают, что делать с файлом, и просто игнорируют его. Многие редакторы также удаляют советники при сохранении существующего файла, снова делая файл непригодным для использования в WSL.

Кроме того, поскольку VFS кэширует записи каталогов, любые изменения в этих каталогах, выполненные из Windows во время работы WSL, могут не отражаться точно.

В статье рассказывается о специфике файловой системы и расширенных атрибутах. Но в целом, изменение файлов WSL из Windows не требуется.

3

Что мне подходит, так это копирование с помощью bash вместо использования Explorer.

C-диск находится в /mnt /c, поэтому, чтобы скопировать папку C:\tmp\test1 в /tmp / в вашем домашнем каталоге bash, выполните: cp -r /mnt/c/tmp/test1 ~/tmp .

0

Пока они не сработали, я установил cygwin sshd для просмотра собственной файловой системы NTFS и запустил ubuntu sshd для просмотра файлов lsxx linux. используйте apt-get для установки sshfs и win-sshfs, чтобы монтировать каждый путь. Это обходной хак, но у меня пока работает.

Если вы не хотите связываться с cygwin sshd, вы можете использовать cygwin ssh для просмотра файлов туда-сюда.

Использование cygwin sshd помогает обойти проблемы с правами доступа к файлам, используя реальную учетную запись администратора в файле .ssh/config. У меня были странные разрешения на доступ через интерфейс DevFS/NTFS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .