Ubuntu windows 10 где лежат файлы

I've installed wsl2 on my windows machine and I was not able to figure out where the files are actually stored. Note, that I don't mean that I wanna browse them inside the file explorer - I know i...

I’ve installed wsl2 on my windows machine and I was not able to figure out where the files are actually stored.
Note, that I don’t mean that I wanna browse them inside the file explorer — I know it can be done by typing in the explorer \wsl$.
If I would have to guess I would say the files are stored in the same hard-drive that the os is stored.

So actually I have two related questions.

  1. Where the files are stored?
  2. If they are stored in the hard drive of my os, can I somehow relocate my wsl to another hard drive?

EDIT:
I was able to locate the installation path, in my machine the path is:
C:UsersEliranAppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState

Is there a way to mount this to another location?

Dweeberly's user avatar

Dweeberly

4,5782 gold badges21 silver badges39 bronze badges

asked Oct 3, 2020 at 14:56

Eliran Turgeman's user avatar

Eliran TurgemanEliran Turgeman

1,4442 gold badges11 silver badges28 bronze badges

6

All the files are stored in a ext4.vhd files in the installation directory, which you can’t mount directly onto windows as it is in ext4 (obv)

There’s two ways to change the location of the above mentioned vhd file the official, tedious way and an unofficial quick and dirty way

The official tedious way

  1. Export the distro to a location with wsl.exe --export <Distro> <FileName> from CMD/PowerShell
  2. Import the distro to a different location with wsl.exe --import <Distro> <InstallLocation> <FileName> [Options]

The problems with this is it’s quite time consuming and after you do this, pray that it exported and imported several gigabytes worth of thousands of files without any problems

The quick and dirty way

This involes an unofficial opensource WSL manager called lxrunoffline

To install it (takes like a min at max) read through the instructions by the dev here

If you installed it by manually downloading the binaries from the release page, make sure to install it to a directory in PATH, like C:Windows

Now the process is simple as lxrunoffline move -n <distroname> -d <destination-folder>

For example lxrunoffline move -n Ubuntu-20.04 -d G:wsl

Hope I helped

Edit: typo

answered Oct 6, 2020 at 5:31

zwxi's user avatar

1

I executed these commands in PowerShell to move my Ubuntu distro from C: to drive D:wsl-ubuntu :

PS C:Userssmarc> mkdir D:wsl-ubuntu  (create new location)
PS C:Userssmarc> wsl -l -v            (list wsl distros)
NAME                   STATE           VERSION
Ubuntu                 Running         2
PS C:Userssmarc> wsl --shutdown
PS C:Userssmarc> wsl -l -v            (verify if is stopped)
NAME                   STATE           VERSION
Ubuntu                 Stopped         2
PS C:Userssmarc> wsl --export Ubuntu ubuntu.tar  
PS C:Userssmarc> wsl --unregister Ubuntu
PS C:Userssmarc> wsl --import Ubuntu D:wsl-ubuntu .ubuntu.tar --version 2

and reboot the computer at the end.

The only problem I have is that the default user when I started the Ubuntu application is the root. I need to execute $ su sergio to enter in my personal user.

You can delete the ubuntu.tar at the end of process.

#edit 2021-04-13: As pointed out in the comments, I had forgotten the «—export» command.

answered Apr 12, 2021 at 20:51

Sergio Marcelo C Figueiredo's user avatar

6

This is an answer to your last question: use symbolic links

  • open command prompt as administrator
  • shut down wsl vm using wsl --shutdown
  • change folder to C:UsersEliranAppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc
  • move the LocalState folder to another location like Z:wslUbuntu
  • create symbolic link with mklink /J LocalState Z:WSLUbuntuLocalState

I would also edit/create the .wslconfig file from your user folder to move the swap file to the folder where you store your WSL vm’s and maybe edit/add options for CPU cores and RAM assignment

[wsl2]
memory=4GB
processors=2
swap=1GB
swapFile=Z:\WSL\swap.vhdx
  • memory is the maximum amount your ram that WSL will use;
  • processors is the alocated cores to your WSL vm;
  • swap is the size of the swap file;
  • swapFile is the location of your swap and to my knowledge is used by all WSL vm’s; notice the double slashes in the path, they are mandatory for the path.

Start your WSL VM as you normally would.

answered Apr 30, 2021 at 18:18

Gregory Butler's user avatar

1

I’ve installed wsl2 on my windows machine and I was not able to figure out where the files are actually stored.
Note, that I don’t mean that I wanna browse them inside the file explorer — I know it can be done by typing in the explorer \wsl$.
If I would have to guess I would say the files are stored in the same hard-drive that the os is stored.

So actually I have two related questions.

  1. Where the files are stored?
  2. If they are stored in the hard drive of my os, can I somehow relocate my wsl to another hard drive?

EDIT:
I was able to locate the installation path, in my machine the path is:
C:UsersEliranAppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState

Is there a way to mount this to another location?

Dweeberly's user avatar

Dweeberly

4,5782 gold badges21 silver badges39 bronze badges

asked Oct 3, 2020 at 14:56

Eliran Turgeman's user avatar

Eliran TurgemanEliran Turgeman

1,4442 gold badges11 silver badges28 bronze badges

6

All the files are stored in a ext4.vhd files in the installation directory, which you can’t mount directly onto windows as it is in ext4 (obv)

There’s two ways to change the location of the above mentioned vhd file the official, tedious way and an unofficial quick and dirty way

The official tedious way

  1. Export the distro to a location with wsl.exe --export <Distro> <FileName> from CMD/PowerShell
  2. Import the distro to a different location with wsl.exe --import <Distro> <InstallLocation> <FileName> [Options]

