Cómo instalar VirtualBox Guest Additions en una máquina virtual Debian

Respuestas:

66

La versión TL; DR para Debian 9 es, como root:

echo deb http://ftp.debian.org/debian stretch-backports main contrib > /etc/apt/sources.list.d/stretch-backports.list
apt update
apt install virtualbox-guest-dkms virtualbox-guest-x11 linux-headers-$(uname -r)

Eso es todo, están instalados los VirtualBox Guest Additions.

VirtualBox no está disponible en Debian 10, y tampoco estará disponible en buster-backports. Lucas Nussbaum tiene un conjunto no oficial de paquetes; si desea usarlos, debe seguir sus instrucciones (solo vinculados; si el enlace deja de ser válido, los paquetes probablemente tampoco estén disponibles, por lo que copiar las instrucciones aquí no tiene sentido).

Más detalladamente, aquí está la solución para Debian 7, 8 y 9, usando paquetes Debian:

  • para Debian 7 y 8, habilite los contribrepositorios; Por ejemplo, para Debian 8, asegúrese de que /etc/apt/sources.listcontiene algo como

    deb http://ftp.debian.org/debian jessie main contrib
    
  • para Debian 9, habilite backports con contrib; para hacerlo, agregue una línea como

    deb http://ftp.debian.org/debian stretch-backports main contrib
    

    a /etc/apt/sources.list(o mejor aún, un stretch-backports.listarchivo /etc/apt/sources.list.d);

  • instalar virtualbox-guest-dkms, encabezados de kernel y, opcionalmente, virtualbox-guest-x11(para las utilidades gráficas de invitados):

    sudo apt update
    sudo apt install virtualbox-guest-dkms virtualbox-guest-x11 linux-headers-$(uname -r)
    

    (con -t stretch-backportsafter installen la segunda línea si está utilizando Debian 9).

Eso es todo lo que se necesita: no necesita montar las adiciones de invitados en su VM ni ejecutar el instalador. Puede agregar las tres líneas de invocaciones de shell a su Vagrantfile(o lo que sea que use para aprovisionar sus máquinas virtuales) y olvidarse de ellas.

La instalación del virtualbox-guest-dkmspaquete asegurará que los módulos de kernel apropiados se construyan automáticamente (y se reconstruyan cuando se actualice el kernel) e instalará las adiciones de invitados.

(Tenga en cuenta que esto instalará la versión de las adiciones de invitados disponibles en cualquier versión de Debian que esté utilizando en la VM , que puede no coincidir con la versión de Virtual Box que ejecuta la VM, pero las adiciones de invitados aún deberían funcionar bien).

Stephen Kitt
fuente
1
Se confirmó que funciona para Debian 8.3 - 3.16.0-4-amd64 - 3.16.51-3 (2017-12-13) Puede instalar la adición "solo servidor" sin agregar X-11 con apt-get install --no-install -recomienda virtualbox-guest-utils virtualbox-guest-dkms linux-headers - $ (uname -r)
Marco Rossi
¡Información realmente valiosa sobre una instalación eficiente! Opté por usar vagrant-vbguest como lo sugirió Richard en superuser.com/a/1025183/187346 porque seguía encontrándome con errores vagos con carpetas compartidas porque las adiciones de invitados no estaban instaladas pero las carpetas estaban especificadas.
Colin
54

Siga estos pasos para instalar VirtualBox Guest Additions en su máquina virtual Linux Debian:

  1. Abra la terminal y conviértase root( su); si ha sudohabilitado, también puede hacer, por ejemplo sudo -i; ver man sudopara todas las opciones):

    su
    

ingrese la contraseña de root y presione enter

