Datos personales

lunes, 10 de septiembre de 2018

Crear USB iniciable

Existen muchas aplicaciones para crear un dispositivo USB con el que iniciar el ordenador, muchas de ellas gráficas.

Yo utilizo una orden en Linux que realiza esta misma operación sin necesidad de aplicaciones externas - que algunas veces no acaban de funcionar - y que es muy rápida. Esta orden es dd. Un ejemplo sería el siguiente:

dd if=/media/Datos/ImágenesISO/Debian/debian-9.4.0-amd64-xfce-CD-1.iso of=/dev/sdb status=progress

La imagen ISO que se va a iniciar cuando se arranque el equipo es la instalación de Debian 9 y ha sido descargada previamente de la página oficial. Este archivo es el siguiente:

debian-9.4.0-amd64-xfce-CD-1.iso

El dispositivo que se va a preparar está conectado en un puerto USB y es reconocido por Linux como /dev/sdb. Ha sido formateado antes de ejecutar la orden dd.

El argumento status=progress muestra el avance de la creación del dispositivo.

miércoles, 5 de septiembre de 2018

VirtualBox. Error en las cabeceras del kernel

En ocasiones, al iniciar el servicio VirtualBox cuando se arranca el sistema o cuando iniciamos máquinas virtuales, se produce un error en el módulo del kernel. El error que genera cuando se arranca el equipo se muestra en las siguientes líneas:

systemd[1]: Starting VirtualBox Linux kernel module...
vboxdrv.sh[525]: vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh[525]: vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: Building VirtualBox kernel modules.
systemd[1]: Failed to start VirtualBox Linux kernel module.

Si ejecutamos la orden vboxconfig se genera otro error, pero el problema es el mismo.
 
El sistema operativo de mi equipo es Debian 9.

Este error se produce porque las cabeceras instaladas no son las mismas que el kernel instalado. En mi caso, tengo instalado el kernel linux-image-4.9.0-6-amd64, pero las cabeceras que se han instalado son linux-headers-4.9.0-13-amd64. Esto se puede ver claramente desde Synaptic.
 
Primeramente, es necesario instalar el paquete build-essential, porque tenemos que compilar e instalar un nuevo kernel para solucionar nuestro error. Para ello, hay que ejecutar la orden apt-get install build-essential.

La solución del error consiste en instalar el kernel que se corresponde con las cabeceras instaladas. Siguiendo el ejemplo anterior, la orden que tenemos que ejecutar es apt-get install linux-image-4.9.0-13-amd64. También lo podemos instalar desde Synaptic.

Para finalizar, reiniciamos el equipo y volvemos a ejecutar la orden vboxconfig. Al ejecutar esta orden se puede generar un error - no fatal - porque no encuentra un directorio que tiene que renombrar, pero lo renombra y el proceso funciona. Si ejecutamos nuevamente la orden vboxconfig ya no se producirá este error  porque la carpeta a renombrar ya está creada.

Si el problema persiste (algo poco probable), podría ser porque hemos instalado el paquete virtualbox-dkms. En este caso, será necesario eliminar y volver a instalar este paquete:

apt-get remove --purge virtualbox-dkms

apt-get install virtualbox-dkms