The problems with this is it’s quite time consuming and after you do this, pray that it exported and imported several gigabytes worth of thousands of files without any problems

The quick and dirty way

This involes an unofficial opensource WSL manager called lxrunoffline

To install it (takes like a min at max) read through the instructions by the dev here

If you installed it by manually downloading the binaries from the release page, make sure to install it to a directory in PATH, like C:Windows

Now the process is simple as lxrunoffline move -n <distroname> -d <destination-folder>

For example lxrunoffline move -n Ubuntu-20.04 -d G:wsl

Hope I helped

Edit: typo

answered Oct 6, 2020 at 5:31

zwxi's user avatar

1

I executed these commands in PowerShell to move my Ubuntu distro from C: to drive D:wsl-ubuntu :

PS C:Userssmarc> mkdir D:wsl-ubuntu  (create new location)
PS C:Userssmarc> wsl -l -v            (list wsl distros)
NAME                   STATE           VERSION
Ubuntu                 Running         2
PS C:Userssmarc> wsl --shutdown
PS C:Userssmarc> wsl -l -v            (verify if is stopped)
NAME                   STATE           VERSION
Ubuntu                 Stopped         2
PS C:Userssmarc> wsl --export Ubuntu ubuntu.tar  
PS C:Userssmarc> wsl --unregister Ubuntu
PS C:Userssmarc> wsl --import Ubuntu D:wsl-ubuntu .ubuntu.tar --version 2

and reboot the computer at the end.

The only problem I have is that the default user when I started the Ubuntu application is the root. I need to execute $ su sergio to enter in my personal user.

You can delete the ubuntu.tar at the end of process.

#edit 2021-04-13: As pointed out in the comments, I had forgotten the «—export» command.

answered Apr 12, 2021 at 20:51

Sergio Marcelo C Figueiredo's user avatar

6

This is an answer to your last question: use symbolic links

  • open command prompt as administrator
  • shut down wsl vm using wsl --shutdown
  • change folder to C:UsersEliranAppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc
  • move the LocalState folder to another location like Z:wslUbuntu
  • create symbolic link with mklink /J LocalState Z:WSLUbuntuLocalState

I would also edit/create the .wslconfig file from your user folder to move the swap file to the folder where you store your WSL vm’s and maybe edit/add options for CPU cores and RAM assignment

[wsl2]
memory=4GB
processors=2
swap=1GB
swapFile=Z:\WSL\swap.vhdx
  • memory is the maximum amount your ram that WSL will use;
  • processors is the alocated cores to your WSL vm;
  • swap is the size of the swap file;
  • swapFile is the location of your swap and to my knowledge is used by all WSL vm’s; notice the double slashes in the path, they are mandatory for the path.

Start your WSL VM as you normally would.

answered Apr 30, 2021 at 18:18

Gregory Butler's user avatar

1

For Ubuntu installed from the Windows store:

Each distribution you install through the store is installed to that
application’s appdata directory. For example:
C:Users<username>AppDataLocalPackagesCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscLocalState — benhillis

For WSL2 you can access to home directory from windows (Windows 10 build 18342) like this :

\wsl$

In earlier iterations of Windows Subsystem for Linux, the Ubuntu file system was at %localappdata%Lxss (e.g., C:UsersUsernameAppDataLocalLxss — replace the Username with your Username on Windows). See the WSL blog post on File System Support:

The primary file system used by WSL is VolFs. It is used to store the
Linux system files, as well as the content of your Linux home
directory. As such, VolFs supports most features the Linux VFS
provides, including Linux permissions, symbolic links, FIFOs, sockets,
and device files.

VolFs is used to mount the VFS root directory, using
%LocalAppData%lxssrootfs as the backing storage. In addition, a
few additional VolFs mount points exist, most notably /root and
/home which are mounted using %LocalAppData%lxssroot and
%LocalAppData%lxsshome respectively. The reason for these separate
mounts is that when you uninstall WSL, the home directories are not
removed by default, so any personal files stored there will be
preserved.

CAUTION

Creating/modifying any files within the Linux subsystem using Windows apps & tools can cause Data corruption and data loss in Ubuntu subsystem! (Thanks to Rich Turner for suggesting these words of caution!) This is absolutely not supported. From the same blog post:

Interoperability with Windows

While VolFs files are stored in regular files on Windows in the
directories mentioned above, interoperability with Windows is not
supported. If a new file is added to one of these directories from
Windows, it lacks the EAs needed by VolFs, so VolFs doesn’t know what
to do with the file and simply ignores it. Many editors will also
strip the EAs when saving an existing file, again making the file
unusable in WSL.


Your Windows file system is located at /mnt/c in the Bash shell environment.

enter image description here

Source: Dustin Kirkland’s blog, howtogeek

Просто найдите папку, названную в честь дистрибутива Linux. В папке дистрибутива Linux дважды щелкните папку «LocalState», а затем дважды щелкните папку «rootfs», чтобы просмотреть ее файлы. Примечание. В более старых версиях Windows 10 эти файлы хранились в C: ИмяПользователяAppDataLocallxss.

Как мне получить доступ к файлам Ubuntu из Windows?

Как получить доступ к файлам Ubuntu (подсистеме Windows) из Windows 10

  1. Шаг 1: Мой компьютер. Перейдите в MyComputer и откройте диск C: Drive, на котором хранятся все ваши файлы Windows и программы.
  2. Шаг 2: Показать скрытые файлы и папки. …
  3. Шаг 3. Получите доступ к файлам подсистемы ubuntu из Windows 10.

Где хранятся файлы Ubuntu?

