Глава 3. Управление дистрибутивами WSL

Содержание

Глава 3. Управление дистрибутивами WSL
Перечисление всех дистрибутивов
Перечисление запущенных дистрибутивов
Запуск установленного по умолчанию дистрибутива
Настройка установленного по умолчанию дистрибутива
Запуск конкретного дистрибутива
Запуск в качестве конкретного пользователя
Исполнение отдельных команды
Останов
Прекращение
Преобразование дистрибутивов между версиями WSL
Экспорт/ резервное копирование дистрибутива
Импорт/ восстановление дистрибутива
Дублирование дистрибутивов
Сброс дистрибутивов
Открытие настроек "App" дистрибутива WSL
Расширенные параметры в настройках "App" дистрибутива WSL
Обсуждение: сброс дистрибутива WSL
Деинсталляция дистрибутивов из Microsoft Store
Из меню Windows Пуск
Из расширенных параметров в настройках "App" дистрибутива WSL
При помощи PowerShell
Деинсталляция дистрибутивов, установленных при помощи wsl.exe --import
Управление ядром WSL2
Проверка доступных обновлений
Проверка состояния обновления ядра
Откат обновлений ядра
Монтирование внешних томов
Демонтирование из Windows

WSL содержит некий набор инструментов управления дистрибутивом Linux из командной строки. Данная глава исследует эти инструменты обсуждая их, через примеры и снимки экрана для каждого из них.

Перечисление всех дистрибутивов

Название, состояние и номер версии WSL всех установленных дистро WSL могут быть перечислены (Рисунок 3-1) после открытия PowerShell и исполнения


PS C:\> wsl.exe --list --verbose --all
		
 

Рисунок 3-1


Перечисление всех установленных дистро WSL с их текущим состоянием и версией WSL

Под “NAME” вы обнаружите наши четыре установленных дистрибутива. Это название всегда уникальный идентификатор в WSL для каждого из установленных дистрибутивов. Он устанавливается своим издателем в дистро WSL, которые устанавливаются из Microsoft Store или при сторонней загрузке из некого пакета .appx. Это название может быть установлено вручную при установке с помощью wsl.exe --import (см. раздел Импорт/ восстановление дистрибутива). Большинство команд WSL ссылаются на сам дистро по этому названию.

Звёздочка (*) появляется вслед за выбранным дистро WSL по умолчанию. Для дополнительных сведений относительно настройки дистро по умолчанию отсылаем вас к разделу Настройка установленного по умолчанию дистрибутива.

Под “STATE” вы видите, что в данном случае ни один из них не запущен. Дистро WSL открываются когда открывается некая оболочка WSL, запускается WSL из имеющейся оболочки или просматриваются файлы при помощи \\wsl$\<distroname>, например, \\wsl$\Ubuntu-20.04\, а в более новых сборках Windows 10 с применением \\wsl\<distroname>, скажем, \\wsl\Ubuntu.

Под “VERSION” вы обнаруживаете что Ubuntu-Groovy, Ubuntu-Warty и Ubuntu-GroovyGPU установлены в качестве WSL2, в то время как Ubuntu-20.04 установлен как дистро WSL1. Имеется возможность обладать дистрибутивами WSL1 и WSL2 плечом к плечу. Достаточно просто преобразовывать уже имеющиеся дистро между WSL1 и WSL2 (см. раздел Преобразование дистрибутивов между версиями WSL).

Перечисление запущенных дистрибутивов

Для просмотра уже исполняющихся дистро WSL (Рисунок 3-2) воспользуйтесь


PS C:\> wsl.exe --list –running
   

Например,


PS C:\> wsl.exe --list –running
		
 

Рисунок 3-2


Перечисление всех запущенных дистро

Запуск установленного по умолчанию дистрибутива

WSL настраивает один из ваших дистро как выбираемый по умолчанию дистро.Этот дистро запускается когда вы выполняете из PowerShell wsl.exe без соответствующего параметра -d. Чтобы изменить выбранный по умолчанию дистро, обратитесь к разделу Настройка установленного по умолчанию дистрибутива.

Запускайте установленный по умолчанию дистро WSL из PowerSell (Рисунок 3-3) при помощи


PS C:\> wsl.exe
		
 

Рисунок 3-3


Запуск установленным по умолчанию дистро

Настройка установленного по умолчанию дистрибутива

