Risposte:
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-backports
neanche 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 contrib
repository; ad esempio per Debian 8, assicurati che /etc/apt/sources.list
contenga 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.list
file 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-backports
after install
nella 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-dkms
pacchetto 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.)
Seguire questi passaggi per installare VirtualBox Guest Additions sulla propria macchina virtuale Debian Linux:
Apri terminale e diventa root
( su
); se hai sudo
abilitato, puoi farlo anche per esempio sudo -i
; vedi man sudo
per tutte le opzioni):
su
inserisci la password di root e premi invio
in alternativa puoi usarlo sudo -s
se lo hai installato e l'utente a cui hai effettuato l'accesso ha i diritti necessari ...
Aggiorna cache APT :
apt-get update
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
Installa questi pacchetti richiesti:
I pacchetti
build-essential
emodule-assistant
sono 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
Configura il tuo sistema per la creazione di moduli del kernel:
m-a prepare
Inserisci ISO aggiunta ospiti:
Espandi il menu Dispositivi e fai clic sull'immagine Inserisci CD Aggiunte Guest ...
Dovrebbe montarsi automaticamente, ma se per qualsiasi motivo non lo fa:
mount /media/cdrom
Esegui il seguente script:
sh /media/cdrom/VBoxLinuxAdditions.run
Riavvia il sistema:
reboot
sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
m-a prepare
dovrebbe estrarre il linux-headers
pacchetto, tutte le istruzioni funzionano bene in un'installazione di Debian 9.
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!
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.
/vagrant
sulla VM. Dal momento che quella montatura era l'intera ragione per cui volevo le aggiunte degli ospiti, è ancora effettivamente rotta.