Что такое домашний каталог в подсистеме Windows для Linux?

Когда я запускаю bash в подсистеме Windows для Linux, он попадает в каталог

 /mnt/c/Users /  

Когда я ls этот каталог, я вижу каталоги Desktop , Документы и т. д., которые я вижу, находятся в C:Users с помощью проводника Windows. Так как здесь началась программа bash , я ожидал, что это мой домашний каталог, но когда я набираю либо cd , либо cd ~ Я попал в

 /home/  

, который содержит мой .bashrc , .profile и т. д., который я ожидал бы найти в своем домашнем каталоге в ящике Linux. Кроме того, введя отсюда cd ../.. , я могу увидеть каталоги bin , и т. Д. и так далее, опять же, как и ожидалось, на Linux.

У меня есть два вопроса по этому поводу:

  1. Что такое /mnt/ c/Users/ по сравнению с C:Users ? Кажется, они одно и то же — так что же такое /mnt/c/?
  2. Как мне просмотреть файлы в /home/ с помощью проводника Windows? Не то чтобы я действительно когда-либо хотел — я просто пытаюсь понять, как Windows организует эту подсистему для Linux.

Для 2: текущий путь теперь связан с тем, какой дистрибутив вы установили из Microsoft Store, а не с одним глобальным путем; для Ubuntu он теперь находится по адресу:

 % LOCALAPPDATA%  Packages  CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc  LocalState  rootfs  

I предположим, что другие дистрибутивы будут в аналогичном месте в соответствующих папках внутри:

 % LOCALAPPDATA%  Packages   

Это — это старый ответ, действующий по состоянию на 2018 год, а в последних версиях [2020] доступ к файловой системе осуществляется из:

  # \ wsl $    : \ wsl $  Ubuntu  


Для 2: текущий путь теперь связан к какому дистрибутиву вы установили из Microsoft Store, а не по одному глобальному пути; для Ubuntu он теперь находится по адресу:

 % LOCALAPPDATA%  Packages  CanonicalGroupLimited. UbuntuonWindows_79rhkp1fndgsc  LocalState  rootfs  

Я предполагаю, что другие дистрибутивы будут в аналогичном месте в своих соответствующих папках внутри:

 %  LOCALAPPDATA%  Packages   

Это старый ответ, действующий по состоянию на 2018 год, а в последних версиях [2020] доступ к файловой системе осуществляется из:

  # \ wsl $  : \ wsl $  Ubuntu  

В Bash, чтобы просмотреть текущий каталог в проводнике Windows, просто введите:

  explorer.exe.  

Не пропускайте «.».

Это откроет проводник Windows в текущей папке, и вы сможете увидеть, где все находится относительно остальной части вашей системы Windows.


В Bash, чтобы просмотреть текущий каталог в проводнике Windows, просто введите:

  explorer.exe.  

Не пропускайте «.».

Это откроет проводник Windows в текущей папке, и вы сможете увидеть, где все находится по отношению к остальной части вашей системы Windows.


  1. /mnt/c — это то же самое, что и C: . Это просто синтаксис для доступа к нему из WSL.
  2. Загляните в C: Users AppData Local Lxss rootfs .

  1. /mnt/c то же самое, что и C: . Это просто синтаксис для доступа к нему из WSL.
  2. Загляните в C: Users AppData Local Lxss rootfs .

О файловой системе, смонтированной на /mnt/c

  1. Что именно/mnt/c/Users/по сравнению с C: Users ? Кажется, они одно и то же — так что же такое/mnt/c/?

В отличие от Windows, Linux (и других систем, основанных на Unix) используют единую структуру папок независимо от количества имеющихся у вас дисков. Если у вас несколько дисков, все эти диски в какой-то момент должны быть смонтированы в структуру папок.

  • Обычно все диски (разные чем используемые для загрузки системы) смонтированы в папке с именем /mnt или /media