Как это уже обсуждалось ранее, дистро, выбранный в качестве установленного по умолчанию, запускается при исполнении вами wsl.exe без соответствующего параметра -d. Некоторые инструменты сторонних разработчиков также пользуются wsl.exe для взаимодействия с WSL. Вам может потребоваться изменить свой выбор по умолчанию дистро для работы с предпочитаемым вами дистро в таких инструментах.

Установите дистро WSL выбранным по умолчанию (Рисунок 3-4) при помощи


PS C:\> wsl.exe --set-default <name of distribution>
		

где <name of distribution> это название того зарегистрированного в WSL дистрибутива, который вы бы хотели выбрать в качестве установленного по умолчанию. Как просматривать все уже установленные дистро, мы обсуждали в разделе Перечисление всех дистрибутивов.

Пример:


PS C:\> wsl.exe --set-default Ubuntu-20.04
		
 

Рисунок 3-4


Установка Ubuntu-20.04 в качестве выбранного по умолчанию дистро в WSL

Запуск конкретного дистрибутива

Для запуска определённого дистро WSL (Рисунок 3-5), например, отличающегося от выбранного вами по умолчанию, в PowerShell воспользуйтесь


PS C:\> wsl.exe --distribution <name of distribution>
		

где <name of distribution> это название такого дистро WSL, зарегистрированного в WSL. Вам требуется точное название соответствующего дистро WSL; если вам требуется его обнаружить, воспользуйтесь материалом раздела Перечисление всех дистрибутивов.

Например:


PS C:\> wsl.exe --distribution Ubuntu-20.04
		
 

Рисунок 3-5


Запуск Ubuntu-20.04

Устанавливаемые из Microsoft Stote или из сторонним образом загружаемых пакетов .appx дистро WSL также могут запускаться через их иконки в меню Пуск (Start, Рисунок 3-6).

 

Рисунок 3-6


Иконка Ubuntu в меню Пуск Windows за некоторыми предпочитаемыми автором приложениями разработки

Устанавливаемые из Microsoft Stote или из сторонним образом загружаемых пакетов .appx дистро WSL также содержат некоторые псевдонимы приложения и могут запускаться из PowerShell (Рисунок 3-7). Они не создаются при импорте дистро WSL вручную с применением wsl.exe --import.

Например:


PS C:\> ubuntu2004.exe
		

запустит Ubuntu 20.04 LTS из Microsoft Store.

 

Рисунок 3-7


Запуск установленного из Microsoft Store Ubuntu-20.04 при помощи псевдонима приложения

Запуск в качестве конкретного пользователя

Для запуска определённого дистро WSL из PowerShell от имени конкретного пользователя (Рисунок 3-8), воспользуйтесь


PS C:\> wsl.exe --distribution <name of distribution> --user <name of user>
		

ult <name of distribution> это название зарегистрированного в WSL дистрибутива WSL, который вы бы желали запустить, а <name of user> это имя некого существующего пользователя, которого вы бы хотели видеть запускающим этот дистро. К примеру:


wsl.exe --distribution Ubuntu-20.04 --user root
		
 

Рисунок 3-8


Запуск Ubuntu-20.04 от имени конкретного пользователя, в данном случае пользователя root

Обратите внимание, что такой пользователь должен иметься в самом дистро WSL; в противном случае вы получите некую ошибку (Рисунок 3-9)

 

Рисунок 3-9


Ошибка при запуске Ubuntu-20.04 от имени конкретного пользователя, когда такой пользователь не существует

Исполнение отдельных команды

Для запуска команды в выбранном вами по умолчанию дистрибутиве WSL (Рисунок 3-10) воспользуйтесь


PS C:\> wsl.exe --exec <command to run>
		

где <command to run> это та команда, которую вы бы хотели выполнить в качестве установленного по умолчанию пользователя в своём выбираемом по умолчанию дистро WSL. Скажем,


PS C:\> wsl.exe --exec echo 'hello world'
		
 

Рисунок 3-10


Запуск отдельной команды в дистро WSL по умолчанию при помощи wsl.exe

Для запуска команд в неком конкретном дистрибутиве WSL добавляйте --distribution и название соответствующего дистрибутива (Рисунок 3-11):


PS C:\> wsl.exe --distribution <name of distribution> --exec <command to run>
		