Большинство приложений хранят свои настройки в скрытые папки внутри вашей домашней папки (информацию о скрытых файлах см. выше). Большинство настроек вашего приложения будут храниться в скрытых папках. config и. local в вашей домашней папке.

Как скопировать файлы из Ubuntu в Windows?

Метод 1: передача файлов между Ubuntu и Windows через SSH

  1. Установите пакет Open SSH в Ubuntu. …
  2. Проверьте статус службы SSH. …
  3. Установите пакет net-tools. …
  4. IP-адрес машины Ubuntu. …
  5. Скопируйте файл из Windows в Ubuntu через SSH. …
  6. Введите свой пароль Ubuntu. …
  7. Проверьте скопированный файл. …
  8. Скопируйте файл из Ubuntu в Windows через SSH.

Как подключить Ubuntu к Windows 10?

Ubuntu можно установить из Microsoft Store:

  1. Используйте меню «Пуск», чтобы запустить приложение Microsoft Store, или щелкните здесь.
  2. Найдите Ubuntu и выберите первый результат «Ubuntu», опубликованный Canonical Group Limited.
  3. Нажмите кнопку «Установить».

Не можете получить доступ к файлам Windows из Ubuntu?

2.1 Перейдите в Панель управления, затем в Параметры электропитания вашей ОС Windows. 2.2 Нажмите «Выбрать, что делают кнопки питания». 2.3 Затем нажмите «Изменить настройки, которые в настоящее время недоступны», чтобы сделать параметр «Быстрый запуск» доступным для настройки. 2.4 Найдите параметр «Включить быстрый запуск (рекомендуется)» и снимите этот флажок.

Могу ли я получить доступ к файлам Linux из Windows?

Ext2Fsd. Ext2Fsd — это драйвер файловой системы Windows для файловых систем Ext2, Ext3 и Ext4. Это позволяет Windows читать файловые системы Linux изначально, обеспечивая доступ к файловой системе через букву диска, к которой может получить доступ любая программа. Вы можете запускать Ext2Fsd при каждой загрузке или открывать его только тогда, когда вам это нужно.

Как скопировать файлы из подсистемы Windows в Ubuntu?

Метод 2 — системный диск Windows в качестве точки монтирования

Сейчас просто используйте команду копирования (cp) для копирования файлов в вашу подсистему Linux.

Где хранится подсистема Windows для Linux?

Он должен находиться в папке в файловой системе Windows, например: ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ% AppDataLocalPackagesCanonicalGroupLimited... В этом профиле дистрибутива Linux должна быть папка LocalState. Щелкните эту папку правой кнопкой мыши, чтобы отобразить меню параметров.

Как мне получить доступ к диску C в Ubuntu?

в Windows есть / mnt / c / в WSL Ubuntu. в терминале Ubuntu, чтобы перейти в эту папку. Обратите внимание, что первый / перед mnt и помните, что в Ubuntu имена файлов и папок чувствительны к регистру.

Как мне получить доступ к файлу в терминале Ubuntu?

Нажмите Ctrl + Alt + T . Это откроет Терминал. Перейти: означает, что вы должны получить доступ к папке, в которой находится извлеченный файл, через Терминал.

Другой простой способ:

  1. В Терминале введите cd и сделайте пробел infrot.
  2. Затем перетащите папку из файлового браузера в Терминал.
  3. Затем нажмите Enter.

Единственная корневая файловая система находилась здесь до обновления Windows 10 Fall Creators (выпущенного в октябре 2017 года):

%USERPROFILE%AppDataLocalLxssrootfs

Например, C:UsersVigoAppDataLocalLxssrootfs

Другие точки монтирования расположены на один уровень выше в каталоге lxss . Например, ваш собственный home каталог в Linux будет находиться в папке %USERPROFILE%AppDataLocalLxsshome .

Начиная с обновления Fall Creators, можно установить более одного экземпляра Linux и запустить их параллельно. Существующий экземпляр (он же устаревший) останется в своем каталоге, но новые созданные экземпляры находятся в:

%USERPROFILE%AppDataLocalPackages<distribution_specific_name>_<random_string>LocalStaterootfs

Например, моя установка Ubuntu 18.04 находится под

CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

каталог.

Предупреждение: не создавайте, не изменяйте и не удаляйте файлы, расположенные под конкретным деревом lxss или дистрибутива, из Windows.

Изучение и чтение файлов — единственная безобидная операция. См. Эту страницу блога Microsoft для деталей.

Обратите внимание, что начиная с Build 1903, существует альтернативный способ доступа к файлам работающего дистрибутива, в котором не обнаружены ранее упомянутые проблемы.

Просто используйте путь \wsl$<distribution_specific_name> и вы сможете создавать и изменять файлы. AppData по-прежнему не поддерживается для доступа к файлам в сборке 1903.