WSL имеет особый тип файловой системы с именем DrvFS, который дает вам доступ к дискам, используемым в Windows. Вы можете использовать DrvFS для монтирования не только файловой системы Windows, но также сетевых дисков и других типов носителей..

  • В WSL по умолчанию диск C: в Windows монтируется под /mnt/c
  • Если у вас есть другой диск, например диск D: в Windows, он будет смонтирован в папке /mnt/d

Файлы, которые вы видите в /mnt/c , такие же, как и в C: . Если вы измените какой-либо файл, вы также получите изменения в окнах.

Вы можете использовать команду mount для доступа к другим типам носителей (например, съемным дискам или сетевые ресурсы).


О местонахождении /home/

  1. Как просмотреть файлы в/home/с помощью проводника Windows? Не то чтобы я действительно когда-либо хотел — я просто пытаюсь понять, как Windows организует эту подсистему для Linux.

В WSL, вся файловая система Linux находится в папке Windows. Расположение папки зависит от версии Windows и используемого вами дистрибутива WSL.

  • Первоначальные версии WSL хранят Linux файловая система в %LOCALAPPDATA%Lxssrootfs
  • дистрибутивы WSL, установленные из Магазина Windows , начиная с сборки Windows Build 16215 ( середина 2017 г.) используйте папку типа % LOCALAPPDATA% Packages {package} LocalState rootfs . Имя пакета зависит от дистрибутива (например, для Ubuntu оно отличается от Debian). Например, для Ubuntu в Windows это CanonicalGroupLimited.UbuntuonWindows_ {code} .
  • Дистрибутивы Linux, установленные с помощью других инструментов , таких как lxRunOffline или WSL-DistroLauncher, могут хранить файловую систему Linux в любом месте.

Вы можете проверить множество опций, чтобы узнать расположение папки WSL. Например, я думаю, что самый простой вариант — использовать lxRunOffline, чтобы узнать папку установки.

  ## Вы можете использовать lxrunoffline, чтобы проверить, какие дистрибутивы WSL установлены ##, используя: lxrunoffline  listC: > lxrunoffline listbackupUbuntu-18.04 ## И вы можете использовать его для получения местоположения любой из этих установок WSL ##, используя: lxrunoffline get-dir -n  C: > lxrunoffline get-dir -n  backupc:  wsl  installed  backupC: > lxrunoffline get-dir -n UbuntuC:  Users  Jaime  AppData  Local  Packages  CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc  LocalState  

После того, как вы знать расположение папки установки, /home/ находится в rootfs home username .

  • Например, если ваша установочная папка c:wslubuntu
  • , то /home / находится в c:wslubunturootfshomeusername

ПРИМЕЧАНИЕ. Оба Linux и Windows хранят права доступа к файлам по-разному. В настоящее время WSL DrvFS хранит разрешения Linux в виде потоков (метаданных), прикрепленных к файлам, которые вы можете видеть в Windows. Microsoft не рекомендует изменять файлы Linux с помощью программ Windows. Возможно, некоторые приложения Windows повреждают разрешения Linux, не заметив этого.


О файловой системе, смонтированной на /mnt/c

  1. Что такое/mnt/c/Users /по сравнению с C: Users ? Кажется, они одно и то же — так что же такое/mnt/c/?

В отличие от Windows, Linux (и других систем, основанных на Unix) используют единую структуру папок независимо от количества имеющихся у вас дисков. Если у вас несколько дисков, все эти диски в какой-то момент должны быть смонтированы в структуру папок.

  • Обычно все диски (разные чем используемые для загрузки системы) смонтированы в папке с именем /mnt или /media

WSL имеет особый тип файловой системы с именем DrvFS, который дает вам доступ к дискам, используемым в Windows. Вы можете использовать DrvFS для монтирования не только файловой системы Windows, но также сетевых дисков и других типов носителей.

  • В WSL по умолчанию C: диск в Windows монтируется под /mnt/c
  • Если у вас есть другой диск, например D: в Windows, он будет смонтирован под /mnt/d

Файлы, которые вы можете увидеть в /mnt /c такие же, как в C: . Если вы измените какой-либо файл, вы также получите изменения в окнах.

Вы можете использовать команду mount для доступа к другим типам носителей (например, съемным дискам или сетевые ресурсы).


