Solución: Cannot open /dev/vmmon: No such file or directory

Al intentar abrir una máquina virtual en vm ware player dentro del sistema operativo linux sale el siguiente mensaje:

Cannot open /dev/vmmon: No such file or directory

Dicho problema es porque en el kernel no están cargados dos módulos en específico:

vmmon y vmnet

Por lo tanto se deben cargar dichos módulos. Se hará de la siguiente manera:

Crearemos una carpeta llamada vmmon para tener organizados los archivos que se generarán. Por lo tanto comenzaremos con los siguientes comandos:

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=MOK Signing/"

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

sudo mokutil --import MOK.der

Reiniciar el ordenador

sudo modprobe vmmon

Una vez que hayamos ejecutado todo lo anterior al intentar encender nuestra máquina virtual nos aparecerá un error en la red dentro de la misma máquina virtual.

Para resolver eso crearemos otra carpeta llamada vmnet para que ahi se guarden todos los archivos que se generarán.

Ejecutar lo siguiente:

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=MOK Signing/"

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)

sudo mokutil --import MOK.der

Reiniciar el ordenador

sudo modprobe vmnet

De esta manera se han configurado correctamente los módulos necesarios para que nuestra máquina virtual funcione correctamente.

Referencias:

(1) https://kb.vmware.com/s/article/2146460

Virtualbox: no encuentra módulos del kernel vboxdrv

Una de los problemas que nos podemos encontrar al instalar virtualbox es errores con los módulos del kernel dentro del sistema operativo linux. Para solucionar este problema muestro la siguiente lista de pasos para corregirlo:

Crear una llave y agregarlas a los headers del kernel
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj “/CN=MOK Signing/”

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxnetflt)

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxnetadp)

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxpci)

Después de ejecutar lo anterior ejecutaremos el siguiente comando

sudo mokutil --import MOK.der

Una vez realizado todo lo anterior, debemos reiniciar nuestro equipo y ejecutar los siguientes comandos:

sudo modprobe vboxnetflt
sudo modprobe vboxnetadp
sudo modprobe vboxpci
sudo modprobe vboxdrv

Solución: java.lang.IllegalArgumentException: Illegal character in opaque part at index 2: C:\Users\MyUser

Mientras en el trabajo descargué un repositorio, traté de ejecutarlo con el comndo mvn clean install. Pero resulta que ese repositorio nos indicaban los dueños que funcionaba bien. Yo no tenía el mismo resultado. Recibía el mismo error que he colocado en el título de esta entrada.

Resulta que el repositorio funcionaba bien en linux, pero jamás lo habían probado en windows 10 y no daban con la falla.

Contexto:

Proyecto: Java maven

Sistema operativo: Windows 10

Control de versiones: git

Al analizar el código y al realizar prueba y error descubrí que por alguna razón la url que se leía de un archivo estaba de alguna forma mal formada o al menos parcialmente. Las url en dicho programa estaban tratando de ser leídas con el formato de directorios de unix, es decir algo como

/home/user/project/src/main/packagex/file.csv

Pero al encontrarse con una estructura diferente con dos puntos y diagonales inversas (cosa que sólo usa windows) pues se topaba con ese formato no adecuado y lanzaba la excepción.

La ruta que era transformada en windows se convertía a:

C:\user\project\src\main\packagex\file.csv

La respuesta o solución a ese tema fue:

Dejar la ruta en ruta relativa, es decir desde la carpeta src del proyecto y cambiar las diagonales inversas por diagonales “normales”, es decir cambié la ruta de lectura a:

src/main/packagex/file.csv

Con esto pude ejecutar el proyecto de forma correcta y sin ningún tema.

Intellij

Atajos

Ctrl + D: Seleccionar dos archivos y presionar la combinación para hacer comparación (diff), o sobre un archivo para comparar sus versiones

Ctrl+Alt+L: Le da formato al código

Ctrl + Alt + Shift + J: Seleccionar todas las ocurrencias del texto seleccionado

Docker Solución: This error may indicate that the docker daemon is not running.

Contexto:

Sistema Operativo: Windows

WSL 2

Docker

Linux containers

Problema:

Al intentar usar docker en contenedores linux dentro de windows surge un problema de ejecución, por lo cual ya no seremos capaces de ver nuestros contenedores:

PS C:\Archivos de programa\Docker\Docker\resources> docker ps


error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%r_engine/v1.24/containers/json": open //./pipe/docker_engine: El sistema no puede encontrar el archivo

Al reiniciar docker

indica el siguiente error:


Docker.ApiServices.StateMachines.InvalidTransitionException:
Cannot stop from an unstable state
en Docker.ApiServices.StateMachines.UnstableState.Docker.ApiServices.StateMachines.IInternalEngineState.BeginStopAsync() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\UnstableState.cs:línea 36
en Docker.ApiServices.StateMachines.EngineStateMachine.d__15.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\EngineStateMachine.cs:línea 78
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Docker.Engines.Engines.d__27.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.Engines\Engines.cs:línea 281

Pasos para solución

Ejecutar en powershell:
wsl --shutdown

Fuente: https://stackoverflow.com/a/64132651

Ejecución en PS:
PS C:> & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" gather –upload

Fuente:
https://docs.docker.com/desktop/windows/troubleshoot/#diagnosing-from-the-terminal

PS C:> & “C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe” check

Fuente:
https://docs.docker.com/desktop/windows/troubleshoot/#self-diagnose-tool

To expand on kev’s answer, you need to restart the LxssManager service. This can be done by opening Task Manager with CTRL SHIFT ESC, going to the Services tab, finding the LxssManager service, right-clicking and selecting Restart
Fuente: https://stackoverflow.com/a/53261863

Reiniciar Servicios de docker

• Docker Desktop Service
• Docker Engine

Hasta este punto tendremos un nuevo mensaje de error al hacer docker ps

System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: -1
stdout: La configuración de la consola no se admite. Para poder usar esta característica, la consola heredada debe estar deshabilitada.

stderr:
en Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:línea 160
en Docker.Engines.WSL2.WSL2Provisioning.d__8.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:línea 81
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Docker.Engines.WSL2.LinuxWSL2Engine.d__28.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:línea 177
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Docker.ApiServices.StateMachines.TaskExtensions.d__0.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:línea 29
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Docker.ApiServices.StateMachines.StartTransition.d__5.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:línea 67
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en Docker.ApiServices.StateMachines.StartTransition.d__5.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:línea 92
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Docker.ApiServices.StateMachines.EngineStateMachine.d__14.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\EngineStateMachine.cs:línea 69
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en Docker.Engines.Engines.d__29.MoveNext() en C:\workspaces\4.6.x\src\github.com\docker\pinata\win\src\Docker.Engines\Engines.cs:línea 339

Solución a dicho error:

Deshabilitar Legacy Console

Haga clic con el botón derecho en la barra de título de la aplicación y elija la opción Properties del menú. Haga clic en la primera pestaña, Options. A continuación, active la casilla situada en la parte inferior de la página que describe Use legacy console. Presione el botón OK para aplicar
esta opción.

Fuente: https://docs.microsoft.com/es-es/windows/console/legacymode

La casilla debe estar deshabilitada

Ejecutar finalmente

docker ps

Y aparecerán de nuevo los contenedores ejecutándose normalmente