"Установка Windows ServerГид"ссылкик"Вручную загрузите пакеты дистрибутивов Windows Subsystem for Linux", в котором упоминаются несколько официально поставляемых дистрибутивов: Debian, Kali, Ubuntu, OpenSUSE, Fedora и SLES
Поскольку у нас под рукой имеются дистрибутивы на базе Debian и Slackware:
- Можно ли использовать какие-либо дистрибутивы/деревья, отличные от этих, например Arch?
- Есть ли какие-либо недостатки в отказе от использования официальных дистрибутивов?
Меня особенно интересует способ, позволяющий избежать использования Магазина Windows, поскольку это может бытьзаблокированГрупповыми политиками.
решение1
Это протестировано в Windows 10 v1709, и процедура может измениться в будущих сборках Windows 10.
- Компиляция установщика:
Нам нужно скомпилировать исполняемый файл для вызоваWslRegisterDistribution()
функция:
(не ожидается, что эта документированная функция изменится)
Скомпилируйте это с помощью любого компилятора C (например#include <Windows.h> #include <stdio.h> typedef HRESULT (WINAPI* RegisterDistro)(PCWSTR distroName, PCWSTR tarGzFilename); int main() { int wargc; wchar_t** wargv; wargv = CommandLineToArgvW(GetCommandLineW(), &wargc); HMODULE dll = LoadLibraryExW(L"wslapi.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); RegisterDistro func = (RegisterDistro)GetProcAddress(dll, "WslRegisterDistribution"); HRESULT result = func(wargv[1], wargv[2]); (result == S_OK) ? printf("%ls installed\n", wargv[1]) : printf("Error: 0x%x\n", result); }
gcc
, ), указав имя исполняемого файлаWslnstall.exe
(необходимо для шага №3), и у меня есть скомпилированная версия этого на моем GitHubрепозиторий - Скачать
.tar.gz
RootFS:
Существует множество способов получить RootFS дистрибутива (например, из файла ISO, из образа Docker, с помощьюdebootstrap
команды и т. д.), и по моему личному опыту, существуют некоторые условия, которые должны присутствовать в этом.tar.gz
файле, например,.tar.gz
файл должен быть сжат с помощьютолько gzip, содержат действительный/bin/bash
или/bin/sh
двоичный/etc/passwd
файл и (как обычно).- Это всего лишь рекомендации.пользователи могут пропустить, и здесь я опускаю эти шаги с прямой ссылкой напредварительно построенный
.tar.gz
для Alpine (только загрузка.tar.gz
)
- Это всего лишь рекомендации.пользователи могут пропустить, и здесь я опускаю эти шаги с прямой ссылкой напредварительно построенный
- Установить:
Поместите скомпилированный исполняемый файл (шаг № 1) и.tar.gz
(шаг № 2) в папкута же папкакоторый вы хотите установить, запустив из этой папки:# WslInstall.exe <distro_name> <file_name.tar.gz> WslInstall.exe Alpine alpine-minirootfs-xxx.tar.gz
Теперь дистрибутив Alpine должен быть установлен.