О местонахождении /home/

  1. Как просмотреть файлы в/home/с помощью проводника Windows? Не то чтобы я действительно когда-либо хотел — я просто пытаюсь понять, как Windows организует эту подсистему для Linux.

В WSL, вся файловая система Linux находится в папке Windows. Расположение папки зависит от версии Windows и используемого вами дистрибутива WSL.

  • Первоначальные версии WSL хранят Linux файловая система в %LOCALAPPDATA%Lxssrootfs
  • дистрибутивы WSL, установленные из Магазина Windows , начиная с сборки Windows Build 16215 ( середина 2017 г.) используйте папку типа % LOCALAPPDATA% Packages {package} LocalState rootfs . Название пакета зависит от дистрибутива (например, для Ubuntu оно отличается от Debian). Например, для Ubuntu в Windows это CanonicalGroupLimited.UbuntuonWindows_ {code} .
  • Дистрибутивы Linux, установленные с помощью других инструментов , таких как lxRunOffline или WSL-DistroLauncher, могут хранить файловую систему Linux в любом месте.

Вы можете проверить множество опций, чтобы узнать расположение папки WSL. Например, я думаю, что самый простой вариант — использовать lxRunOffline, чтобы узнать папку установки.

  ## Вы можете использовать lxrunoffline, чтобы проверить, какие дистрибутивы WSL установлены ##, используя: lxrunoffline  listC: > lxrunoffline listbackupUbuntu-18.04 ## И вы можете использовать его для получения местоположения любой из этих установок WSL ##, используя: lxrunoffline get-dir -n  C: > lxrunoffline get-dir -n  backupc:  wsl  installed  backupC: > lxrunoffline get-dir -n UbuntuC:  Users  Jaime  AppData  Local  Packages  CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc  LocalState  

После того, как вы знать расположение папки установки, /home/ находится в rootfs home username .

  • Например, если ваша установочная папка c:wslubuntu
  • , то /home / находится в c:wslubunturootfshomeusername

ПРИМЕЧАНИЕ. Оба В Linux и Windows права доступа к файлам хранятся по-разному. В настоящее время WSL DrvFS хранит разрешения Linux в виде потоков (метаданных), прикрепленных к файлам, которые вы можете видеть в Windows. Microsoft не рекомендует изменять файлы Linux с помощью программ Windows. Возможно, что некоторые приложения Windows повредят разрешения Linux, не заметив этого.


С текущей версией Windows 10 Insider (Fast Ring: Windows 10 build 19025.1) вы можете смонтировать свой дистрибутив как сетевой диск.

WSL доступен как wsl $ , путь — это ваше имя дистрибутива ( wsl -l -q ).

Например, net use Z: \ wsl $ Debian/PERSISTENT: YES


С текущей программой предварительной оценки Windows 10 (Fast Ring: Windows 10 build 19025.1) вы можете смонтировать свой distro в качестве сетевого диска.

WSL доступен как wsl $ , путь — это ваше имя дистрибутива ( wsl -l -q ).

Например, net use Z: \ wsl $ Debian/PERSISTENT: YES


Это зависит от того, в какой сборке Windows вы используете, для меня в 2018 году на 64-разрядной версии Windows 10 Pro Версия 1709 (сборка ОС 16299.522), а также Версия 1803 (сборка ОС 17134.165) расположение по-прежнему:

C: Users AppData Local lxss

Фокус в том, что когда вы находитесь в C: Users AppData Local , вы не увидите lxss (если вы не сняли флажок «Скрыть защищенные системные файлы (рекомендуется)» в параметрах папки).

Однако просто добавьте lxss в адресную строку проводника Windows, и он перенесет вас в папку.

(Примечание I не было % LOCALAPPDATA% Packages CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc или чего-либо подобного, упомянутого в ответе Майкла Бондса)

Обновление

Оказывается, есть устаревший WSL, который я установил. Теперь WSL предоставляется через приложение магазина Microsoft. Существуют версии для Ubuntu 18.04 LTS, а также теперь несколько других разновидностей Linux (например, Debian). Если вы хотите быть в курсе последних событий, вам следует удалить устаревший WSL и установить версию магазина Microsoft.