Содержание

  1. Где находится корневой каталог файловой системы Ubuntu в подсистеме Windows для Linux и наоборот?
  2. 5 ответов
  3. ВНИМАНИЕ
  4. Совместимость с Windows
  5. Крутые лайфхаки для работы с WSL (Подсистема Windows для Linux )
  6. Запустите Windows Explorer из Linux и получите доступ к файлам вашего дистрибутива
  7. Используйте настоящие команды Linux (не CGYWIN) из Windows
  8. Запустите Visual Studio Code и получите доступ к вашим приложениям Linux нативно на Windows
  9. Запуск нескольких Linux в считанные секунды
  10. Запустите X Windows Server под Windows с Pengwin
  11. Простое перемещение дистрибутивов WSL между системами Windows.
  12. Используйте провайдер учетных данных Windows Git внутри WSL
  13. Доступ к файлам WSL Linux с помощью Проводника Windows 10
  14. Опыт настройки и использования WSL (подсистемы Linux в Windows 10)
  15. Установка WSL и дистрибутива
  16. Установка X-сервера, Xfce и прочих GUI’шных приложений
  17. Взаимодействие окружения Windows и окружения подсистемы Linux
  18. Особенности, ограничения и подводные камни
  19. Итоги
  20. Часто задаваемые вопросы о подсистеме Windows для Linux
  21. Общие сведения
  22. Что такое подсистема Windows для Linux (WSL)?
  23. Для кого предназначена WSL?
  24. Что можно сделать с помощью WSL?
  25. Опишите типичный рабочий процесс разработки с использованием WSL
  26. Что такое Bash?
  27. Как это работает?
  28. Зачем использовать WSL вместо Linux в виртуальной машине?
  29. Зачем использовать, например, Ruby в Linux, а не Ruby в Windows?
  30. Что это означает для PowerShell?
  31. Какие процессоры поддерживает WSL?
  32. Как получить доступ к моему диску C?
  33. Как настроить диспетчер учетных данных Git? (Как использовать разрешения Windows Git в WSL?)
  34. Как использовать файл Windows в приложении Linux?
  35. Отличаются ли файлы на диске Linux от файлов на подключенном диске Windows?
  36. Как удалить дистрибутив WSL?
  37. Как запустить сервер OpenSSH?
  38. Как изменить язык интерфейса WSL?
  39. Почему у меня нет доступа к Интернету из WSL?
  40. Как получить доступ к порту из WSL в Windows?
  41. Как выполнить резервное копирование дистрибутивов WSL или переместить их с одного диска на другой?
  42. WSL 2
  43. Использует ли подсистема WSL 2 Hyper-V? Будет ли она доступна в Windows 10 Домашняя?
  44. Что произойдет с подсистемой WSL 1? Будет ли прекращена ее поддержка?
  45. Смогу ли я запускать WSL 2 с другими сторонними инструментами виртуализации, такими как VMware или VirtualBox?
  46. Могу ли я получить доступ к GPU в WSL 2? Планируется ли усилить поддержку оборудования?
  47. Может ли WSL 2 использовать сетевые приложения?
  48. Можно ли запустить WSL 2 на виртуальной машине?
  49. Можно ли использовать wsl.conf в WSL 2?
  50. Куда можно отправить отзыв?

Где находится корневой каталог файловой системы Ubuntu в подсистеме Windows для Linux и наоборот?

Я установил подсистему Ubuntu в Windows 10 (после включения функции в настройках), но где находится корневой каталог файловой системы Ubuntu на диске?

5 ответов

Для Ubuntu, установленного из магазина Windows:

Основной файловой системой, используемой WSL, является VolFs. Он используется для хранения системных файлов Linux, а также содержимого вашего домашнего каталога Linux. Таким образом, VolFs поддерживает большинство функций Linux VFS, включая разрешения Linux, символические ссылки, FIFO, сокеты и файлы устройств.

VolFs используется для монтирования корневого каталога VFS, используя %LocalAppData%lxssrootfs в качестве резервного хранилища. Кроме того, существует несколько дополнительных точек монтирования VolF, особенно /root а также /home которые установлены с использованием %LocalAppData%lxssroot а также %LocalAppData%lxsshome соответственно. Причина этих отдельных подключений заключается в том, что при удалении WSL домашние каталоги не удаляются по умолчанию, поэтому все личные файлы, хранящиеся там, будут сохранены.

ВНИМАНИЕ

Создание / изменение любых файлов в подсистеме Linux с помощью приложений и инструментов Windows может привести к повреждению данных и потере данных в подсистеме Ubuntu! (Спасибо Ричу Тернеру за эти слова предостережения!) Это абсолютно не поддерживается. Из того же сообщения в блоге:

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

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

Ваша файловая система Windows находится по адресу /mnt/c в среде оболочки Bash.

Источник

Крутые лайфхаки для работы с WSL (Подсистема Windows для Linux )

Я глубоко погружен в WSL (Windows Subsystem для Linux), и теперь, когда WSL2 доступен в Windows Insiders, это отличное время, чтобы по-настоящему изучить доступные опции. Очень интересная фича, которую я нашел в WSL, — возможность «чисто» перемещать данные между мирами. Это не тот опыт, который вы легко можете получить с полноценными виртуальными машинами, и он говорит о тесной интеграции Linux и Windows.

Под катом подробнее о некоторых интересных вещах, которые вы можете делать, смешивая арахисовое масло и шоколад!

image loader

Запустите Windows Explorer из Linux и получите доступ к файлам вашего дистрибутива

image loader

Используйте настоящие команды Linux (не CGYWIN) из Windows

Я уже писал об этом раньше, но теперь есть алиасы для функций PowerShell, которые позволяют вам использовать настоящие команды Linux изнутри Windows.

Вы можете вызвать любую команду Linux напрямую из DOS/Windows/чего угодно, просто поместив ее после WSL.exe, вот так.

Запустите Visual Studio Code и получите доступ к вашим приложениям Linux нативно на Windows

Вы можете запустить «code.», находясь в папке в WSL, и вам будет предложено установить расширения VS Remote.. Это эффективно разделяет Visual Studio Code пополам и запускает «headless» VS Code Server в Linux с клиентом VS Code в мире Windows.

Вам также необходимо установить Visual Studio Code и расширение Remote — WSL. При желании, установите бета-версию Windows Terminal для лучшего опыта работы с терминалом в Windows.

