Работа в файловых системах Windows и Linux
При работе с файловыми системами Windows и Linux следует учитывать ряд моментов. В этом пошаговом руководстве рассматриваются некоторые из них, а также приводятся примеры поддержки взаимодействия для смешанного использования команд на основе Windows и Linux.
Хранение файлов и производительность в файловых системах
Мы не рекомендуем работать с разными операционными системами, если на это нет особой причины. Для ускорения производительности сохраняйте файлы в файловой системе WSL, если используете командную строку Linux (Ubuntu, OpenSUSE и т. д.). Если вы работаете в командной строке Windows (PowerShell, командной строке), сохраняйте файлы в файловой системе Windows.
Например, при хранении файлов проекта WSL:
- Используйте корневой каталог файловой системы Linux: \\wsl$\Ubuntu\home\\Project
- Используйте корневой каталог файловой системы Windows: /mnt/c/Users//Project$ или C:\Users\\Project .
Если вы видите /mnt/ в пути к файлу в командной строке WSL, это означает, что вы работаете с подключенного диска. Поэтому диск C:/ ( C:\Users\\Project ) в файловой системе Windows при подключении в командной строке WSL будет выглядеть следующим образом: /mnt/c/Users//Project$ . Файлы проекта можно хранить на подключенном диске, но производительность может повыситься, если вы будете хранить их непосредственно на диске \\wsl$ .
Просмотр текущего каталога в проводнике Windows
Вы можете просмотреть каталог, в котором хранятся файлы, открыв проводник Windows из командной строки:
explorer.exe .
Также можно использовать команду powershell.exe /c start . . Обязательно добавьте точку в конце команды, чтобы открыть текущий каталог.
Чтобы просмотреть все доступные дистрибутивы Linux и их корневые файловые системы в Windows проводнике, введите \\wsl$ в адресной строке.
Учет регистра в именах файлов и каталогов
Чувствительность к регистру определяет, обрабатываются ли прописные (FOO.txt) и строчные буквы (foo.txt) как уникальные (с учетом регистра) или эквивалентные (без учета регистра) в имени файла или каталога. В файловых системах Windows и Linux чувствительность к регистру разная: в Windows он учитывается, а в Linux — нет. Дополнительные сведения о том, как настроить чувствительность к регистру, особенно при подключении дисков с помощью WSL, см. в статье Настройка чувствительности к регистру.
Взаимодействие между командами Windows и Linux
Средства и команды Windows и Linux в WSL могут использоваться взаимозаменяемо.
- Запустить средства Windows (например, notepad.exe) из командной строки Linux (например, Ubuntu).
- Запустить средства Linux (например, grep) из командной строки Windows (например, PowerShell).
- Совместное использование переменных среды между Linux и Windows. (сборка 17063+)
Запуск инструментов Linux из командной строки Windows
Запускайте двоичные файлы Linux из командной строки Windows (CMD или PowerShell), используя wsl (или wsl.exe ).
C:\temp> wsl ls -la
Двоичные файлы вызываются следующим образом.
- Используется тот же рабочий каталог, что и для текущей командной строки или сеанса PowerShell.
- Файл выполняется от имени пользователя WSL по умолчанию.
- Требуются те же права администратора Windows, что и у вызывающего процесса и терминала.
Команда Linux после wsl (или wsl.exe ) обрабатывается как любая команда, выполняемая в WSL. Можно выполнять sudo, конвейерную передачу и перенаправление файлов.
Пример использования sudo для обновления дистрибутива Linux по умолчанию:
C:\temp> wsl sudo apt-get update
Имя пользователя дистрибутива Linux по умолчанию будет указано после выполнения этой команды, и вам будет предложено указать пароль. После правильного ввода пароля дистрибутив скачает обновления.
Смешивание команд Linux и Windows
Ниже приведено несколько примеров смешиваний команд Linux и Windows с помощью PowerShell.
Чтобы выполнить команду Linux ls -la для вывода списка файлов и команду PowerShell findstr для фильтрации результатов слов, содержащих git, объедините команды:
wsl ls -la | findstr "git"
Чтобы выполнить команду PowerShell dir для вывода списка файлов и команду Linux grep для фильтрации результатов слов, содержащих git, объедините команды:
C:\temp> dir | wsl grep git
Чтобы использовать команду Linux ls -la для вывода списка файлов и команду PowerShell > out.txt для вывода этого списка в текстовый файл с именем out.txt, объедините команды:
C:\temp> wsl ls -la > out.txt
Команды, передаваемые в wsl.exe , перенаправляются в процесс WSL без изменения. Пути к файлам должны быть указаны в формате WSL.
Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Linux /proc/cpuinfo с помощью PowerShell, сделайте следующее:
C:\temp> wsl ls -la /proc/cpuinfo
Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Windows C:\Program Files с помощью PowerShell, сделайте следующее:
C:\temp> wsl ls -la "/mnt/c/Program Files"
Запуск инструментов Windows из Linux
WSL может запускать средства Windows непосредственно из командной строки WSL с помощью [tool-name].exe . Например, notepad.exe .
Приложения, выполняемые таким образом, обладают следующими свойствами.
- Рабочим каталогом остается каталог командной строки WSL (в большинстве случаев; исключения описаны ниже).
- Они имеют те же разрешения, что и процесс WSL.
- Они выполняются от имени активного пользователя Windows.
- Они отображаются в диспетчере задач Windows так, как если бы они выполнялись непосредственно из командной строки.
Исполняемые файлы Windows, выполняемые в WSL, обрабатываются аналогично собственным исполняемым файлам Linux — конвейерной передаче, перенаправлению и даже фоновому режиму работы.
Чтобы запустить средство Windows ipconfig.exe , использовать средство Linux grep для фильтрации результатов IPv4, а также средство Linux cut для удаления полей столбцов из дистрибутива Linux (например, Ubuntu), введите:
ipconfig.exe | grep IPv4 | cut -d: -f2
Давайте рассмотрим пример сочетания команд Windows и Linux. Откройте дистрибутив Linux (например, Ubuntu) и создайте текстовый файл: touch foo.txt . Теперь используйте команду Linux ls -la , чтобы отобразить список файлов прямого доступа и сведения об их создании, а также средство Windows PowerShell findstr.exe , чтобы отфильтровать результаты и отобразить только файл foo.txt :
ls -la | findstr.exe foo.txt
Средства Windows должны иметь расширение файла, его регистр символов должен совпадать с регистром в имени файла и эти файлы должны быть исполняемыми. Неисполняемые файлы, в том числе сценарии пакетного выполнения и собственные команды командной строки, такие как dir , можно выполнять с помощью команды cmd.exe /C .
Например, отобразите список содержимого каталога C:\ файловой системы Windows, введя:
cmd.exe /C dir
Или выполните команду ping , чтобы отправить запрос проверки связи на веб-сайт microsoft.com:
ping.exe www.microsoft.com
Параметры передаются в двоичный файл Windows без изменений. Например, следующая команда откроет C:\temp\foo.txt в notepad.exe .
notepad.exe "C:\temp\foo.txt"
Этот способ также будет работать:
notepad.exe C:\\temp\\foo.txt
Совместное использование переменных среды между Windows и WSL с помощью WSLENV
Решение WSL и Windows совместно используют WSLENV — специальную переменную среды, созданную для взаимодействия Windows и дистрибутивов Linux, запущенных в WSL.
Свойства переменной WSLENV :
- она используется совместно и существует в средах Windows и WSL;
- это список переменных среды, которые совместно используют Windows и WSL;
- она позволяет форматировать список переменных среды для корректного использования в Windows и WSL.
- она может использоваться в потоке между WSL и Win32.
До выпуска сборки 17063 единственной переменной среды Windows,, к которой могла получить доступ WSL, была PATH (это позволяло запускать исполняемые файлы Win32 из WSL). Начиная со сборки 17063, WSLENV поддерживается. WSLENV учитывает регистр.
Флаги WSLENV
В WSLENV доступны четыре флага, влияющие на способ преобразования переменной среды.
- /p преобразовывает пути WSL и Linux в пути Win32 и наоборот;
- /l указывает, что переменная среды представляет собой список путей;
- /u указывает, что эту переменную среды следует добавлять только при запуске WSL из Win32;
- /w указывает, что эту переменную среды следует добавлять только при запуске Win32 из WSL.
При необходимости флаги можно комбинировать.
Узнайте больше о WSLENV, ознакомившись с часто задаваемыми вопросами и примерами установки значения WSLENV для объединения других предварительно определенных переменных среды с суффиксом в виде косой чертой и флагами для указания способа перевода значения и передачи переменных скрипту. В этой статье также показано, как настроить среду разработки с помощью языка программирования Go для совместного использования GOPATH с WSL и Win32.
Отключение взаимодействия
Пользователи могут отключить возможность запуска средств Windows для отдельного сеанса WSL, выполнив следующую команду в качестве привилегированного пользователя.
echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop
Чтобы повторно включить возможность запуска двоичных файлов Windows, закройте все сеансы WSL и повторно запустите bash.exe или выполните следующую команду от имени привилегированного пользователя.
echo 1 > /proc/sys/fs/binfmt_misc/WSLInterop
Отключение взаимодействия не будет сохраняться между сеансами WSL, оно снова будет включено при запуске нового сеанса.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Windows Subsystem for Linux
Как получить доступ к директориям и файлам WSL в проводнике Windows
Бывает, что работать с директориями и файлами, хранящимися внутри файловой системы установленных дистрибутивов Windows Linux Subsystem, удобнее из проводника Windows. Если у вас хотя бы раз возникал вопрос о том, возможно ли работать с объектами из WSL в проводнике Windows, то читайте дальше.
Действительно, не все пользователи привыкли или хотят работать в консоли, тем более, когда речь идёт не об администраторах и разработчиках, а об обычных пользователях, привыкших к графическому интерфейсу и курсору мыши.
Если вы относитесь к числу таких пользователей, то как обычно открываете консоль WSL, переходите в требуемую директорию и теперь можете открыть её в проводнике Windows командой:
explorer.exe .
Если вы находитесь не в домашней директории, но хотите открыть в проводнике именно её, следующий трюк не сработает.
explorer.exe ~
Будет открыта не домашняя директория пользователя в WSL, а директория %UserProfile%\Documents. Чтобы открыть в проводнике домашнюю директорию пользователя WSL, сначала надо вернуться в неё.
cd ~ explorer.exe .
А что, если надо посмотреть и скопировать содержание текстового файла, например, /etc/hosts и хочется сделать это из привычного Блокнота?
notepad.exe /etc/hosts
Но можно ли открыть в проводнике директорию из файловой системы WSL, не запуская консоль? Можно. Простой откройте в проводнике путь \wsl$. Для этого можно вызвать диалог Run, нажав сочетание клавиш Win+R.
В открывшемся окне проводника вы увидите директории установленных дистрибутивов WSL. Переходите в нужный и работайте с файлами в привычном окружении.
Если доступ к файлам внутри WSL нужен постоянно, удобнее подключить файловую систему WSL как сетевой диск. Например, если у вас установлен дистрибутив Ubuntu, то подключить корень его файловой системы, как сетевой диск U: через графический интерфейс мастера подключений сетевых дисков, можно так.
Если надо автоматизировать подключение файловой системы WSL как сетевого диска, можно задействовать PowerShell:
New-PSDrive -Name "U" -PSProvider "FileSystem" -Root \\wsl$\Ubuntu
Если вы работали с WSL и не знали о возможности получения доступа к файловой системе установленных дистрибутивов из проводника Windows, а управление директориями и файлами при помощи команд в консоли или в окнах консольного файлового менеджера, например, Midnight Commander, вызывала затруднения, то теперь ваша работа станет удобнее.
Другие заметки
Плагин Blackhole для Grav CMS
Barry Mode обновил свой плагин Blackhole для Grav до версии 1.0.0 beta 3. Для тех, кто не знает, плагин Blackhole создаёт статическую версию веб-сайта, работающего на Grav. По крайней мере, должен создавать, потому что предыдущие версии плагина с этим не справлялись, хотя, сам плагин всё это время находился в официальном репозиторий Grav. Так как я поддерживаю идею генератора статических сайтов на основе Grav, я был просто обязан проверить, можно ли пользоваться плагином после его обновления.
Новая Twig функция svg_image() в Grav CMS
В версии системы управления контентом Grav v1.6.28 появилась новая Twig функция — svg_image(). В официальной версии справки Grav, доступной на момент публикации, описание функции отсутствует. Так как новая функция добавляет удобства при работе с Grav, считаю необходимым рассмотреть её, чтобы пользователи понимали и могли начать использовать новую встроенную Twig функцию в шаблонах и содержании страниц, не дожидаясь обновления справки.
dimayakovlev.ru © 2023 — Личное пространство внутри мировой глобальной паутины
Сайт создан и поддерживается мною с целью сохранения и распространения в свободном доступе опубликованных на нём материалов. Авторство разработок, текстов и изображений, принадлежит мне, если иное не указано отдельно.
При копировании материалов с сайта, не забывайте о важности обратных ссылок.
Размещение обратной индексируемой ссылки показывает интерес к содержанию сайта, что мотивирует к работе над новыми материалами.
Где находится домашняя директория WSL?
Добрый день всем!
Проблема в том, что я скачал файлы и не могу понять где они хранятся, скачал я их через WSL
То есть надо понять где же корневой каталог его
В ВСЛ корень вот так прописан alejan@LAPTOP-IFFGH0V4:
А когда я набираю команду ls то я в консоли вижу необходимые мне файлы, но вот вытащить из самой директории (не через линукс) у меня не получается, так как я не могу найти корень и по поиску в винде не получается найти по наименованию файлов
Подскажите пожалуйста как идентифицировать где в винде создался корневой каталог ВСЛ?
- Вопрос задан более трёх лет назад
- 11585 просмотров
1 комментарий
Простой 1 комментарий
Настройка дополнительных параметров в WSL
Файлы wsl.conf и WSLconfig используются для настройки дополнительных параметров на основе распределения ( wsl.conf ) и глобально во всех дистрибутивах WSL 2 ( .wslconfig ). В этом руководстве рассматриваются все параметры параметров, когда следует использовать каждый тип файла, где хранить файл, примеры файлов параметров и советы.
Какова разница между wsl.conf и Wslconfig?
Вы можете настроить параметры установленных дистрибутивов Linux, которые будут автоматически применяться при каждом запуске WSL двумя способами:
- .wslconfig для настройки глобальных параметров во всех установленных дистрибутивах, работающих в WSL 2.
- wsl.conf для настройки локальных параметров для каждого дистрибутива Linux, работающего в WSL 1 или WSL 2.
Оба типа файлов используются для настройки параметров WSL, но расположение, в котором хранится файл, область конфигурации, тип параметров, которые можно настроить, и версию WSL, на которой выполняется дистрибутив, все влияет на выбранный тип файла.
WSL 1 и WSL 2 выполняются с другой архитектурой и влияют на параметры конфигурации. WSL 2 выполняется как упрощенная виртуальная машина, поэтому использует параметры виртуализации, позволяющие управлять объемом памяти или процессорами (которые могут быть знакомы при использовании Hyper-V или VirtualBox). Проверьте, какая версия WSL запущена.
Второе правило для изменений конфигурации
Необходимо ждать, пока подсистема, на котором работает дистрибутив Linux, полностью перестает работать и перезапускается, чтобы обновления параметров конфигурации отображались. Обычно это занимает около 8 секунд после закрытия ВСЕХ экземпляров оболочки распространения.
Если вы запускаете дистрибутив (например, Ubuntu), измените файл конфигурации, закройте дистрибутив, а затем повторно запустите его, вы можете предположить, что изменения конфигурации сразу же вступили в силу. В настоящее время это не так, как подсистема по-прежнему может работать. Необходимо дождаться остановки подсистемы, прежде чем перезапускать, чтобы дать достаточно времени для получения изменений. Вы можете проверка, чтобы узнать, работает ли дистрибутив Linux (оболочка) после закрытия его с помощью PowerShell с помощью команды: wsl —list —running Если дистрибутивы не выполняются, вы получите ответ :»Нет запущенных дистрибутивов». Теперь можно перезапустить дистрибутив, чтобы увидеть примененные обновления конфигурации.
Команда wsl —shutdown — это быстрый путь к перезапуску дистрибутивов WSL 2, но он завершит работу всех запущенных дистрибутивов, поэтому используйте мудро. Вы также можете использовать wsl —terminate для немедленного завершения конкретного дистрибутива.
wsl.conf
Настройте локальные параметры с помощью wsl.conf для каждого дистрибутива Linux, работающего в WSL 1 или WSL 2.
- Хранится в каталоге дистрибутива в /etc виде unix-файла.
- Используется для настройки параметров на основе распределения. Параметры, настроенные в этом файле, будут применяться только к конкретному дистрибутиву Linux, содержащей каталог, в котором хранится этот файл.
- Можно использовать для дистрибутивов, выполняемых любой версией, WSL 1 или WSL 2.
- Чтобы перейти к /etc каталогу для установленного дистрибутива, используйте командную строку дистрибутива, cd / чтобы получить доступ к корневому каталогу, а затем ls перечислить файлы или explorer.exe . просмотреть в Windows проводник. Путь к каталогу должен выглядеть примерно так: /etc/wsl.conf
Настройка параметров распределения с помощью wsl.conf-файла доступна только в Сборке Windows 17093 и более поздних версиях.
Параметры конфигурации для wsl.conf
Файл wsl.conf настраивает параметры на основе распределения. (Глобальная конфигурация дистрибутивов WSL 2 см . в .wslconfig).
Файл wsl.conf поддерживает четыре раздела: automount , , network interop и user . (С моделью после .ini соглашений о файлах ключи объявляются в разделе, например файлы gitconfig.) Сведения о том, где хранить файл wsl.conf, см. в разделе wsl.conf .
системная поддержка
Многие дистрибутивы Linux по умолчанию запускают «systemd» (включая Ubuntu) и WSL недавно добавили поддержку для этого system/service manager, чтобы WSL был еще более похож на использование любимых дистрибутивов Linux на компьютере без операционной системы. Для включения systemd вам потребуется версия 0.67.6+ WSL. Проверьте версию WSL с помощью команды wsl —version . Если вам нужно обновить, вы можете получить последнюю версию WSL в Microsoft Store. Дополнительные сведения см. в объявлении блога.
Чтобы включить системный файл, откройте wsl.conf файл в текстовом редакторе, используя sudo разрешения администратора, и добавьте следующие строки в /etc/wsl.conf :
[boot] systemd=true
Затем необходимо закрыть дистрибутив WSL с помощью wsl.exe —shutdown PowerShell, чтобы перезапустить экземпляры WSL. После перезапуска дистрибутива система должна выполняться. Вы можете подтвердить с помощью команды: systemctl list-unit-files —type=service которая будет отображать состояние служб.
Параметры автоматического отключения
Метка раздела wsl.conf: [automount]
key | значение | default | примечаниями |
---|---|---|---|
включена | boolean | true | true Вызывает автоматическое соединение фиксированных дисков (т C:/ . е. или D:/ ) с drvFs /mnt . false означает, что диски не будут автоматически подключены, но вы все равно можете подключить их вручную или через fstab . |
mountFsTab | boolean | true | Значение true задает /etc/fstab для обработки при запуске WSL. /etc/fstab — это файл, в котором можно объявлять другие файловые системы, например общий ресурс SMB. Поэтому вы можете автоматически подключать эти файловые системы в WSL при запуске. |
root | строка | /mnt/ | Задает каталог, в который будут автоматически подключены несъемные диски. По умолчанию это значение имеет /mnt/ значение, поэтому диск C-системы Windows подключен к /mnt/c/ . Если вы изменились /mnt/ /windir/ , вы должны ожидать, что фиксированный диск C подключен к /windir/c . |
options | Список значений, разделенных запятыми, например uid, gid и т. д., см. в разделе «Параметры автоматического отключения» ниже. | пустая строка | Значения параметров автоматического подключения перечислены ниже и добавляются в строку параметров подключения drvFs по умолчанию. Можно указать только параметры, относящиеся к DrvFs. |
Параметры автоматического подключения применяются в качестве параметров подключения для всех автоматически подключенных дисков. Чтобы изменить параметры только для определенного диска, используйте /etc/fstab вместо него файл. Параметры, которые двоичный файл подключения обычно анализирует и преобразовывает во флаг, не поддерживаются. Если вы хотите явно указать эти параметры, необходимо включить каждый диск, для которого вы хотите сделать это /etc/fstab .
Параметры автоматического отключения
Задание различных параметров подключения для дисков Windows (DrvFs) позволяет контролировать определение разрешений для файлов Windows. Имеются следующие варианты:
Ключ. | Description | По умолч. |
---|---|---|
uid | ИД пользователя, используемый для владельца всех файлов. | Идентификатор пользователя дистрибутива WSL по умолчанию (при первой установке по умолчанию используется значение 1000). |
gid | Идентификатор группы, используемый для владельца всех файлов. | Идентификатор группы по умолчанию дистрибутива WSL (при первой установке по умолчанию используется значение 1000) |
umask | Восьмеричная маска разрешений, исключаемых для всех файлов и каталогов. | 022 |
fmask | Восьмеричная маска разрешений, исключаемых для всех файлов. | 000 |
dmask | Восьмеричная маска разрешений, исключаемых для всех каталогов. | 000 |
metadata | Добавление метаданных в файлы Windows для поддержки разрешений системы Linux | disabled (выключено) |
case | Определяет каталоги, которые рассматриваются как конфиденциальные регистры, и указывает, будут ли новые каталоги, созданные с помощью WSL, иметь набор флагов. Подробные сведения о параметрах см. в разделе о конфиденциальности регистра. Параметры включают off , dir или force . | off |
По умолчанию WSL задает пользовательское и гидд-значение пользователя по умолчанию. Например, в Ubuntu пользователь по умолчанию используется uid=1000, gid=1000. Если это значение используется для указания другого параметра gid или uid, значение пользователя по умолчанию будет перезаписан. В противном случае всегда будет добавляться значение по умолчанию.
Маска режима создания пользовательских файлов (umask) задает разрешение для вновь созданных файлов. Значение по умолчанию — 022, только вы можете записывать данные, но любой пользователь может считывать данные. Значения можно изменить, чтобы отразить различные параметры разрешений. Например, umask=077 изменение разрешения на полное частное, ни один другой пользователь не может считывать или записывать данные. Чтобы дополнительно указать разрешение, можно также использовать fmask (файлы) и dmask (каталоги).
Маски разрешений подвергаются логической операции ИЛИ перед применением к файлам или каталогам.
Что такое DrvFs?
DrvFs — это подключаемый модуль файловой системы к WSL, который был разработан для поддержки взаимодействия между WSL и файловой системой Windows. DrvFs позволяет WSL подключать диски с поддерживаемыми файловыми системами в разделе /mnt, например /mnt/c, /mnt/d и т. д. Дополнительные сведения об указании поведения конфиденциальности регистра по умолчанию при подключении дисков или каталогов Windows или Linux см. на странице конфиденциальности регистра.
Параметры сети
Метка раздела wsl.conf: [network]
key | значение | default | примечаниями |
---|---|---|---|
generateHosts | boolean | true | Значение true указывает WSL создать /etc/hosts . Файл hosts содержит статическую карту имен узлов и соответствующих IP-адресов. |
generateResolvConf | boolean | true | Значение true указывает WSL создать /etc/resolv.conf . Файл resolv.conf содержит список DNS-серверов, которые способны разрешить заданное имя узла в его IP-адрес. |
hostname | строка | Имя узла Windows | Задает имя узла, используемое для распределения WSL. |
Параметры взаимодействия
Метка раздела wsl.conf: [interop]
Эти параметры доступны в выпусках для программы предварительной оценки, начиная со сборки 17713.
key | значение | default | примечаниями |
---|---|---|---|
включена | boolean | true | Установка этого ключа определяет, будет ли WSL поддерживать запуск процессов Windows. |
appendWindowsPath | boolean | true | Задание этого ключа определяет, будет ли WSL добавлять элементы пути Windows в переменную среды $PATH. |
Параметры пользователя
Метка раздела wsl.conf: [user]
Эти параметры доступны в сборке 18980 и более поздних версиях.
key | значение | default | примечаниями |
---|---|---|---|
default | строка | Исходное имя пользователя, созданное при первом запуске | Установка этого ключа указывает, какой пользователь будет выполняться при первом запуске сеанса WSL. |
Параметры загрузки
Параметр загрузки доступен только в Windows 11 и Server 2022.
Метка раздела wsl.conf: [boot]
key | значение | default | примечаниями |
---|---|---|---|
Команда | строка | «» | Строка команды, которую вы хотите выполнить при запуске экземпляра WSL. Эта команда выполняется от имени корневого пользователя. например: service docker start . |
Пример файла wsl.conf
Приведенный wsl.conf ниже пример файла демонстрирует некоторые доступные параметры конфигурации. В этом примере дистрибутив — Ubuntu-20.04, а путь к файлу — \\wsl.localhost\Ubuntu-20.04\etc\wsl.conf .
# Automatically mount Windows drive when the distribution is launched [automount] # Set to true will automount fixed drives (C:/ or D:/) with DrvFs under the root directory set above. Set to false means drives won't be mounted automatically, but need to be mounted manually or with fstab. enabled = true # Sets the directory where fixed drives will be automatically mounted. This example changes the mount location, so your C-drive would be /c, rather than the default /mnt/c. root = / # DrvFs-specific options can be specified. options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off" # Sets the `/etc/fstab` file to be processed when a WSL distribution is launched. mountFsTab = true # Network host settings that enable the DNS server used by WSL 2. This example changes the hostname, sets generateHosts to false, preventing WSL from the default behavior of auto-generating /etc/hosts, and sets generateResolvConf to false, preventing WSL from auto-generating /etc/resolv.conf, so that you can create your own (ie. nameserver 1.1.1.1). [network] hostname = DemoHost generateHosts = false generateResolvConf = false # Set whether WSL supports interop processes like launching Windows apps and adding path variables. Setting these to false will block the launch of Windows processes and block adding $PATH environment variables. [interop] enabled = false appendWindowsPath = false # Set the user when launching a distribution with WSL. [user] default = DemoUser # Set a command to run when a new WSL instance launches. This example starts the Docker container service. [boot] command = service docker start
.wslconfig
Настройте глобальные параметры с помощью WSLconfig во всех установленных дистрибутивах, работающих в WSL.
- WSLCONFIG-файл по умолчанию не существует. Его необходимо создать и сохранить в %UserProfile% каталоге, чтобы применить эти параметры конфигурации.
- Используется для глобальной настройки параметров во всех установленных дистрибутивах Linux, работающих в качестве версии WSL 2.
- Можно использовать только для дистрибутивов, выполняемых WSL 2. Дистрибутивы, работающие как WSL 1, не будут затронуты этой конфигурацией, так как они не работают в качестве виртуальной машины.
- Чтобы перейти к %UserProfile% каталогу, в PowerShell используйте cd ~ для доступа к домашнему каталогу (который обычно является вашим профилем пользователя) C:\Users\ или открыть Windows проводник и ввести %UserProfile% в адресной строке. Путь к каталогу должен выглядеть примерно так: C:\Users\\.wslconfig
WSL обнаруживает существование этих файлов, считывает содержимое и автоматически применяет параметры конфигурации при каждом запуске WSL. Если файл отсутствует или поврежден (неправильное форматирование разметки), WSL продолжит запускаться как обычный без применения параметров конфигурации.
Параметры конфигурации для WSLconfig
WSLconfig-файл настраивает параметры глобально для всех дистрибутивов Linux, работающих с WSL 2. (Сведения о конфигурации для каждого дистрибутива см. в wsl.conf ).
Сведения о том, где хранить wslconfig-файл wslconfig, см . в .wslconfig .
Настройка глобальных .wslconfig параметров доступна только для дистрибутивов, работающих как WSL 2 в Сборке Windows 19041 и более поздних версий. Помните, что вам может потребоваться выполнить запуск wsl —shutdown , чтобы завершить работу виртуальной машины WSL 2, а затем перезапустить экземпляр WSL, чтобы эти изменения вступили в силу.
Этот файл может содержать следующие параметры, влияющие на виртуальную машину, которая управляет любым дистрибутивом WSL 2:
Основные параметры WSL
Метка раздела wslconfig: [wsl2]
key | значение | default | примечаниями |
---|---|---|---|
Backports | path | Встроенное ядро Майкрософт, предоставленное в папке «Входящие» | Абсолютный путь к пользовательскому ядру Linux. |
Память | size | 50 % общей памяти в Windows | Объем памяти для назначения виртуальной машине WSL 2. |
Процессоры | number | Одинаковое количество логических процессоров в Windows | Сколько логических процессоров назначается виртуальной машине WSL 2. |
localhostForwarding | boolean | true | Логическое указание, если порты привязаны к wild карта или localhost в виртуальной машине WSL 2 должны быть подключены с узла через localhost:port . |
kernelCommandLine | строка | Пробел | Дополнительные аргументы командной строки ядра. |
safeMode | boolean | false | Запустите WSL в режиме Сейф, который отключает множество функций и предназначен для восстановления дистрибутивов, которые находятся в плохих состояниях. Доступно только для Windows 11 и WSL версии 0.66.2+. |
swap | size | 25 % объема памяти в Windows округляется до ближайшего ГБ | Сколько места переключения для добавления в виртуальную машину WSL 2 не требуется. Хранилище буфера — это дисковый ОЗУ, используемый при превышении требований к памяти на аппаратном устройстве. |
swapFile | path | %USERPROFILE%\AppData\Local\Temp\swap.vhdx | Абсолютный путь Windows к виртуальному жесткому диску подкачки. |
PageReporting | boolean | true | Параметр по умолчанию true позволяет Windows освободить неиспользуемую память, выделенную виртуальной машине WSL 2. |
guiApplications | Логических* | true | Логическое значение для включения или отключения поддержки приложений GUI (WSLg) в WSL. Доступно только для Windows 11. |
debugConsole | Логических* | false | Логическое значение для включения выходного окна консоли, отображающего содержимое dmesg экземпляра дистрибутива WSL 2. Доступно только для Windows 11. |
nestedVirtualization | Логических* | true | Логическое значение для включения или отключения вложенной виртуализации, что позволяет другим вложенным виртуальным машинам выполняться внутри WSL 2. Доступно только для Windows 11. |
vmIdleTimeout | Номер* | 60000 | Количество миллисекунда, которое виртуальная машина неактивна, прежде чем завершить работу. Доступно только для Windows 11. |
dnsProxy | bool | true | Применимо только к сетиMode = NAT. Логическое значение для информирования WSL о настройке DNS-сервера в Linux для NAT на узле. Если задано значение false, зеркало DNS-серверы из Windows в Linux. |
networkingMode** | строка | NAT | Если значение равно, mirrored это включает режим зеркало сети. По умолчанию или нераспознанные строки приводят к сети NAT. |
Брандмауэра** | bool | true | Если задано значение true, правила брандмауэра Windows, а также правила, относящиеся к трафику Hyper-V, можно фильтровать сетевой трафик WSL. |
dnsTunneling** | bool | false | Изменение того, как dns-запросы проксиируются из WSL в Windows |
autoProxy* | bool | false | Принудительно применяет WSL для использования сведений о прокси-сервере Windows |
Записи со path значением должны быть путями Windows с экранируемыми обратными косыми чертами, например: C:\\Temp\\myCustomKernel
Записи со size значением должны быть размером, за которым следует единица, например 8GB или 512MB .
Записи со значением * после того, как тип значения доступен только в Windows 11.
Записи с ** после типа значения требуют Windows 11 версии 22H2 или более поздней.
Экспериментальные параметры
Эти параметры являются предварительными версиями экспериментальных функций, которые мы стремимся сделать по умолчанию в будущем.
Метка раздела wslconfig: [experimental]
Имя настройки | Значение | По умолчанию | Примечания. |
---|---|---|---|
autoMemoryReclaim | строка | disabled (выключено) | Автоматически освобождает кэшированную память после обнаружения простоя использования ЦП. gradual Установите значение для медленного выпуска и dropcache для мгновенного выпуска кэшированного объема памяти. |
sparseVhd | bool | false | Если задано значение true, все только что созданные виртуальные жесткие диски будут автоматически разрежены. |
useWindowsDnsCache ** | bool | false | Применимо только в том случае, если wsl2.dnsTunneling задано значение true. Если для этого параметра задано значение false, DNS-запросы, туннелированные из Linux, будут обходить кэшированные имена в Windows, чтобы всегда помещать запросы в провод. |
bestEffortDnsParsing ** | bool | false | Применимо только в том случае, если wsl2.dnsTunneling задано значение true. Если задано значение true, Windows извлекает вопрос из DNS-запроса и пытается устранить его, игнорируя неизвестные записи. |
initialAutoProxyTimeout * | строка | 1000 | Применимо только в том случае, если wsl2.autoProxy задано значение true. Указывает, сколько времени (в миллисекундах) WSL ожидает получения сведений о прокси-сервере HTTP при запуске контейнера WSL. Если параметры прокси-сервера разрешаются после этого времени, экземпляр WSL должен быть перезапущен для использования полученных параметров прокси-сервера. |
ignoredPorts ** | строка | null | Применимо только в том случае, если wsl2.networkingMode задано значение mirrored . Указывает, к каким портам могут привязаться приложения Linux, даже если этот порт используется в Windows. Это позволяет приложениям прослушивать порт только в Linux, поэтому эти приложения не блокируются даже в тех случаях, когда этот порт используется для других целей в Windows. Например, WSL разрешает привязку к порту 53 в Linux для Docker Desktop, так как он прослушивает только запросы из контейнера Linux. Должен быть отформатирован в разделенном запятыми списке, например: 3000,9000,9090 |
hostAddressLoopback ** | bool | false | Применимо только в том случае, если wsl2.networkingMode задано значение mirrored . Если задано True значение , контейнер сможет подключиться к узлу или узлу подключиться к контейнеру по IP-адресу, назначенному узлу. Этот 127.0.0.1 параметр всегда может использоваться для использования всех дополнительных локальных IP-адресов. Поддерживаются только адреса IPv4, назначенные узлу. |
Записи со значением * после того, как тип значения доступен только в Windows 11.
Записи с ** после типа значения требуют Windows версии 22H2 или более поздней.
Пример Wslconfig-файла
Приведенный .wslconfig ниже пример файла демонстрирует некоторые доступные параметры конфигурации. В этом примере путь к файлу имеет значение C:\Users\\.wslconfig .
# Settings apply across all Linux distros running on WSL 2 [wsl2] # Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB memory=4GB # Sets the VM to use two virtual processors processors=2 # Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at https://github.com/microsoft/WSL2-Linux-Kernel kernel=C:\\temp\\myCustomKernel # Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6 kernelCommandLine = vsyscall=emulate # Sets amount of swap storage space to 8GB, default is 25% of available RAM swap=8GB # Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx swapfile=C:\\temp\\wsl-swap.vhdx # Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free pageReporting=false # Turn on default connection to bind WSL 2 localhost to Windows localhost. Setting is ignored when networkingMode=mirrored localhostforwarding=true # Disables nested virtualization nestedVirtualization=false # Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging debugConsole=true # Enable experimental features [experimental] sparseVhd=true
Дополнительные ресурсы
- Блог командной строки Windows: автоматическая настройка WSL
- Блог командной строки Windows: Chmod/Chown, DrvFs, метаданные файлов
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.