Como instalar o VirtualBox Guest Additions em uma máquina virtual Debian

46

Tenho lutado para instalar o VirtualBox Guest Additions em uma máquina virtual Debian (Debian 7, Debian 8 e Debian 9).

ximbal
fonte

Respostas:

66

A versão TL; DR para o Debian 9 é, 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)

É isso, o VirtualBox Guest Additions está instalado.

O VirtualBox não está disponível no Debian 10 e também não será disponibilizado buster-backports. Lucas Nussbaum tem um conjunto não oficial de pacotes; se você quiser usá-los, siga as instruções dele (somente linkadas - se o link parar de ser válido, presumivelmente os pacotes também não estão disponíveis, portanto, copiar as instruções aqui não faz sentido).

Mais detalhadamente, aqui está a solução para o Debian 7, 8 e 9, usando pacotes Debian:

  • para o Debian 7 e 8, habilite os contribrepositórios; por exemplo, para o Debian 8, verifique se o seu /etc/apt/sources.listcontém algo como

    deb http://ftp.debian.org/debian jessie main contrib
    
  • para o Debian 9, habilite backports com contrib; para fazer isso, adicione uma linha como

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

    para /etc/apt/sources.list(ou melhor ainda, um stretch-backports.listarquivo /etc/apt/sources.list.d);

  • instalar virtualbox-guest-dkms, cabeçalhos do kernel e, opcionalmente, virtualbox-guest-x11(para os utilitários gráficos de convidado):

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

    (com -t stretch-backportsdepois installna segunda linha, se você estiver usando o Debian 9).

Isso é tudo o que é necessário - você não precisa montar as adições de convidado na sua VM ou executar o instalador. Você pode adicionar as três linhas de invocações de shell à sua Vagrantfile(ou o que você usar para provisionar suas VMs) e esquecê-las.

A instalação do virtualbox-guest-dkmspacote garantirá que os módulos apropriados do kernel sejam criados automaticamente (e reconstruídos quando o kernel for atualizado) e instalará as adições de convidado.

(Observe que isso instalará a versão das adições de convidados disponíveis em qualquer versão do Debian que você estiver usando na VM , que pode não corresponder à versão do Virtual Box executando a VM - mas as adições de convidados ainda devem funcionar bem.)

Stephen Kitt
fonte
1
Trabalho confirmado para o Debian 8.3 - 3.16.0-4-amd64 - 3.16.51-3 (13-12-2017) Você pode instalar a adição "somente servidor" sem adicionar o X-11 com o apt-get install --no-install -recomende virtualbox-guest-utils virtualbox-guest-dkms linux-headers - $ (uname -r)
Marco Rossi
Informações realmente valiosas em uma instalação eficiente! Optei por usar o vagrant-vbguest, conforme sugerido por Richard em superuser.com/a/1025183/187346 porque eu continuava encontrando erros vagrantes com pastas compartilhadas porque as adições de convidados não estavam instaladas, mas as pastas foram especificadas.
Colin
54

Siga estas etapas para instalar o VirtualBox Guest Additions na sua máquina virtual Linux Debian:

  1. Abra o terminal e torne-se root( su); se você tiver sudoativado, você também pode fazer, por exemplo sudo -i; veja man sudotodas as opções):

    su
    

digite a senha root e pressione enter

Como alternativa, você pode usá- sudo -slo se o tiver instalado e o usuário em que estiver conectado tiver os direitos necessários ...

  1. Atualize o cache do APT :

    apt-get update
    
  2. Instale as atualizações de segurança mais recentes:

    Esta etapa atualizará todos os seus pacotes, portanto, tenha cuidado. Tente as etapas a seguir primeiro e elas podem ser suficientes para funcionar, caso contrário, execute a atualização e tente novamente.

    apt-get upgrade
    
  3. Instale estes pacotes necessários:

    Pacotes build-essentiale module-assistantsão necessários para poder compilar os módulos do kernel; portanto, ao instalar o VirtualBox Linux Guest Additions, você deve tê-los. Portanto, este comando fará com que os cabeçalhos e pacotes (compiladores e bibliotecas) necessários para o trabalho. Observe que, depois de instalar o VirtualBox Linux Guest Additions, você deixará para trás alguns pacotes e cabeçalhos do Linux, que você poderá excluir posteriormente ou não. No meu caso, eles não machucaram, mas por uma questão de limpeza do sistema, você pode querer pegar depois de jogar.

    apt-get install build-essential module-assistant
    
  4. Configure seu sistema para a construção de módulos do kernel:

    m-a prepare
    
  5. Inserir adições de convidado ISO:

    Expanda o menu Dispositivos e clique em Inserir imagem do CD de adições de convidados ...

  6. Ele deve ser montado automaticamente, mas se por algum motivo não for:

    mount /media/cdrom
    
  7. Execute o seguinte script:

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

    reboot
    
ximbal
fonte
3
Isso funciona para o Debian 9.
Ortomala Lokni
1
No Debian 9, isso deu uma mensagem de erro dizendo "incapaz de encontrar as fontes do seu kernel atual do Linux".
user2800708
2
Está faltando os cabeçalhos do kernel, por favor tentesudo apt-get update && sudo apt-get install linux-headers-`uname -r`
ximbal 28/17/17
verifique também se você tem uma instalação de caixa virtual atualizada
Hayden Thring
2
O comando m-a preparedeve receber o linux-headerspacote, todas as instruções funcionam bem em uma instalação do Debian 9.
Alemani
5

Uma alternativa para instalar addons convidados do VirtualBox a partir do repositório Debian é usar fontes do fornecedor. Espera-se que o repositório forneça código mais antigo e mais estável, enquanto as fontes do fornecedor terão os últimos recursos e atualizações de segurança.

Eu tentei com sucesso as instruções seguintes no convidado Debian 9.4 executando o kernel do Linux 4.9.0-4 usando o VirtualBox 5.0.30 e o OS X 10.11.6. Primeiro, conecte a imagem ISO dos complementos convidados à máquina virtual e inicie-a. Após a inicialização, o conteúdo da imagem estará disponível em /media/cdrom0/. Primeiro, existem dois pacotes e suas dependências que precisam ser instaladas:

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

Em seguida, execute o script fornecido pelo fornecedor que cria e instala os módulos necessários do kernel:

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

Reinicie a máquina virtual e divirta-se!

pdp
fonte
4

No Debian 9, o pacote virtualbox-guest-dkms está no repositório instável (sid).

  • Adicione isto a /etc/apt/sources.list:

    deb http://http.us.debian.org/debian sid main non-free contrib
    
  • Atualizar repositórios e instalar o pacote

    sudo apt-get update
    sudo apt-get install virtualbox-guest-dkms
    
  • Opcionalmente: desative o repositório sid, pois ele possui atualizações para pacotes que você pode não querer.

TimSC
fonte
Isso pareceu funcionar até o momento em que reiniciei a máquina virtual; depois que ele voltou a funcionar, ele ainda "rsync" d em vez de montar o diretório de host atual /vagrantna VM. Como essa montagem foi o motivo todo pelo qual eu queria as adições de convidados, ela ainda está efetivamente quebrada.
offby1
Normalmente, não é preferível o uso de sid-stretchports ao uso do sid?
Karl Bartel