Вот отличная подборка статей из блога Windows Command Line.

Запуск нескольких Linux в считанные секунды

Я могу легко запустить их, а также назначить профили, чтобы они появлялись в моем Windows Terminal.

Запустите X Windows Server под Windows с Pengwin

Простое перемещение дистрибутивов WSL между системами Windows.

Ana Betts отмечает эту замечательную технику, с помощью которой вы можете легко перенести свой идеальный дистрибутив WSL2 с одной машины на n машин.

Вот и все. Получите идеальную настройку Linux, синхронизированную на всех ваших системах.

Используйте провайдер учетных данных Windows Git внутри WSL

Все перечисленные фичи переткают в кульминацию в этом крутом посте от Ana Betts, где она интегрирует Windows Git Credential Provider в WSL, превращая /usr/bin/git-credential-manager в сценарий оболочки, который вызывает диспетчер git creds Windows. Гениально. Это было бы возможно только при условии чистой и тесной интеграции.

Источник

Доступ к файлам WSL Linux с помощью Проводника Windows 10

Публикация: 18 February 2019 Обновлено: 31 August 2020

Windows 10 версии 1903 содержит ряд интересных изменений и улучшений, внесенных в функцию WSL. К ним относятся дополнительные дистрибутивы в Магазине, возможность просматривать файлы WSL в Проводнике и многое другое.

После включения WSL вы можете устанавливать различные версии Linux из Магазина, используя следующие ссылки:

Ссылки на дистрибутивы в магазине microsoft:

В Windows 10 версии 1903 вы можете легко получить доступ ко всем файлам в ваших дистрибутивах Linux с помощью проводника Windows. На момент написания статьи эта функция реализована в сборке Windows 10 18836. Она находится на пути к ветви 19h1, поэтому мы увидим ее в следующей сборке. Вот как это можно сделать.

Шаг 1: Включить функцию WSL (Подситема Windows для Linux)

Шаг 2: Установите какой-нибудь дистрибутив, например Ubuntu, и запустите его.

Шаг 3: Находясь в каталоге Linux FS, введите^

Откроется окно проводника, расположенное внутри вашего дистрибутива Linux.

Теперь вы можете получить доступ к любым файлам Linux, так же, как и к любому другому файлу через проводник. Это включает в себя такие операции, как: перетаскивание файлов в другие места, копирование и вставка и даже использование пользовательских записей контекстного меню, добавленных Notepad ++, VSCode или другим программным обеспечением.

Команда WSL активно исследует способы улучшения обнаруживаемости файлов Linux внутри Проводника. Ход их работы уже можно увидеть в Windows 10 Build 18836, которая показывает файловую систему WSL / Linux в File Explorer.

Доступ к файлам Linux в командной строке

В дополнение к Проводнику вы можете использовать классическую командную строку и инструменты PowerShell для доступа к файлам Linux. Точно так же вам нужно перейти к \wsl$<имя дистрибутива>, где <имя дистрибутива>— это имя работающего дистрибутива.

Известные вопросы

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

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

Поскольку файловый сервер 9P работает внутри каждого дистрибутива, он доступен только тогда, когда этот дистрибутив работает. Команда ищет способы решить эту проблему.

Доступ к файлам Linux рассматривается так же, как и доступ к сетевому ресурсу, и все правила доступа к сетевым ресурсам будут по-прежнему применяться,

Примечание: Сервер 9P — это сервер, который содержит протоколы, поддерживающие метаданные Linux, включая разрешения. Демон инициализации WSL теперь включает сервер 9P. Существует служба Windows и драйвер, который действует как клиент и взаимодействует с сервером 9P (который работает внутри экземпляра WSL). Клиент и сервер обмениваются данными через сокеты AF_UNIX, поскольку WSL позволяет взаимодействовать между приложением Windows и приложением Linux, используя AF_UNIX.

Источник

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.

Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.

image loader

Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.

Установка WSL и дистрибутива

Сразу оговорюсь, в интернете можно найти описание установки с помощью выполнения команды lxrun /install в командной строке или консоли PowerShell. Данный способ больше не работает (после выхода WSL в стабильный релиз). Насколько мне известно, сейчас WSL можно установить только из Microsoft Store вместе с предпочитаемым дистрибутивом.

Так же отмечу, что когда установку производил я, на выбор были доступны дистрибутивы OpenSUSE, SUSE Linux Enterprise и Ubuntu 16.04 — последний я и установил. Сейчас также доступны Ubuntu 18.04, Debian 9 и Kali Linux, возможно появятся и другие дистрибутивы. Действия по установке могут отличаться. Так же, часть проблем описанных в статье может быть уже исправлена.

Находим в магазине желаемый дистрибутив и устанавливаем. Установка пройдет быстро, так как скачает только эмулятор ядра Linux и утилиту для запуска подсистемы, которая окажется в системной папке в трех экземплярах: wsl.exe, bash.exe и ubuntu.exe (вместо ubuntu будет имя Вашего дистрибутива). Все они равнозначны и делают одно и то же — запускают собственный эмулятор терминала, в нем linux’овый bash работающий под эмулятором ядра. При первом же запуске нас попросят придумать логин и пароль для пользователя по умолчанию, а после произойдет непосредственно установка дистрибутива. В качестве пользователя по умолчанию указываем root без пароля — это потребуется для дальнейших шагов. Безопасность не пострадает, кроме того при подготовке материалов к статье, в англоязычном туториале, я наткнулся на информацию, что новые версии WSL теперь делают пользователем по умолчанию root без пароля без лишних вопросов.