где <name of distribution> это название зарегистрированного в WSL дистро WSL, который вы бы желали запустить, а <command to run> это та команда, которую вы бы хотели выполнить в его оболочке по умолчанию, например:


wsl.exe --distribution Ubuntu-20.04 --exec cat /etc/os-release
		
 

Рисунок 3-11


Запуск отдельной команды в конкретном дистро WSL при помощи wsl.exe

В качестве необязательного параметра вы можете добавить --user и выполнить свою команду от имени определённого пользователя (Рисунок 3-12):


PS C:\> wsl.exe --distribution <name of distribution> --user <name of user> --exec <command to run>
		

Допустим,


PS C:\> wsl.exe --distribution Ubuntu-20.04 --user root --exec whoami
		
 

Рисунок 3-12


Запуск отдельной команды в конкретном дистро WSL от имени определённого пользователя при помощи wsl.exe

Останов

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

Вам следует перезапускать имеющуюся среду WSL2 после изменения настроек в вашем .wslconfig, таких как установка индивидуального ядра WSL или изменения ваших пределов использования памяти.

Также может так члучиться, по большей части в сборках Insider, что ваша среда WSL2 может стать нестабильной, в частности когда вы занимаетесь хакингом своей подсистемы, что многие из вас пожелают.

Для останова вашей среды WSL2 (Рисунок 3-13), выполните следующее:


PS C:\> wsl.exe --shutdown
		

Это инициирует останов, уведомляя запущенные процессы Linux о нём через SIGTERM с последующим прекращением имеющегося экземпляра WSL. Запуск любого дистро теперь перезапустит вашу среду WSL2.

 

Рисунок 3-13


Останов среды WSL2

В своей открытой закладке Ubuntu-20.04 вы обнаружите (Рисунок 3-14), что был выполнен выход.

 

Рисунок 3-14


Состояние Ubuntu-20.04 после выдачи команды shutdown

Прекращение

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

Для прекращения некого дистро WSL (Рисунок 3-15), выполните следующее:


PS C:\> wsl.exe –terminate <name of distribution>
		

где <name of distribution> это название зарегистрированного в WSL дистро WSL, который вы бы хотели прекратить, допустим:


PS C:\> wsl.exe --terminate Ubuntu-20.04
		
 

Рисунок 3-15


Прекращение дистро WSL

В открытой закладке Ubuntu-20.04 вы обнаружите (Рисунок 3-16) что выполнен выход.

 

Рисунок 3-16


Состояние Ubuntu-20.04 после выдачи команды terminate

Преобразование дистрибутивов между версиями WSL

Выполнение преобразования WSL между WSL1 и WSL2 достаточно простое; тем не менее, большие установки могут потребовать некоторого времени, поэтому требуется внимание.

В последних Intel Core i7 с современными характеристиками, преобразование среды в 500МБ между WSL1 и WSL2 занимает около минуты. Большие установки дистро WSL с 10ГБ и более могут требовать до часа, в зависимости от вашего оборудования. Если вам показалось что всё зависло, нажмите “Enter” и попытайтесь обнаружить что произошло.

Для получения дополнительных сведений о том как управляются файлы WSL1 и WSL2, обратитесь к разделу Механики установки WSL.

Для преобразования некого дистро между WSL1 и WSL2 (Рисунок 3-17) выполните


PS C:\> wsl.exe --set-version <name of distribution> <version number>
		

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


PS C:\> wsl.exe --set-version Ubuntu-20.04 1
PS C:\> wsl.exe --set-version Ubuntu-20.04 2
		
 

Рисунок 3-17


Преобразование дистро WSL между WSL1 и WSL2

Экспорт/ резервное копирование дистрибутива

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

Здесь также применимо то же самое предостережение относительно того времени, которое может отнимать данный процесс, которое мы сделали в разделе Преобразование дистрибутивов между версиями WSL. Это процесс интенсивного файлового ввода/ вывода, который может требовать значительного времени для своего завершения.

Для резервного копирования или экспорта некого дистрибутива WSL (Рисунок 3-18), поступите так:


PS C:\> wsl.exe --export <name of distribution> <filename of exported image>
		

где <name of distribution> это название зарегистрированного в WSL дистро WSL, который вы хотите экспортировать, и где <filename of exported image> это название файла того образа дистро WSL, в который вы выполняете экспорт. Обратите внимание на отсутствие индикатора прогресса состояния.

К примеру:


