Come installare VirtualBox Guest Additions in una macchina virtuale Debian


46

Ho avuto difficoltà a installare VirtualBox Guest Additions in una macchina virtuale Debian (Debian 7, Debian 8 e Debian 9).

Risposte:


66

La versione TL; DR per Debian 9 è, come 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)

Ecco fatto, le VirtualBox Guest Additions sono installate.

VirtualBox non è disponibile in Debian 10 e non sarà reso disponibile buster-backportsneanche in. Lucas Nussbaum ha una serie non ufficiale di pacchetti; se vuoi usarli, dovresti seguire le sue istruzioni (solo link - se il link smette di essere valido, anche i pacchetti presumibilmente non sono disponibili, quindi copiare le istruzioni qui è inutile).

Più in dettaglio, ecco la soluzione per Debian 7, 8 e 9, usando i pacchetti Debian:

  • per Debian 7 e 8, abilitare i contribrepository; ad esempio per Debian 8, assicurati che /etc/apt/sources.listcontenga qualcosa di simile

    deb http://ftp.debian.org/debian jessie main contrib
    
  • per Debian 9, abilitare i backport con contrib; per fare ciò, aggiungi una riga come

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

    a /etc/apt/sources.list(o meglio ancora, un stretch-backports.listfile in /etc/apt/sources.list.d);

  • installa virtualbox-guest-dkms, intestazioni del kernel e, facoltativamente, virtualbox-guest-x11(per le utility grafiche guest):

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

    (con -t stretch-backportsafter installnella seconda riga se stai usando Debian 9).

Questo è tutto ciò che serve: non è necessario montare le aggiunte guest nella VM o eseguire il programma di installazione. Puoi aggiungere le tre linee di invocazioni della shell al tuo Vagrantfile(o qualunque cosa tu usi per eseguire il provisioning delle macchine virtuali) e dimenticartene.

L'installazione del virtualbox-guest-dkmspacchetto assicurerà che i moduli del kernel appropriati vengano automaticamente compilati (e ricostruiti quando il kernel viene aggiornato) e installerà le aggiunte guest.

(Nota che questo installerà la versione delle aggiunte guest disponibili in qualsiasi versione di Debian che stai usando nella VM , che potrebbe non corrispondere alla versione di Virtual Box che esegue la VM - ma le aggiunte guest dovrebbero comunque funzionare bene.)


1
Confermato il funzionamento con Debian 8.3 - 3.16.0-4-amd64 - 3.16.51-3 (2017-12-13) È possibile installare l'aggiunta "solo server" senza aggiungere X-11 con apt-get install --no-install -recommends virtualbox-guest-utils virtualbox-guest-dkms linux-headers - $ (uname -r)
Marco Rossi,

Informazioni davvero preziose su un'installazione efficiente! Ho scelto di utilizzare vagrant-vbguest come suggerito da Richard su superuser.com/a/1025183/187346 perché continuavo a imbattermi in errori vagabondi con le cartelle condivise perché le aggiunte degli ospiti non erano installate ma le cartelle erano state specificate.
Colin,

54

Seguire questi passaggi per installare VirtualBox Guest Additions sulla propria macchina virtuale Debian Linux:

  1. Apri terminale e diventa root( su); se hai sudoabilitato, puoi farlo anche per esempio sudo -i; vedi man sudoper tutte le opzioni):

    su
    

inserisci la password di root e premi invio

in alternativa puoi usarlo sudo -sse lo hai installato e l'utente a cui hai effettuato l'accesso ha i diritti necessari ...

  1. Aggiorna cache APT :

    apt-get update
    
  2. Installa gli ultimi aggiornamenti di sicurezza:

    Questo passaggio aggiornerà tutti i tuoi pacchetti, quindi sii saggio al riguardo. Prova prima i seguenti passaggi e potrebbero essere sufficienti per funzionare in caso contrario, quindi esegui l'aggiornamento e riprova.

    apt-get upgrade
    
  3. Installa questi pacchetti richiesti:

    I pacchetti build-essentiale module-assistantsono entrambi richiesti per poter compilare i moduli del kernel e quindi quando si installa VirtualBox Linux Guest Additions è necessario averli. Quindi, questo comando farà funzionare le intestazioni e i pacchetti (compilatori e librerie) necessari. Nota che dopo aver installato VirtualBox Linux Guest Additions ti lascerai dietro alcuni pacchetti e le intestazioni di Linux, che potresti eliminare in seguito o meno. Nel mio caso non hanno fatto male, ma per motivi di ordine del sistema, potresti voler riprendere dopo aver giocato.

    apt-get install build-essential module-assistant
    
  4. Configura il tuo sistema per la creazione di moduli del kernel:

    m-a prepare
    
  5. Inserisci ISO aggiunta ospiti:

    Espandi il menu Dispositivi e fai clic sull'immagine Inserisci CD Aggiunte Guest ...

  6. Dovrebbe montarsi automaticamente, ma se per qualsiasi motivo non lo fa:

    mount /media/cdrom
    
  7. Esegui il seguente script:

    sh /media/cdrom/VBoxLinuxAdditions.run
    
  8. Riavvia il sistema:

    reboot
    

3
Funziona con Debian 9.
Ortomala Lokni,

1
Su Debian 9, questo dava un messaggio di errore che diceva "impossibile trovare i sorgenti del tuo attuale kernel Linux".
user2800708,

2
Manca l'intestazione del kernel, per favore provasudo apt-get update && sudo apt-get install linux-headers-`uname -r`
ximbal,

controlla anche di avere un'installazione virtualbox aggiornata
Hayden Thring,

2
Il comando m-a preparedovrebbe estrarre il linux-headerspacchetto, tutte le istruzioni funzionano bene in un'installazione di Debian 9.
alemani,

5

Un'alternativa all'installazione dei componenti aggiuntivi guest VirtualBox dal repository Debian è l'uso dei sorgenti dal fornitore. Si prevede che il repository fornirà codice più vecchio e più stabile mentre le fonti del fornitore disporranno delle funzionalità e degli aggiornamenti di sicurezza più recenti.

Ho provato con successo le istruzioni che seguono sul guest Debian 9.4 con kernel Linux 4.9.0-4 usando VirtualBox 5.0.30 e OS X 10.11.6. Innanzitutto, collegare l'immagine ISO dei componenti aggiuntivi guest alla macchina virtuale e quindi avviarla. Dopo l'avvio, il contenuto dell'immagine sarebbe disponibile in /media/cdrom0/. Innanzitutto, ci sono due pacchetti e le relative dipendenze che devono essere installate:

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

Quindi, esegui lo script fornito dal fornitore che crea e installa i moduli del kernel necessari:

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

Riavvia la macchina virtuale e divertiti!


4

In Debian 9, il pacchetto virtualbox-guest-dkms si trova nel repository unstable (sid).

  • Aggiungi questo a /etc/apt/sources.list:

    deb http://http.us.debian.org/debian sid main non-free contrib
    
  • Aggiorna repository e installa pacchetto

    sudo apt-get update
    sudo apt-get install virtualbox-guest-dkms
    
  • Facoltativamente: disabilitare il repository sid, perché contiene aggiornamenti per i pacchetti che potrebbero non essere desiderati.


Questo sembrava funzionare fino al punto in cui ho riavviato la macchina virtuale; dopo che è tornato su, "rsync" d invece di montare la directory host corrente /vagrantsulla VM. Dal momento che quella montatura era l'intera ragione per cui volevo le aggiunte degli ospiti, è ancora effettivamente rotta.
off1

Solitamente gli stiraporta non sono preferibili all'uso di Sid?
Karl Bartel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.