Дожидаемся установки. Далее первым делом стоит обновить зеркала apt на ближайшие. Для этого понадобится CLI текстовый редактор. В комплекте только vi, я же больше предпочитаю nano, поэтому ставлю его:

sudo вводить не требуется, так как мы уже под root’ом. Отредактируем файл /etc/apt/sources.list:

У меня лучше всего работают зеркала Яндекса, поэтому мой файл выглядит так:

Нажимаем Ctrl+O для сохранения и Ctrl+X для выхода. Теперь можно обновить систему до актуального состояния:

После обновления можно создать нашего основного пользователя. В данной статье я назову его user1, Вы же можете задать привычное имя:

Далее переходим в папку юзера, зайдем под ним, установим пароль и отредактируем файл

Все, подсистема готова к использованию… почти.

Установка X-сервера, Xfce и прочих GUI’шных приложений

Первая же проблема, на которую я натолкнулся — bash-completion в предлагаемом эмуляторе терминала работал, мягко говоря, некорректно. Кроме того, данный эмулятор не умеет вкладки, а каждый его экземпляр запускает все в новом пространстве процессов, с отдельным init’ом (который кстати не заменить). Мне захотелось нормальный эмулятор терминала, некоторых других GUI приложений, а так же панельку, чтоб это все быстро запускать.

Когда я гуглил этот вопрос, я наткнулся на множество проблем, вроде необходимости перевода dbus на tcp протокол. На данный момент всех этих проблем нет. В подсистеме нормально работают unix-domain-socket’ы и все спокойно общается через них.

Первым делом нам понадобится X-сервер, притом установленный в основную систему (в Windows). Лично я использую для этих целей VcXsrv — порт X11 на Windows. Официальный сайт указанный в about самой утилиты его сейчас не предоставляет, поэтому гуглим установщик и устанавливаем все по умолчанию.

Пока идет установка возвращаемся в терминал WSL, командой exit выходим обратно в root’а. Первым делом настроим русские локали:

Далее установим некоторые компоненты Xfce. Можно конечно установить его целиком из мета-пакета, но большинство компонентов нам не понадобится, а модульная архитектура Xfce позволяет нам поставить только необходимое:

Запускать каждый раз окружение руками не очень удобно, поэтому я автоматизировал данный процесс. Для этого в основной системе создадим в удобном для нас месте папку, а в ней 3 файла для запуска:

x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:

Далее можем запустить наш start.bat и настроить панель Xfce под себя. Замечу, что здесь я наткнулся на еще одну проблему — панель прекрасно отображается поверх всех окон, но вот выделить себе место, как панель на рабочем столе Windows она не может. Если кто знает решение данной проблемы, поделитесь в комментариях.

Ну и под конец данной части, скриншот моего рабочего стола:

image loader

Взаимодействие окружения Windows и окружения подсистемы Linux

Из Linux так же можно запускать Windows приложения. Просто запускаем exe-шник и он выполнится в основной системе.

Сетевой стек у подсистемы общий с Windows. Сервер поднятый в Linux будет доступен на localhost в Windows и наоборот. Однако unix-domain-socket для Windows будет просто пустым файлом, работать с этим можно только внутри Linux. Выход во внешнюю сеть у Linux так же есть, в том числе можно слушать порты, если этого не запрещает фаервол.
ifconfig в Linux и ipconfig в Windows выдают одинаковую информацию о сетевых интерфейсах.

Из диспетчера задач Windows можно спокойно прибить процесс внутри подсистемы Linux. Однако Linux увидит только свои процессы.

Особенности, ограничения и подводные камни

Ядро Linux в WSL не настоящее. Это всего лишь прослойка-эмулятор, которая часть Linux-специфичных задач выполняет сама, а часть проксирует напрямую в ядро winNT. Большая часть api в нем реализована, но не все. Свое ядро собрать не получится, как и не получится подключить модули ядра (.ko, Kernel Object).

Init процесс у WSL тоже свой и заменить его, например, на system.d не выйдет. У меня давно есть желание написать менеджер демонов на go, который бы работал с файлами юнитов system.d и предоставлял бы схожий интерфейс, да все руки не доходят.

Нет поддержки openFUSE, соответственно примонтировать виртуальную или удаленную файловую систему не получится. Так же нельзя сделать mount из файла, mount вообще ничего кроме bind здесь, похоже, не умеет.

Так же нет никакой возможности разбить файловую систему Linux на несколько разделов/дисков.

Прямой доступ к железу практически отсутствует. Все таки мы находимся в песочнице Windows, а не в полноценном Linux. /dev и /sys заметно пустуют, в них лишь проц да виртуальные устройства. Доступ к GPU — только через X-сервер, напрямую — никак, так что нейросети обучать придется в Windows.

В JS разработке столкнулся с тем, что electron.js отказался запускаться в WSL, пришлось дублировать окружение node.js в Windows.

Итоги

Статья получилась довольно длинной, надеюсь, что она окажется еще и полезной.
WSL для меня лично оказался инструментом вполне юзабельным, решающим мои задачи fullstack backend разработчика. Виртуалка с Linux за полгода так и не понадобилась. По общим ощущениям Windows+WSL намного функциональнее, чем Linux+Wine.

Пока писал статью, обнаружил, что в Microsoft Store появилась сборка WSL с Debian 9.3, данный дистрибутив мне более симпатичен, чем Ubuntu, поэтому буду пробовать ставить.

Источник

Часто задаваемые вопросы о подсистеме Windows для Linux

Общие сведения

Что такое подсистема Windows для Linux (WSL)?