wsl.exe --export Ubuntu-20.04 C:\WSL\ubuntu-focal-backup.tar.gz
		
 

Рисунок 3-18


Резервное копирование или экспорт дистро WSL

Импорт/ восстановление дистрибутива

Дополнительно к установке дистро WSL из Microsoft Store и сторонней загрузки пакетов .appx, вы также можете импортировать образы rootfs Linux непосредственно в WSL. Это может включать в себя

  • Образы rootfs, выгружаемые непосредственно из Интернета, например от Ubuntu

  • Образы WSL, экспортированные для целей резервного копирования

  • Образы WSL, экспортированные с целью обладания множеством дистрибутивов WSL из одного и того же образа

Импорт некого образа выполняется следующим манером:


PS C:\> wsl.exe --import <name of imported distro> <location to store unpacked file system> <filename of exported image> --version <1 or 2>
		

где <name of imported distro> это уникальное имя вашего дистро WSL, как оно зарегистрировано в WSL. Именно это название будет применяться для взаимодействия с тем дистрибутивом, который появляется в wsl.exe –list и в ниспадающем меню Терминала Windows.

<location to store unpacked file system> это каталог для сохранения относящихся к WSL файлов. Это обрабатывается автоматически для дистро WSL из Microsoft Store и сторонних загрузок .appx, но при импортировании вручную вам надлежит определять каталог. Ваш пользователь Windows должен обладать правами на чтение/ запись для этой папки. Пользуйтесь устройствами, отличающимися, по возможности, от C:\, однако не рекомендуется применять монтируемое через сетевую среду хранилище.

<filename of exported image> это файловое имя вашей rootfs Linux для импорта.

--version <1 or 2> это не обязательная установка для перекрытия установленной по умолчанию WSL и импорта выбранной rootfs определённо в WSL1 или WSL2 (Рисунок 3-19).

Образец:


PS C:\> wsl.exe --import Ubuntu-Groovy C:\WSL\Ubuntu-Groovy\ C:\Users\Hayden\Downloads\groovy-server-cloudimg-amd64-wsl.rootfs.tar.gz --version 2
		

Этот пример импортирует наш экспорт образа WSL1 Ubuntu 20.04 в качестве WSL2. Тем самым мы можем проверить тот же самый образ Ubuntu 20.04, который мы настроили под себя в WSL1 или WSL2.

 

Рисунок 3-19


Восстановление или импорт дистро WSL

Дублирование дистрибутивов

При определённых обстоятельствах вы можете пожелать продублировать некий имеющийся уже установленным дистро WSL. Это полезно когда вы хотите клонировать некий уже имеющийся стек разработки , который вам пришлось настроить в точном соответствии с вашей спецификацией, возможно, чтобы проверить некое изменение в вашей конфигурации не нарушая уже существующего рабочего процесса. Для осуществления этого мы экспортируем некий обрз соответствующего дистро, для которого мы хотим выполнить дубликат и затем импортируем его под новым названием дистро WSL.

Вначале экспортируем


PS C:\> wsl.exe --export <name of distribution> <filename of exported image>
		

Например,


PS C:\> wsl.exe --export Ubuntu-20.04 C:\WSL\ubuntu-focal-backup.tar.gz
		

Эатем мы импортируем свой файл rootfs под новым именем дистро (Рисунок 3-20)


PS C:\> wsl.exe --import <name of imported distro> <location to store unpacked file system> <filename of exported image> --version <1 or 2>
		

Например,


PS C:\> wsl.exe --import Ubuntu-20.04-2 C:\WSL\Ubuntu-20.04-2\ C:\WSL\ubuntu-focal-backup.tar.gz --version 2
		
 

Рисунок 3-20


Дублирование дистро WSL посредством комбинации экспорта и импорта

Сброс дистрибутивов

Если у вас имеется установленный вами дистро WSL из Microsoft Store или загруженный со стороны .appx, у вас имеется ряд дополнительных вариантов графического интерфейса для управления вашим дистро, включая опцию “Reset” до свежей установки, благодаря преимуществу того, что он укомплектован в качестве прикладного приложения UWP.

Открытие настроек "App" дистрибутива WSL

Кликните по кнопку Пуск (Start) Windows и определите свой дистро WSL в появившемся меню Windows Start, либо в имеющемся алфавитном списке, или в пришпиленных плитках. Кликните правой кнопкой по вашему дистро, пройдите к “More” (Дополнительно) и, в раскрывшемся меню кликните “App Settings” (Параметры приложения) (Рисунок 3-21).

 

