Introducción
Este artículo está destinado a los administradores de sistemas que preparan lugares de trabajo típicos en computadoras que ejecutan Windows 10, incluidos los desarrolladores de software.
Cabe destacar que existe cierto problema relacionado con la imposibilidad de integrar el software obtenido de la Microsoft Store on-line para usar en una imagen personalizada de Windows 10. Sin entrar en detalles, aclararé que este problema se debe a que los programas instalados desde la Microsoft Store están vinculados con la cuenta de servicio del Administrador, y cuando la utilidad completa la creación de una imagen personalizada
sysprep
, se producen errores debido a esta circunstancia.
El método discutido en este artículo para evitar tal problema al preparar una imagen de Windows 10 con un subsistema WSL2 preconfigurado, así como con una imagen pre-preparada y configurada de Ubuntu 20.04 con la GUI de KDE Plasma, que a su vez puede tener su propio conjunto de software personalizado.
En Internet hay una gran cantidad de ejemplos y guías para configurar subsistemas WSL (es decir, WSL1 y el relativamente nuevo WSL2), con la configuración de la interfaz GUI para sistemas Linux basados en el sistema operativo a partir de Ubuntu 16.04 a Ubuntu 20.04, pero principalmente se trata de escritorios basados en los llamados. Xfce4 "ligero", que tiene limitaciones comprensibles en la configuración del usuario. Pero en lo que respecta a la GUI de KDE Plasma para Ubuntu 20.04, no se encontró información significativa en la red. Pero es esta opción la que proporciona al usuario final un conjunto casi ilimitado de configuraciones tanto para la apariencia del sistema como para la configuración del hardware, por supuesto, teniendo en cuenta las capacidades de integración actuales de los sistemas Linux implementados en el subsistema WSL2.
Instalación del paquete de software requerido y configuración de WSL2
Verificamos la versión actual de Windows, para esto, en la barra de búsqueda de Windows, ingresamos el comando
winver
y obtenemos algo como lo siguiente:
Es importante que el sistema operativo tenga la versión 1903 o 1909 (las versiones especificadas del sistema operativo deben tener instalada la actualización acumulativa KB4566116), o 2004 (número de compilación no menor que 19041), el resto de la información no importa. Si el número de versión es menor, se recomienda que actualice a la última versión de Windows para repetir correctamente los resultados presentados en este artículo.
Para la conveniencia de otras acciones, instale el Terminal de Windows gratuito usando Microsoft Store (también existe la posibilidad de descargar desde otras fuentes):
Instalamos X Server X410 a través de la misma Microsoft Store, este software es de pago, pero hay un período gratuito de 15 días, que es suficiente para varias pruebas.
Como alternativa gratuita a X410, descargue e instale el servidor VcXsrv X.
En cualquier lugar conveniente del disco, cree un directorio en el que almacenaremos nuestros archivos. Creemos un directorio como ejemplo
C:\wsl
.
Descargue e instale el instalador fuera de línea de Ubuntu 20.04, descomprima el archivo resultante usando un archivador (por ejemplo, 7-zip). Cambie el nombre del directorio descomprimido con un nombre largo
Ubuntu_2004.2020.424.0_x64
a algo más aceptable, por ejemplo, Ubuntu-20.04
y cópielo en un directorio C:\wsl
(en adelante, simplemente \wsl
).
Descargue y descomprima el
\wsl
servidor de sonido multiplataforma PulseAudio v.1.1 en el directorio y también realice correcciones en sus archivos de configuración.
En el archivo
\wsl\pulseaudio-1.1\etc\pulse\default.pa
debajoLoad audio drivers statically
editar la línea:
load-module module-waveout sink_name=output source_name=input record=0
y en la sección,
Network access
edite la línea:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
En el archivo,
\wsl\pulseaudio-1.1\etc\pulse\daemon.conf
descomenta y cambia la línea
exit-idle-time = -1
Configuramos el subsistema WSL2 de acuerdo con la documentación de Microsoft. La única nota es que ya hemos descargado la distribución de Ubuntu y la instalaremos en el siguiente paso. Básicamente, la configuración se reduce a habilitar los componentes adicionales "Subsistema de Windows para Linux" y "Plataforma de máquina virtual", y luego reiniciar para aplicar los cambios a la configuración de la computadora:
Si es necesario, descargue e instale el paquete de actualización para el kernel de Linux en WSL2.
Inicie Windows Terminal y seleccione el modo de símbolo del sistema presionando las teclas
Ctrl+Shift+2
.
En primer lugar, configuramos el modo de funcionamiento WSL2, para ello ingresamos el comando:
wsl --set-default-version 2
Vaya al directorio con el cargador de arranque fuera de línea Ubuntu 20.04, en mi caso, este es
\wsl\Ubuntu-20.04
y ejecute el archivo ubuntu2004.exe
. Cuando se me solicita un nombre de usuario, especifico un nombre engineer
(puede ingresar cualquier otro nombre), ingrese su contraseña y confirme la contraseña ingresada para la cuenta especificada:
Aparece un indicador de terminal, el kernel de Ubuntu 20.04 está instalado. Verifiquemos la corrección de la configuración del modo WSL2, para esto, en la Terminal de Windows, seleccione la pestaña Windows PowerShell e ingrese el comando:
wsl -l -v
el resultado de la ejecución debería ser así:
Configuramos el firewall de Microsoft Defender, es decir deshabilítelo para la red pública:
Configuración de Ubuntu 20.04
En Windows Terminal, seleccione la pestaña Símbolo del sistema nuevamente e instale las actualizaciones para Ubuntu 20.04. Para hacer esto, en la línea de comando, ingrese:
sudo apt update && sudo apt upgrade –y
Instalación del escritorio KDE Plasma:
sudo apt install kubuntu-desktop -y
la instalación tarda hasta 30 minutos, dependiendo del rendimiento de la computadora y el ancho de banda del canal de acceso a Internet, cuando lo solicite el instalador, confirmamos
OK
.
Instalación de la localización y los diccionarios de ruso Ubuntu 20.04. Para hacer esto, en la línea de comando, ingrese:
sudo apt install language-pack-ru language-pack-kde-ru -y
sudo apt install libreoffice-l10n-ru libreoffice-help-ru -y
sudo apt install hunspell-ru mueller7-dict -y
sudo update-locale LANG=ru_RU.UTF-8
sudo dpkg-reconfigure locales # : ru_RU.UTF-8 UTF-8, . .
sudo apt-get install --reinstall locales
Agregue la última versión del escritorio KDE Plasma:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Agregar un conjunto de aplicaciones de consola, por ejemplo
mc
, y neofetch
:
sudo apt install mc neofetch -y
Verificamos lo que sucedió, lo ingresamos en la línea de comando
neofetch
, mira la captura de pantalla:
Editando el archivo de configuración de WSL
/etc/wsl.conf
:
sudo nano /etc/wsl.conf
copie el texto en la ventana del editor de texto vacía abierta:
[automount]
enabled = true
root = /mnt
options = «metadata,umask=22,fmask=11»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
guardar los cambios (
Ctrl+O
), confirmar la operación y salir del editor de texto ( Ctrl+X
).
Exportamos la imagen Ubuntu-20.04 personalizada al directorio que creamos
\wsl
. Para hacer esto, en la Terminal de Windows, seleccione la pestaña Windows PowerShell nuevamente e ingrese el comando:
wsl --export Ubuntu-20.04 c:\wsl\Ubuntu-plasma-desktop
la imagen creada nos ayudará a automatizar las operaciones de inicio / reinstalación del Ubuntu 20.04 configurado, si es necesario, nos permitirá transferirlo fácilmente a otro equipo.
Preparación de archivos bat y accesos directos al escritorio de Windows
Con el editor Notepad ++, cree archivos bat (obligatorio en la codificación OEM-866 para la visualización correcta de caracteres cirílicos):
Archivo
Install-Ubuntu-20.04-plasma-desktop.bat
: diseñado para automatizar la instalación inicial de la imagen de Ubuntu 20.04 creada en una computadora con un subsistema WSL2 y un servidor X ya configurado. Si el nombre de usuario y la contraseña difieren de los especificados en el ejemplo, debe realizar los cambios adecuados en este archivo bat:
@echo off
wsl --set-default-version 2
cls
echo Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:\wsl c:\wsl\Ubuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Ubuntu-20.04 !
echo «root» ,
echo «engineer», : «password».
pause
Archivo
Reinstall-Ubuntu-20.04-plasma-desktop.bat
: destinado a reinstalar la imagen preparada de Ubuntu 20.04 en la computadora.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:\wsl c:\wsl\Ubuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Ubuntu-20.04 !
pause
Archivo
Set-default-user.bat
: para establecer el usuario "predeterminado".
@echo off
set /p answer= Ubuntu (engineer):
c:\wsl\Ubuntu-20.04\ubuntu2004.exe config --default-user %answer%
cls
echo %answer% Ubuntu-20.04 !
pause
El archivo
Start-Ubuntu-20.04-plasma-desktop.bat
es el lanzamiento real del escritorio KDE Plasma.
@echo off
echo ===================================== ! ============================================
echo GUI Ubuntu 20.04 WSL2 X Server.
echo : VcXsrv Windows X Server
echo Start-Ubuntu-20.04-plasma-desktop.bat, "config.xlaunch"
echo "vcxsrv.exe", , "x410".
echo ============================================================================================
rem start "" /B "c:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.exe run "if [ -z \"$(pidof plasmashell)\" ]; then cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export LIBGL_ALWAYS_INDIRECT=1 ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; plasmashell ; pkill '(gpg|ssh)-agent' ; fi;"
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /T /IM x410.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
Archivo
Start-Ubuntu-20.04-terminal.bat
: inicia un terminal gráfico sin el escritorio KDE Plasma.
@echo off
echo ===================================== ! ============================================
echo GUI Ubuntu 20.04 WSL2 X Server.
echo : VcXsrv Windows X Server
echo Start-Ubuntu-20.04-plasma-desktop.bat, "config.xlaunch"
echo "vcxsrv.exe", , "x410".
echo ============================================================================================
rem start "" /B "c:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.exe run "cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; export LIBGL_ALWAYS_INDIRECT=1 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; konsole ; pkill '(gpg|ssh)-agent' ;"
taskkill.exe /F /T /IM x410.exe > nul
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
Además, para facilitar su uso,
\wsl
preparamos accesos directos en el directorio que apuntan a los archivos bat correspondientes. Después de eso, el contenido del directorio se \wsl
ve así:
Iniciar el escritorio KDE Plasma
Comprobamos que se han completado todas las acciones preparatorias, intentamos lanzar el atajo
Plasma-desktop
. Aparece una solicitud de contraseña, ingrese la contraseña de la cuenta y ... la ventana se cierra. Está bien la primera vez. Intentando de nuevo, vemos la barra de tareas familiar de KDE Plasma. Personalizamos la apariencia requerida de la barra de tareas, por ejemplo, para facilitar su uso, el panel se mueve al lado derecho de la pantalla y se centra. Verificamos la configuración de localización, si es necesario, agregamos el idioma ruso:
Si es necesario, coloque accesos directos para las aplicaciones de Linux instaladas en la barra de tareas de KDE Plasma.
Si Ubuntu 20.04 requiere que cierre sesión en la cuenta de usuario para aplicar los cambios en la configuración, o necesita reiniciar el sistema operativo, para hacer esto, ingrese el comando en la Terminal de Windows:
wsl -d Ubuntu20.04 --shutdown
Con el acceso directo
Plasma-desktop
o, Konsole
puede iniciar la GUI de KDE Plasma Ubuntu 20.04. Por ejemplo, instalemos usando el Konsole
editor de gráficos GIMP:
Una vez completada la instalación, ejecute el
Konsole
editor gráfico GIMP desde el editor gráfico:
El GIMP funciona, que es lo que querías comprobar.
Y así es como funcionan las diversas aplicaciones de Linux en KDE Plasma en WSL2:
la barra de tareas personalizada de KDE Plasma está en el lado derecho de la pantalla. y el video en la ventana de Firefox se reproduce con sonido.
Si es necesario, puede configurar el acceso a Ubuntu20.04 mediante
SSH
y RDP
, para ello necesita instalar los servicios adecuados con el comando:
sudo apt install ssh xrdp -y
nota: para habilitar el acceso con contraseña por software,
SSH
debe editar el archivo /etc/ssh/sshd_config
, es decir, el parámetro PasswordAuthentication no
debe establecerse en un valor PasswordAuthentication yes
, guardar los cambios y reiniciar Ubuntu20.04.
Cada vez que inicia Ubuntu20.04, la dirección IP interna cambia, antes de configurar el acceso remoto, debe especificar la dirección IP actual usando el comando
ip a
:
En consecuencia, se requiere la dirección IP en la configuración de la sesión
SSH
y RDP
antes de comenzar.
Así es como se ve el acceso remoto al
SSH
software usando MobaXterm:
Y así es como se ve el acceso remoto
RDP
:
Usando el servidor vcxsrv X en lugar de x410
Inicie y configure
vcxsrv
, marque cuidadosamente las casillas correspondientes:
Guardamos la configuración configurada en un directorio
\wsl\vcxsrv
con un nombre estándar config.xlaunch
.
Editamos archivos bat
Start-Ubuntu-20.04-plasma-desktop.bat
y Start-Ubuntu-20.04-terminal.bat
de acuerdo con las instrucciones disponibles en ellos.
Lanzamos el atajo
Plasma-desktop
, y esto es lo que obtenemos:
El escritorio KDE Plasma cierra por completo el escritorio de Windows, usamos una combinación de teclas muy conocida para cambiar entre ventanas de linux y aplicaciones de Windows
Alt+Tab
, lo cual no es muy conveniente.
Además, se reveló una característica desagradable del servidor X
vcxsrv
: se bloquea al iniciar algunas aplicaciones, en particular, el mismo GIMP o LibreOffice Writer. Quizás debería esperar a que los desarrolladores eliminen los "errores" notados, pero esto no es seguro ... Por lo tanto, para obtener resultados aceptables, es mejor utilizar Microsoft X Server x410.
Conclusión
Aún así, debemos rendir homenaje a Microsoft, el producto WSL2 resultó ser bastante funcional y, en mi opinión poco sofisticada, muy exitoso. Y hasta donde yo sé, los desarrolladores continúan trabajando duro para "terminarlo", y tal vez, en un año o dos, este subsistema aparecerá en toda su integridad funcional.