Местоположение вашей домашней папки будет зависеть от того, какой из этих типов WSL вы установили. В версии магазина Microsoft он, как упоминалось в других ответах, будет расположен по адресу:

% LOCALAPPDATA% Packages CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc LocalState rootfs


Это зависит от того, в какой сборке Windows вы используете, для меня в 2018 году на 64-разрядной версии Windows 10 Pro , Версия 1709 (сборка ОС 16299.522), а также Версия 1803 (сборка ОС 17134.165) расположение по-прежнему:

C: Users AppData Local lxss

Хитрость в том, что когда вы находитесь в C: Users AppData Local , вы не увидите lxss (если только вы не сняли флажок «Скрыть защищенные системные файлы (рекомендуется)» в параметрах папки).

Однако просто добавьте lxss в адресной строке проводника Windows, и он перенесет вас в папку.

(Обратите внимание, что у меня не был % LOCALAPPDATA% Packages CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc или что-нибудь подобное, что было упомянуто в ответе Майкла Бондса)

Обновление

Оказывается, есть устаревший WSL, который я установил. Теперь WSL предоставляется через приложение магазина Microsoft. Существуют версии для Ubuntu 18.04 LTS, а также теперь несколько других разновидностей Linux (например, Debian). Если вы хотите быть в курсе последних событий, вам следует удалить устаревший WSL и установить версию магазина Microsoft.

Местоположение вашей домашней папки будет зависеть от того, какой из этих типов WSL вы установили. В версии магазина Microsoft он, как упоминалось в других ответах, будет расположен по адресу:

% LOCALAPPDATA% Packages CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc LocalState rootfs


  1. Используя консоль WSL bash, в вашем домашнем каталоге создайте файл с произвольным конкретным имя, например «test_here.txt».
  2. Затем с помощью проводника Windows с помощью поля поиска найдите файл test_here.txt.
  3. В найденном файле> щелкните правой кнопкой мыши> Открыть расположение файла.

  1. Используя консоль WSL bash, в вашем домашнем каталоге создайте файл с произвольным конкретным именем, например «test_here.txt».
  2. Затем с помощью проводника Windows с помощью поля поиска найдите файл test_here.txt.
  3. На найденном файле> щелкните правой кнопкой мыши > Открыть расположение файла.

Четыре шага для Windows 10 pro, чтобы закрепить ваш Debian/Ubuntu /OpenSUSE $ HOME в меню «Пуск» Windows:

  1. Из меню «Пуск» запустить проводник.
  2. В адресной строке (не в строке поиска) введите% LOCALAPPDATA%.
  3. В строке поиска найдите имя вашего каталога $ HOME, в моем случае это было ekenny. Будет около трех версий этого, но вам нужна версия с очень длинным путем.
  4. Щелкните правой кнопкой мыши домашний каталог и выберите «Закрепить в начале».

Теперь у вас есть домашний каталог, закрепленный в меню «Пуск». Я попытался создать ярлык, но ничего внятного не получается.


Четыре шага для Windows 10 pro, чтобы закрепить ваш Debian/Ubuntu/OpenSUSE $ HOME в меню «Пуск» Windows:

  1. Из меню «Пуск» запустите проводник.
  2. В адресной строке (не в строке поиска) введите% LOCALAPPDATA%.
  3. В строке поиска найдите имя вашего каталога $ HOME, в моем случае это было ekenny. Будет около трех версий этого, но вам нужна версия с очень длинным путем.
  4. Щелкните правой кнопкой мыши домашний каталог и выберите «Закрепить в начале».

Теперь у вас есть домашний каталог, закрепленный в меню «Пуск». Я попытался создать ярлык, но ничего внятного не получается.