Рисунок 3-21


Открытие App settings установленного из Microsoft Store дистро WSL

В качестве альтернативы, вы можете получить доступ к настройкам приложения кликнув по кнопке Windows Start (Пуск) и затем кликнув по иконке шестерёнки Settings (Параметры) (Рисунок 3-22).

 

Рисунок 3-22


Открытие Settings из кнопки Satrt Windows

В Windows Settings (Параметры) кликните по Apps (Приложения) (Рисунок 3-23).

 

Рисунок 3-23


Категория Apps в Windows Settings

А затем отмотайте вниз или отыщите свой дистро, установленный из Microsoft Store в “Apps & features” (Приложения и возможности) (Рисунок 3-24):

 

Рисунок 3-24


Поиск “Ubuntu” in Apps & features Windows Settings

Из “Apps & features” (Приложения и возможности) вы запросто можете передвинуть свой дистро WSL на другое устройство (это возможно, но не рекомендуется) и выполнить деинсталляцию. Прежде чем вы попытаетесь переместить свой дистро WSL на другое устройство, убедитесь что вы выполнили его полное резервное копирование (см. раздел Экспорт/ резервное копирование дистрибутива).

Расширенные параметры в настройках "App" дистрибутива WSL

Для дотсупа к дополнительным параметрам для вашего дистро WSL, кликните по “Advanced options” (Дополнительные параметры), что перенесёт вас в следующую панель (Рисунок 3-25).

 

Рисунок 3-25


Расширенные параметры для устанавливаемого из Microsoft Store Ubuntu

Publisher and Version (Издатель и версия)

Эта панель снабдит вас некоторыми основными сведениями, такими как издатель дистро WSL и версия.

App Storage Space (Приложение)

Здесь указывается размер первоначального образа, хранимого в вашей системе и обновляемого за сценой когда становятся доступными новые обновления. Тем не менее, они не выполняются в имеющейся у вас установке. Имеющиеся установки обновляются через соответствующий диспетчер пакетов дистро, например, через apt для Ubuntu. Этот обновлённый образ будет распакован когда вы выполните его Сброс, как это описано далее.

Data Storage Space (Данные)

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

Обсуждение: сброс дистрибутива WSL

Если вы желаете выполнить сброс имеющейся у вас установки дистро WSL до наиболее последнего опубликованного вашим издателем в Microsoft Store дистро оригинального образа, отмотайте вниз панель “Advanced options” (Дополнительные параметры) (Рисунок 3-26) и кликните “Reset” (Сброс). Нет никакого подтверждения. Это немедленно и безвозвратно уничтожит все файлы вашего дистро WSL в /. Затем вы останетесь со свежей установкой дистро WSL. Убедитесь что вы выполнили резервное копирование всех важных файлов, скопировав их в некое безопасное место в Windows через /mnt/c или выполнив резервное копирование образа при помощи описанного ранее wsl.exe --export.

 

Рисунок 3-26


Ещё вниз в панели “Advanced options” для установленного из Microsoft Store Ubuntu, туда, где виден параметр “Reset”

Деинсталляция дистрибутивов из Microsoft Store

Если вы обладаете установленным из Microsoft Stote (или загруженным со стороны .appx) собственным дистро WSL, у вас имеются некоторые дополнительные возможности для деинсталляции.

Из меню Windows Пуск

Кликните по кнопке Windows Start (Пуск) и отыщите свой дистро WSL либо в алфавитном списке, либо в пришпиленной плитке (Рисунок 3-27). Кликните правой кнопкой по своему дистро и выберите “Uninstall” (Удалить).

 

Рисунок 3-27


Деинсталляция дистрибутива WSL из меню Windows Start

Из расширенных параметров в настройках "App" дистрибутива WSL

Выполните доступ к панели “Advanced options” (Дополнительные параметры), как это было описано ранее (Рисунок 3-28), но вместо того чтобы кликнуть по “Reset” (Сброс), кликните “Uninstall” (Удалить).

 

Рисунок 3-28


Панель “Advanced options” для установленного из Microsoft Store Ubuntu, где виден параметр “Uninstall”

При помощи PowerShell

Также вы можете удалить установленный из Microsoft Store или загруженный со стороны .appx дистро WSL при помощи PowerShell.