alternativamente, puede usarlo sudo -ssi lo tiene instalado y el usuario donde inició sesión tiene los derechos necesarios ...

  1. Actualizar caché APT :

    apt-get update
    
  2. Instale las últimas actualizaciones de seguridad:

    Este paso actualizará todos sus paquetes, así que sea prudente al respecto. Pruebe los siguientes pasos primero y puede que sean suficientes para funcionar si no, luego realice la actualización y vuelva a intentarlo.

    apt-get upgrade
    
  3. Instale estos paquetes requeridos:

    Los paquetes build-essentialy module-assistantambos son necesarios para poder compilar los módulos del kernel y, por lo tanto, al instalar VirtualBox Linux Guest Additions debe tenerlos. Entonces, este comando obtendrá los encabezados y paquetes (compiladores y bibliotecas) necesarios para funcionar. Tenga en cuenta que, después de instalar VirtualBox Linux Guest Additions, dejará algunos paquetes y encabezados de Linux, que puede eliminar después o no. En mi caso, no duelen, pero por el bien del sistema, es posible que desee retomar después de jugar.

    apt-get install build-essential module-assistant
    
  4. Configure su sistema para construir módulos de kernel:

    m-a prepare
    
  5. Insertar adiciones de invitados ISO:

    Expanda el menú Dispositivos y haga clic en Insertar imagen de CD de Guest Additions ...

  6. Debería montarse automáticamente, pero si por alguna razón no lo hace:

    mount /media/cdrom
    
  7. Ejecute el siguiente script:

    sh /media/cdrom/VBoxLinuxAdditions.run
    
  8. Reinicie el sistema:

    reboot
    
ximbal
fuente
3
Esto funciona para Debian 9.
Ortomala Lokni
1
En Debian 9, esto dio un mensaje de error que decía "no se pueden encontrar las fuentes de su núcleo Linux actual".
user2800708
2
Te faltan los encabezados del kernel, por favor, intentasudo apt-get update && sudo apt-get install linux-headers-`uname -r`
ximbal
también compruebe que tiene una instalación virtualbox actualizada
Hayden Thring
2
El comando m-a preparedebe extraer el linux-headerspaquete, todas las instrucciones funcionan bien en una instalación de Debian 9.
alemani
5

Una alternativa a la instalación de complementos invitados de VirtualBox desde el repositorio de Debian es utilizar fuentes del proveedor. Se espera que el repositorio proporcione código más antiguo y más estable, mientras que las fuentes del proveedor tendrán las últimas características y actualizaciones de seguridad.

He intentado con éxito las siguientes instrucciones en el invitado Debian 9.4 que ejecuta el kernel de Linux 4.9.0-4 usando VirtualBox 5.0.30 y OS X 10.11.6. Primero, adjunte la imagen ISO de los complementos invitados a la máquina virtual y luego iníciela. Después del arranque, el contenido de la imagen estaría disponible en /media/cdrom0/. Primero, hay dos paquetes y sus dependencias que deben instalarse:

$ sudo apt-get install linux-headers-$(uname -r) build-essential

Luego, ejecute el script proporcionado por el proveedor que construye e instala los módulos de kernel necesarios:

$ cd /media/cdrom0/
$ sudo sh VBoxLinuxAdditions.run

¡Reinicia la máquina virtual y disfruta!

pdp
fuente
4

En Debian 9, el paquete virtualbox-guest-dkms está en el repositorio inestable (sid).

  • Agregue esto a /etc/apt/sources.list:

    deb http://http.us.debian.org/debian sid main non-free contrib
    
  • Actualizar repositorios e instalar paquete

    sudo apt-get update
    sudo apt-get install virtualbox-guest-dkms
    
  • Opcionalmente: deshabilite el repositorio sid, ya que tiene actualizaciones para paquetes que quizás no desee.

TimSC
fuente
Esto pareció funcionar hasta el punto en que reinicié la máquina virtual; después de que volvió a funcionar, todavía "rsync" d en lugar de montar el directorio host actual /vagranten la VM. Dado que esa montura fue la razón por la que quería las adiciones de invitados, todavía está efectivamente rota.
offby1
¿Por lo general, no son preferibles los backports estirados a usar sid?
Karl Bartel