подсистема Windows для Linux (WSL) — это функция операционной системы Windows, которая позволяет запускать файловую систему linux, а также программы командной строки linux и приложения GUI с графическим пользовательским интерфейсом непосредственно на Windows, наряду с традиционными Windows настольными системами и приложениями.

Чтобы узнать больше, ознакомьтесь со страницей сведений.

Для кого предназначена WSL?

Что можно сделать с помощью WSL?

distro

ls

Опишите типичный рабочий процесс разработки с использованием WSL

Подсистема WSL нацелена на аудиторию разработчиков и предназначена для использования в рамках внутреннего цикла разработки. Предположим, Семен создает конвейер CI/CD (непрерывной интеграции и непрерывной поставки) и хочет сначала протестировать его на локальном компьютере (ноутбуке) перед развертыванием в облаке. Семен может включить WSL (а также WSL 2, чтобы повысить скорость и производительность), а затем использовать подлинный экземпляр Linux Ubuntu на локальном компьютере (ноутбуке) с любыми командами Bash и инструментами по своему выбору. После проверки конвейера разработки в локальной среде Семен может отправить этот конвейер CI/CD в облако (т. е. в Azure), сделав его контейнером Docker и отправив в облачный экземпляр, где он будет выполняться на рабочей виртуальной машине Ubuntu.

Что такое Bash?

Bash — это популярная текстовая оболочка и язык команд. Это оболочка по умолчанию, входящая в состав Ubuntu и других дистрибутивов Linux, а также в macOS. Пользователи могут вводить команды в оболочке для выполнения сценариев и (или) команд и инструментов, чтобы выполнять множество задач.

Как это работает?

Зачем использовать WSL вместо Linux в виртуальной машине?

WSL требует меньше ресурсов (ЦП, памяти и хранилища), чем полноценная виртуальная машина. WSL также позволяет запускать программы командной строки и приложения Linux вместе с приложениями командной строки, классическими приложениями и приложениями Store для Windows, а также позволяет обращаться к файлам Windows в Linux. Это позволяет использовать приложения для Windows и программы командной строки Linux для одного и того же набора файлов, если требуется.

Зачем использовать, например, Ruby в Linux, а не Ruby в Windows?

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

Многие языки, такие как Ruby и Node.js, часто переносятся на Windows и работают отлично. Тем не менее, не все владельцы библиотек Ruby Gem или node/NPM переносят свои библиотеки для поддержки Windows, и многие из них имеют зависимости, относящиеся к Linux. Это часто может привести к тому, что системы, созданные с помощью таких инструментов и библиотек, становятся подвержены ошибкам во время сборки, а иногда — во время выполнения, либо не работают в Windows требуемым образом.

Это лишь часть проблем, из-за которых многие пользователи просят корпорацию Майкрософт улучшить программы командной строки Windows, а мы стали партнерами с Canonical, чтобы обеспечить выполнение собственных программ командной строки Linux и Bash в Windows.

Что это означает для PowerShell?

При работе с проектами OSS существует множество сценариев, в которых чрезвычайно полезно перейти в Bash из командной строки PowerShell. Поддержка Bash дополняет и расширяет возможности командной строки в Windows, позволяя использовать PowerShell, а сообществу PowerShell — применять другие популярные технологии.

Дополнительные сведения см. в блоге группы разработчиков PowerShell: Bash for Windows: Why it’s awesome and what it means for PowerShell (Bash для Windows: почему это здорово и что это значит для PowerShell)

Какие процессоры поддерживает WSL?

WSL поддерживает процессоры x64 и ARM.

Как получить доступ к моему диску C?

точки подключения для жестких дисков на локальном компьютере создаются автоматически и обеспечивают простой доступ к Windows файловой системе.

/mnt/ /

Пример использования — команда cd /mnt/c для доступа к диску C:

Как настроить диспетчер учетных данных Git? (Как использовать разрешения Windows Git в WSL?)

см. руководство приступая к работе с git на подсистема Windows для Linux, в котором описывается настройка диспетчера учетных данных Git и сохранение маркеров проверки подлинности в Windows диспетчере учетных данных.

Как использовать файл Windows в приложении Linux?

Одним из преимуществ WSL является возможность доступа к файлам с помощью приложений или инструментов Windows и Linux.

Отличаются ли файлы на диске Linux от файлов на подключенном диске Windows?

Файлы в корне Linux (т. е. / ) контролируются WSL, который соответствует поведению Linux, включая, помимо прочего, следующие:

Файлы на подключенных дисках контролируются Windows и имеют следующие характеристики:

Как удалить дистрибутив WSL?

Кроме того, вы можете удалить приложение дистрибутив Linux на компьютере так же, как и любое другое приложение Магазина.

Дополнительные сведения о командах WSL см. в статье основные команды для WSL.

Как запустить сервер OpenSSH?

OpenSSH поставляется с Windows в качестве дополнительного компонента. См. документацию по Install OpenSSH doc. для запуска OpenSSH в WSL требуются права администратора в Windows. чтобы запустить сервер OpenSSH, запустите WSL distribution (ie Ubuntu) или Терминал Windows с правами администратора. Существует несколько ресурсов, охватывающих сценарии SSH с WSL. ознакомьтесь со статьями блогов скотта Hanselman: как ssh-подключение к Windows 10 машине из Linux или Windows или из любого места, как ssh в WSL2 на Windows 10 с внешнего компьютера, простой способ подключения ssh к Bash и WSL2 на Windows 10 с внешнего компьютераи как использовать Windows 10 буи lt — в OpenSSH — автоматическое подключение SSH к удаленному компьютеру Linux.

Как изменить язык интерфейса WSL?