Прежде всего определите полное название своего пакета (Рисунок 3-29) при помощи


PS C:\> Get-AppxPackage -Name "*<distroname>*" | Select PackageFamilyName
		

Например:


PS C:\> Get-AppxPackage -Name "*ubuntu*" | Select PackageFullName
		
 

Рисунок 3-29


Вывод из PwerShell установленных пакетов appx, содержащих “Ubuntu”

Затем скопируйте и вставьте PackageFullName (Рисунок 3-30) следующим образом:


PS C:\> Remove-AppxPackage -Package <PackageFullName>
		

Например:


Remove-AppxPackage -Package "CanonicalGroupLimited.UbuntuonWindows_2004.2020.424.0_x64__79rhkp1fndgsc"
		
 

Рисунок 3-30


Деинсталляция в PwerShell пакетов appx WSL Ubuntu

Деинсталляция дистрибутивов, установленных при помощи wsl.exe --import

Если вы вручную импортировали дистро WSL с применением wsl.exe --import и желаете удалить его, вы должны удалить этот дистро из реестра. Это выполняется следующим образом (Рисунок 3-31)


PS C:\> wsl.exe –unregister <name of distribution>
		

Например:


PS C:\> wsl.exe --unregister Ubuntu
		
 

Рисунок 3-31


Удаление из реестра вручную дистро WSL, установленного через --import

После удаления из реестра вашего дистро WSL, вы далее можете пожелать удалить и ту папку, в которой изначально был распакован этот дистро WSL. Из PowerShell это может быть выполнено так (Рисунок 3-32):


PS C:\> rmdir <path to WSL distro folder>
		

Например:


PS C:\> rmdir C:\WSL\ubuntu-hirsute
		
 

Рисунок 3-32


Удаление папки, в которой изначально был распакован дистро WSL

Управление ядром WSL2

С появлением WSL2, имеющаяся среда WSL вооружена неким ядром Linux чтобы предоставлять полную совместимость двоичного взаимодействия с приложением.

Само ядро WSL2 распространяется отдельно от того ядра, которое расположено внутри образа WSL. Изменение ядра внутри соответствующего дистрибутива не изменит то “ядро” , с которым запускаются дистро WSL.

Для изменения ядер и установки параметров командной строки ядра вам надлежит выполнить конфигурацию .wslconfig в каталоге вашего пользователя Windows, на который можно ссылаться через переменную среды Windows %USERPROFILE%. Для дополнительных настроек в .wslconfig обратитесь к Главе 6, Глава 6. Настройка WSL2 и к Главе 7, Персонализация WSL относительно того как собирать своё собственное ядро WSL2.

Стандартное ядро WSL2 обновляется через инфраструктуру обновлений Windows. Чтобы гарантировать обновления Windows для своего ядра WSL2, на странице “Advanced options” Windows Update (Дополнительные параметры Центра обновлений Windows) включите “Receive updates for other Microsoft products when you update Windows” (При обновлении Windows получать обновления для других продуктов Макрософт) (Рисунок 3-33).

 

Рисунок 3-33


“Advanced options” из “Windows Update” в Windows Settings

Проверка доступных обновлений

При помощи приводимой ниже команды проверьте наличие обновлений ядра. Если нет никаких обновления ядра доступными, будет отображено значение текущей версии ядра (Рисунок 3-34).


PS C:\> wsl.exe --update
		
 

Рисунок 3-34


Обновление ядра WSL при помощи wsl.exe --update

Обратите внимание, что если вы выполняли установку некого индивидуального ядра, тогда обновление вашего ядра при помощи такого метода не будет оказывать воздействие на то ядро, которое вы определили в .wslconfig.

Если вы получили сообщение “The requested operation requires elevation”, тогда вам требуется запускать PowerShell от имени Администратора. Для запуска повышенного приглашения на ввод из некого существующего PowerShell (Рисунок 3-35), выполните


PS C:\> Start-Process WT -Verb runAs
		
 

Рисунок 3-35


Запуск повышаемого до Администратора приглашения на ввод PowerShell для обновления ядра WSL2

А затем выполните снова wsl.exe --update в окне с повышенным в правах PowerShell.

Проверка состояния обновления ядра

Проверьте значения даты последнего обновления, состояние автоматического обновления и текущую версию установленного ядра WSL2 (Рисунок 3-36) при помощи следующего:


