Глава 4. Управление дистрибутивами WSL
Содержание
В этой главе мы намерены изучить управление нашим дистрибутивами Linux из WSL, что может быть чем угодно от установок некого дистрибутива по умолчанию, резервного копирования конфигураций и настроек, а также установка применения прочих функциональных возможностей посредством экспорта или восстановления самого дистрибутива с соответствующими функциональными возможностями через импорт. Кроме того, мы также рассмотрим способы отмены регистрации, удаления и повторной установки дистрибутива Linux, а к концу главы создадим и собственный дистрибутив Linux для WSL.
Давайте начнём с получения списка дистрибутивов в Linux.
Перво наперво, прежде чем мы сможем ровно управлять своими дистрибутивами WSL, мы должны определить установленные
на нашем компьютере дистрибутивы Linux. Для этого в Windows 10 версии 1903 и далее мы можем воспользоваться
wsl.exe
c “-l
” или
“--list
”; это перечислит все доступные дистрибутивы Linux. Обратите внимание,
пожалуйста, на
Рисунок 4-1,
один из дистрибутивов выделен как дистрибутив “dedult
”.
Это означает, что он будет запускаться при запуске wsl.exe
и либых передаваемых
в этот дистрибутив аргументов:
> wsl -l
> wsl --list
Имеется и другой параметр --running
, который перечисляет только те
дистрибутивы Linux, которые запущены в настоящий момент, однако вы можете применять его только с соответствующим
параметром переключателя --list
:
> wsl –list --running
Как вы можете видеть на Рисунке 4-2, после того как мы запускаем дистрибутив Linux на шаге 2, он появляется в списке запущенных дистрибутивов:
Теперь, когда нам понятно как перечислять свои дистрибутивы Linux, давайте выясним как устанавливать один из этих дистрибутивов Linux в качестве дистрибутива по умолчанию для WSL.
Чтобы установить некий дистрибутив по умолчанию, мы применяем параметр --setdefault
или -s
командной строки для wsl.exe
,
ниже приводится значение имени целевого дистрибутива в качестве аргумента, что демонстрирует
Рисунок 4-3.
Это означает, что любая передаваемая вами в wsl.exe
команда по
умолчанию исполняется в установленном вами дистрибутиве Linux по умолчанию, что показано на
Рисунке 4-4,
а простое выполнение wsl.exe
запускает установленным по умолчанию
дистрибутив Linux.
Теперь давайте рассмотрим экспорт ваших пакетов дистрибутива Linux. Окончательная цель резервного копирования состоит в сохранении имеющихся настроек и конфигурации в неком файле дистрибутива, который запросто можно разделять с кем бы то ни было.
Для пакетов дистрибутива подсистемы Windows для Linux можно выполнить резервное копирование простым их
экспортом в некий tar
файл, что является сокращением для
“Tape ARchive” {Прим. пер.: ленточный архив, в смысле его изначального применения к
хранению на магнитных лентах, устройствах последовательного доступа}. Эти файлы обладают расширением
“tar
” как коллекция множества файлов в формате Consolidated Unix Archive
(консолидированного архива Unix). Это очень распространённый метод как для целей архивирования, так и для отправки
большого числа файлов посредством Интернет.
Для экспорта вашего дистрибутива Linux вначале запустите приглашение командной строки с полномочиями
администратора. Затем выведите перечень имеющихся сред дистрибутивов, которые вы имеете установленными при
помощи wsl.exe
:
> wsl --list –all
Теперь, когда вам известны названия имеющихся в вашей системе дистрибутивов Linux, вы можете снова
воспользоваться wsl.exe
для указания цели и экспорта одного из низ,
как это показано на
Рисунке 4-5,
передавая название дистрибутива и путь для экспорта этого файла:
> wsl --export Ubuntu-18.04 c:\temp\ubuntu1804.tar --export SLES-12 SLES.tar
Это потребует нескольких минут для завершения в зависимости от размера вашего дистрибутива Linux и тех
программного обеспечения и пакетов, которые установлены в нём. По завершению вы обнаружите корневую файловую
систему своего дистрибутива в виде файла резервной копии “tar
” в том месте,
которое вы определили при экспорте.
В своём предыдущем подразделе мы экспортировали свой пакет дистрибутива в некий архивный файл
“tar
”. Теперь этот архив можно перемещать, совместно использовать и даже
восстанавливать в неком компьютере с подсистемой Windows для Linux. Всё что вам потребуется, это запустить
приглашение командной строки Windows с полномочиями администратора и воспользоваться параметром
--import
для wsl.exe
. Передайте
необходимое название для своего дистрибутива в качестве аргумента для импорта требуемой корневой файловой
системы этого дистрибутива из определённого файла “tar
”:
> wsl --import SLES-Imported c:\temp\ c:\temp\SLES.tar
На Рисунке 4-6
мы импортировали резервную копию “SUSE Linux Enterprise Server (SLES)”, с персональным названием “SLES-Imported”
в каталог с местоположением “c:\temp\
”.
Теперь вы можете наблюдать свой импортированный дистрибутив Linux в выдаваемом перечне и некую папку
rootfs
для его корневой файловой системы со всеми принадлежащими ему
файлами, папками и пакетами из его импортированного дистрибутива
(Рисунок 4-7).
Именно это то самое место в вашем каталоге, куда было произведено импортирование.
Удаление регистрации некого дистрибутива означает отключение всех данных, настроек и установленного программного обеспечения в неком дистрибутиве из вашей подсистемы Windows для Linux. После его инициализации это разрушит все данные окончательно. Однако это также сделает возможной повторную установку чистой копии некого дистрибутива из Microsoft Store:
> wsl --unregister kali-linux
Как вы можете видеть на Рисунке 4-8, после удаления регистрации дистрибутива “kali-linux”, он не появляется в моём списке WSL.
Теперь, если вы проследуете на страницу Microsoft Store для Kali Linux и кликните “Install”, это запустит инсталляцию данного дистрибутива снова. Это означает, что когда вы запускаете свой дистрибутив WSL снова, будет установлена чистая копия этого дистрибутива (Рисунок 4-9), что делает для вас возможным опять установить этот дистрибутив с новыми именем пользователя Unix и его паролем.
Иной способ деинсталляции дистрибутива в Windows 10 состоит в клике по меню Start, поиска необходимого названия дистрибутива и простого нажатия на вариант Uninstall, как это показано на Рисунке 4-10.
В качестве альтернативы, как это показано на Рисунке 4-11, вы можете также проследовать в меню Start, выбрать Settings, кликнуть Apps, отыскать нужный вам дистрибутив Linux и кликнуть его кнопку Uninstall. В разделе “Advanced Options” имеется нечто доступное наподобии “repair” для вашего дистрибутива Linux, когда что- то пошло не так в вашем дистрибутиве и если вы пожелаете исправить его.
Не так давно Microsoft открыла исходный код их инструментария и образца дистрибутива Linux чтобы предоставить разработчикам и специалистам по обслуживанию дистрибутивов Linux возможность создавать собственные пакеты распространения подсистемы Windows для Linux. Это дополнительно расширяет возможности разработчиков дистрибутива по доставке дистрибутивов Linux более широкой аудитории через Microsoft Store, где эти дистрибутивы могут быть опубликованы для загрузки.
Этот проект носит название WSL-DistroLauncher и был выставлен в виде открытого исходного кода в
GitHub. Это ссылки реализации
C++ installer/launcher.exe подсистемы Windows для Linux определённого дистрибутива Linux. Эти пакеты дистрибутива
содержать собственно приложение запуска, которое заботится о регистрации и установке конкретного дистрибутива в WSL.
За сценой этого для разработки некого персонального дистрибутива Linux подсистемы Windows для Linux вам потребуется
некий файл заголовка wslapi.h
, который предоставит пакет перечислений и функций,
подлежащих настройке, регистрации и запуске вашего персонального дистрибутива.
Таблица 4-1 перечисляет некоторые функции, вышеупомянутого файла заголовка и вы можете дополнительно ознакомиться с этими функциями здесь.
Функция | Описание |
---|---|
|
Изменяет поведение некого дистрибутива, зарегистрированного в WSL. |
|
Выполняет выборку текущих настроек зарегистрированного в WSL дистрибутива. |
|
Определяет зарегистрирован ли дистрибутив в WSL. |
|
Запускает какой- то процесс WSL в контексте определённого дистрибутива. |
|
Запускает какой- то интерактивный процесс WSL в контексте определённого дистрибутива. |
|
Регистрирует новый дистрибутив в WSL. |
|
Удаляет регистрацию дистрибутива из WSL. |
После того как программа запуска дистрибутива собрана и упакована совместно со всеми необходимыми средствами, такими
как файлы иконок, манифесты, сертификаты и тому подобное, тогда его можно запускать поверх подсистемы Windows для
Linux в качестве некого собственного дистрибутива Linux. Соответствующий вывод вашей сборки заменит
“launcher.exe
” на персональное специфичное для дистрибутива название, скажем,
на MyCustomDistro.exe
, которое будет запускать ваш собственный дистрибутив,
в точности как Ubuntu1804.exe
или любая иная программа запуска. С помощью
этого проекта вы также можете управлять аргументами командной строки, которые способна принимать такая программа
запуска дистрибутива и даже писать свою собственную документацию подсказок, как это выделено на
Рисунке 4-12.
В этой главе мы изучили управление дистрибутивами Linux подсистемы Windiws для Linux и мы стартовали с перечисления дистрибутивов Linux и их фильтрации на основе их состояния запуска, а затем рассмотрели установку дистрибутива по умолчанию для WSL. Далее мы изучили резервное копирование через его экспорт в виде некого файла резервной копии и последующего импорта его в другом компьютере для восстановления такого дистрибутива Linux в WSL. Наконец, мы рассмотрели несколько подходов к удалению регистрации и деинсталляции дистрибутивов Linux когда они перестают быть нужными и завершили свою главу инструментарием, который помогает создавать собственные дистрибутивы для WSL.
В своей следующей главе мы намерены изучить Windows Subsystem for Linux версии 2 (WSL2) и рассмотреть архитектурные изменения и отличия в функциональных возможностях между этими двумя версиями.