9 votos

Puede instalar otras distros en Win10 del "Subsistema de Windows para Linux"?

En "Instalar el Linux Subsistema de Windows Server", Microsoft menciona tres distribuciones que son los oficiales suministrados: Ubuntu, OpenSUSE, y SLES1.

Desde Ubuntu es basadas en Debian y OpenSUSE y SLES ambos son Slackware-basado, me pregunto: ¿Es posible utilizar ninguna de las otras distribuciones de aquellos - o de otro tipo de distribución de los árboles (como Debian1, Fedora, Arch), y son los inconvenientes de no usar el "oficial" de las distribuciones? Estoy particularmente interesado en una manera que evita el uso de la Tienda Windows, tal como se explica en el enlace de arriba, como de la Tienda Windows pueden ser bloqueados por las Directivas de Grupo.

1de Debian (y Kali Linux) pronto podría ser apoyado a través de la "forma oficial"

12voto

Biswa Puntos 370

Descargo de responsabilidad: El siguiente procedimiento es probado en Windows 10 Versión 1709 (Caída de los Creadores de Actualización). El procedimiento puede cambiar en el futuro Windows 10 se construye. Advertencia, el lenguaje de programación por delante.

  1. Compilar el Instalador: Hemos compilar un ejecutable que se llame a la WslRegisterDistribution() función. Esta función documentado no puede cambiar (como se esperaba). Aquí está el código:
#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("Distribution '%ls' is successfully installed\n", wargv[1]) : printf("Error: 0x%x\n", result);
}

Ahora, compilar ese código con cualquier compilador de C (por ejemplo, gcc). Deje que el nombre del ejecutable Wslnstall.exe (necesario para el paso #3).

  1. Descargar .tar.gz RootFS: Hay muchas formas de obtener el RootFS de una distro por ejemplo, desde el archivo ISO, desde la ventana acoplable imagen, debootstrap comando etc. Desde mi experiencia personal, hay algunas condiciones que para estar presente en esa .tar.gz archivo. El .tar.gz el archivo debe ser comprimido con gzip sólo y debe contener un válido /bin/bash o /bin/sh binario y /etc/passwd archivo (como de costumbre).

Estos son sólo directrices usuarios pueden saltar. Aquí omito los pasos y poner el enlace directo para descargar un pre-build .tar.gz archivo. Por ejemplo, Alpino: http://dl-4.alpinelinux.org/alpine/v3.7/releases/x86_64/ y descargar el tar.gz archivo.

  1. Instalar: Poner el ejecutable compilado (desde el paso #1) y el .tar.gz archivo (desde el paso #2) en la misma carpeta donde desea instalar. Ejecute el comando WslInstall.exe <distro_name> <file_name.tar.gz>de esa carpeta. Por ejemplo, el comando será: WslInstall.exe Alpine alpine-minirootfs-xxx.tar.gz. La distribución debe ser instalado.

-1voto

user4732 Puntos 179

Usted no puede utilizar otra distribución que estos se enumeran como especializados kernel es necesario para que esto funcione. Microsoft sólo proporciona este núcleo de la interfaz para el mencionado distribuciones.

Actualmente las distribuciones soportadas son:

La virtualización sigue siendo el único enfoque viable para las distribuciones de Linux no está en la lista.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X