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.