Установщик WSL попытается автоматически изменить языковой стандарт Ubuntu в соответствии с языковым стандартом установки Windows. Если это нежелательно, можно выполнить приведенную ниже команду, чтобы изменить языковой стандарт Ubuntu после завершения установки. Чтобы это изменение вступило в силу, потребуется перезапустить дистрибутив WSL.

В приведенном ниже примере языковой стандарт изменяется на EN-US.

Почему у меня нет доступа к Интернету из WSL?

Некоторые пользователи сообщили о проблемах с определенными приложениями брандмауэра, блокирующими доступ к Интернету в WSL. Сообщили о следующих брандмауэрах:

В некоторых случаях отключение брандмауэра обеспечивает доступ. В некоторых случаях доступ блокируется просто при наличии установленного брандмауэра.

Как получить доступ к порту из WSL в Windows?

WSL использует IP-адрес Windows, так как работает в Windows. Поэтому вы можете получить доступ к любым портам на localhost. Например, если вы предоставляете веб-содержимое через порт 1234, то вы можете открыть адрес https://localhost:1234 в браузере для Windows. Дополнительные сведения см. в разделе доступ к сетевым приложениям.

Как выполнить резервное копирование дистрибутивов WSL или переместить их с одного диска на другой?

обратите внимание, что традиционные службы резервного копирования, которые файлы резервных копий в папках AppData (например, программа архивации данных), не будут повредить файлы Linux.

WSL 2

Использует ли подсистема WSL 2 Hyper-V? Будет ли она доступна в Windows 10 Домашняя?

WSL 2 доступен во всех sku настольных систем, где доступен WSL, включая Windows 10 Домашняя.

Последняя версия WSL использует архитектуру Hyper-V для включения виртуализации. Эта архитектура будет доступна в качестве дополнительного компонента Virtual Machine Platform (Платформа виртуальной машины). Этот необязательный компонент будет доступен во всех номерах SKU. Более подробную информацию об этом интерфейсе можно получить ближе к выпуску WSL 2.

Что произойдет с подсистемой WSL 1? Будет ли прекращена ее поддержка?

В настоящее время не планируется объявлять подсистему WSL 1 нерекомендуемой. Вы можете запускать дистрибутивы WSL 1 и WSL 2 параллельно, обновлять их и переходить на более раннюю версию дистрибутива в любое время. Добавление WSL 2 в качестве новой архитектуры для команды WSL представляет собой лучшую платформу, которая предоставляет отличные возможности для запуска среды Linux в Windows.

Смогу ли я запускать WSL 2 с другими сторонними инструментами виртуализации, такими как VMware или VirtualBox?

Если Hyper-V уже используется, то некоторые сторонние приложения не могут работать. Соответственно, они не смогут выполняться при включенном WSL 2, например VMware и VirtualBox. Но недавно вышли новые выпуски VirtualBox и VMware, поддерживающие Hyper-V и WSL2. Дополнительные сведения об изменениях VirtualBox см. здесь, а об изменениях VMware см. здесь. Сведения об устранении неполадок можно найти в обсуждениях проблем с VirtualBox в репозитории WSL на GitHub.

Мы постоянно работаем над решениями для поддержки интеграции Hyper-V от сторонних производителей. Например, мы предоставляем набор API-интерфейсов (платформа гипервизора), который сторонние поставщики виртуализации могут использовать для обеспечения совместимости своего программного обеспечения с Hyper-V. Это позволяет приложениям использовать архитектуру Hyper-V для своих эмуляций, например Google Android Emulator, а также VirtualBox 6 и более поздней версии, которые теперь совместимы с Hyper-V.

Дополнительные сведения о проблемах с WSL 2 в VirtualBox 6,1см. в репозитории проблем WSL.

Могу ли я получить доступ к GPU в WSL 2? Планируется ли усилить поддержку оборудования?

Мы выпустили поддержку для доступа к GPU в дистрибутивах WSL 2. Это означает, что теперь вы можете использовать WSL для сценариев с применением машинного обучения, искусственного интеллекта, а также обработки и анализа данных, если задействованы большие наборы данных. Ознакомьтесь с руководством по началу работы с решениями с поддержкой GPU. Сейчас WSL 2 не включает последовательную поддержку или поддержку USB-устройств. Мы определяем оптимальный способ добавления этих функций.

Может ли WSL 2 использовать сетевые приложения?

Да, в целом сетевые приложения будут работать быстрее и лучше, так как у нас есть полная совместимость системных вызовов. Однако в новой архитектуре используются виртуализированные сетевые компоненты. Это означает, что первоначальная ознакомительная версия сборки WSL 2 будет вести себя аналогично виртуальной машине, например, в WSL 2 будет IP-адрес, отличный от того, на котором размещен хост-компьютер. Мы стремимся сделать WSL 2 похожим на WSL 1, что включает в себя повышение производительности сети.

Можно ли запустить WSL 2 на виртуальной машине?

Да! Необходимо убедиться, что на виртуальной машине включена вложенная виртуализация. Ее можно включить в родительском узле Hyper-V, выполнив следующую команду в окне PowerShell с правами администратора:

Не забудьте заменить именем своей виртуальной машины.

Можно ли использовать wsl.conf в WSL 2?

Куда можно отправить отзыв?

Кроме того, вы можете сделать следующее:

Если вы хотите оставаться в курсе последних новостей WSL, используйте следующее:

Источник

Понравилась статья? Поделить с друзьями:
  • Ubuntu vs windows 10 производительность в играх
  • Ubuntu usb boot flash from windows
  • Ubuntu transformation pack for windows 7
  • Ubuntu studio установка рядом с windows
  • Ubuntu skin pack для windows 7 x64