В моей настройке (WSL Ubuntu в «среде разработки Windows 10», загруженной с https://developer .microsoft.com/en-us/windows/downloads/virtual-machines) папка AppData по умолчанию была скрыта. Поэтому пришлось:

  • открыть проводник Windows
  • перейти в C: Users User
  • выберите view в меню
  • проверьте скрытые элементы
  • тогда папка AppData появится в C:UsersUser
  • , и я нашел свой / home/user в C: Users User AppData Local Packages CanonicalGroupLimited.UbuntuonWindows _ * LocalState rootfs home user (где * , вероятно, локальный код или какой-то код, зависящий от версии)

Не знаю, почему он так спрятан.


При моей настройке (WSL Ubuntu в «среде разработки Windows 10», загруженной с https://developer.microsoft.com/en-us/windows/downloads/virtual-machines) папка AppData по умолчанию была скрыта. Поэтому пришлось:

  • открыть проводник Windows
  • перейти в C: Users User
  • выберите view в меню
  • проверьте скрытые элементы
  • тогда папка AppData появится в C:UsersUser
  • , и я нашел свой / home/user в C: Users User AppData Local Packages CanonicalGroupLimited.UbuntuonWindows _ * LocalState rootfs home user (где * , вероятно, местный код или какой-то код, зависящий от версии)

Не знаю, почему он так спрятан.


Мне просто нужно было найти /etc/environment , используя Ubuntu 16.04, просматривая хранилище NTFS Windows 10. Я нашел его здесь:

  C:  Users  USER_NAME  AppData  Local  Packages  CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc  LocalState  rootfs  etc  environment  
  • Я изменил /mnt/c/ на C: для номенклатуры Windows.
  • Я также изменил все вхождения / на по той же причине.
  • Вам нужно заменить USER_NAME с вашим именем пользователя Windows.
  • Мне пришлось использовать sudo -H Nautilus , чтобы получить разрешения на просмотр сохраненных пользовательских файлов в WSL.
  • НИКОГДА не обновляйте файлы Linux в WSL с помощью приложения Windows. Это повредит ваши данные Linux.

Со стороны Linux (Ubuntu 16.04) номенклатура будет выглядеть следующим образом:

  $ sudo cat/mnt/c/Users/USER_NAME/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/etc/environmentPATH="/mnt/e/binal:/usr/usr/usr/usr//sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games "экспорт LIBGL_ALWAYS_INDIRECT = Yesexport DISPLAY = localhost: 0.0  


Мне просто нужно было найти /etc/environment , используя Ubuntu 16.04 изучает NTFS-хранилище Windows 10. Я нашел его здесь:

  C:  Users  USER_NAME  AppData  Local  Packages  CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc  LocalState  rootfs  etc  environment  
  • Я изменил /mnt/c/ на C: для номенклатуры Windows.
  • Я также изменил все вхождения / на по той же причине.
  • Вам нужно заменить USER_NAME с вашим именем пользователя Windows.
  • Мне пришлось использовать sudo -H Nautilus , чтобы получить разрешения на просмотр сохраненных пользовательских файлов в WSL.
  • НИКОГДА не обновляйте файлы Linux в WSL с помощью приложения Windows. Это повредит ваши данные Linux.

Из Linux (Ubuntu 16. 04) номенклатура будет выглядеть следующим образом:

  $ sudo cat/mnt/c/Users/USER_NAME/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/ и т.д./environmentPATH = "/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/ local/games "экспорт LIBGL_ALWAYS_INDIRECT = Yesexport DISPLAY = localhost: 0.0  

Если вы установили свой с помощью Chocolatey, путь к домашнему каталогу:

  C:  ProgramData  chocolatey  lib  wsl-   tools  unzipped  rootfs  home   

Например, для Ubuntu 18.04:

  C:  ProgramData  chocolatey  lib  wsl-ubuntu-1804  tools   распакованный  rootfs  home  


Если вы установили свой дистрибутив с Chocolatey, путь к домашнему каталогу следующий:

  C:  ProgramData  chocolatey  lib  wsl-   tools  unzipped  rootfs  home  

Например, для Ubuntu 18.04:

  C:  ProgramData   шоколадный  lib  wsl-ubuntu-1804  tools  unzipped  rootfs  home  

Оцените статью
techsly.ru
Добавить комментарий