PS C:\> wsl.exe --update --status
		
 

Рисунок 3-36


Проверка даты последнего обновления, состояния автоматического обновления и текущей версии установленного ядра WSL2

Откат обновлений ядра

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

Чтобы выполнить откат обратно, вам требуется запустить PowerShell в качестве Администратора. Для запуска повышенного в правах приглашения на ввод из имеющегося PowerShell, выполните


PS C:\> Start-Process WT -Verb runAs
		

Затем для отката назад обновления ядра WSL2 (Рисунок 3-37) запустите


PS C:\> wsl.exe --update --rollback
		
 

Рисунок 3-37


Откат назад с обновления наиболее последнего ядра WSL2 к предыдущему ядру

Монтирование внешних томов

Начиная с номера сборки 20211 Windows новой функциональной возможностью является способность применения wsl.exe для монтирования дисков и дисковых образов в ваших дистро WSL. Это позволяет вам выполнять доступ к данным реальной файловой системы диска дополнительно к хранимым файлам. Вы не можете монтировать некий диск или раздел, который расположен в вашем первичном диске Windows, который содержит ваш раздел C:

Демонтирование из Windows

Если нужный вам диск в настоящее врем имеет доступ изнутри Windows через диск с буквой, вам следует вначале выполнить его демонтирование. Кликните правой кнопкой по меню Windows Start (Пуск) и выберите “Disk Management” (Управление дисками) (Рисунок 3-38).

 

Рисунок 3-38


Открытие Диспетчера дисков через меню Пуск

Вам требуется определить тот диск, который вы желаете сделать доступным в WSL. Все смонтированные разделы помечены своими буквенными дисками Windows в помощь определения вами нужного диска. После того как вы найдёте его в нижней половине Управления дисками, кликните правой кнопкой по этому диску и выберите “Offline” (Удалить том) (Рисунок 3-39)

 

Рисунок 3-39


Установка диска в отключённое состояние в Управлении дисками

Пока вы находитесь здесь, запишите номер этого диска. В данном случае это диск 3. Нам потребуется этот номер для монтирования данного диска в WSL2. Монтирование дисков в WSL требует работы с правами Администратора, поэтому, прежде чем продолжать, откройте терминал в качестве Администратора.

Мы можем смонтировать свой диск в WSL и проверить что он видится там при помощи (Рисунок 3-40)


PS C:\> wsl.exe --mount \\.\PHYSICALDRIVE<disk number> --bare
PS C:\> wsl.exe --exec lsblk
		

ult <disk number> это тот номер диска, который мы списали из Управления дисками. Например:


PS C:\> wsl.exe --mount \\.\PHYSICALDRIVE3 --bare
PS C:\> wsl.exe --exec lsblk
		
 

Рисунок 3-40


Успешно смонтированный в WSL раздел ext4

Мы можем повторно убедиться что получили правильный путь \\.\PHYSICALDRIVE, выполнив


PS C:\> wmic diskdrive list brief
		

По той причине, что мы определили флаг --bare, наш диск был вставлен в WSL, однако не смонтирован, вместо этого выставляя все разделы для того чтобы мы сделали с ними то, что пожелаем. Мы также можем смонтировать индивидуальные разделы и вызвать загрузку их файловых систем за один шаг, поэтому нам не требуется определять узел /dev чтобы ассоциировать его со своим диском. Помня о том ограничении, что мы не можем монтировать разделы с того же самого диска, в котором наш раздел C:, мы монтируем раздел при помощи (Рисунок 3-41)


PS C:\> wsl.exe --mount \\.\PHYSICALDRIVE<disk number> --partition <partition number> [optionally: --type <filesystem type>] [optionally: --options <filesystem mount options>]
		

где <disk number> это номер диска из Управления дисками; <partition number> это номер раздела из Управления дисками; <filesystem type> тип файловой системы, хранимой внутри этого раздела, как на неё ссылается Linux, по умолчанию это ext4; <filesystem mount options> это применяемые Linux параметры для монтирования данной файловой системы, как если бы они применялись флагом -o команды монтирования Linux.

Пример:


PS C:\> wsl.exe --mount \\.\PHYSICALDRIVE0 --partition 2
		
 

Рисунок 3-40


Монтирование блочного устройства в WSL2 и отображение его присутствующим в качестве sdg с единственным разделом, пронумерованным через lsblk как 2