Wie installiere ich VirtualBox Guest Additions in einer virtuellen Debian-Maschine?

46

Ich hatte Mühe, VirtualBox Guest Additions auf einer virtuellen Debian-Maschine (Debian 7, Debian 8 und Debian 9) zu installieren.

ximbal
quelle

Antworten:

66

Die TL; DR-Version für Debian 9 lautet als 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)

Das war's, die VirtualBox Guest Additions sind installiert.

VirtualBox ist in Debian 10 nicht verfügbar und wird auch in Debian 10 nicht verfügbar gemacht buster-backports. Lucas Nussbaum hat eine inoffizielle Zusammenstellung von Paketen; Wenn du sie verwenden willst, solltest du seine Anweisungen befolgen (nur verlinkt - wenn der Link nicht mehr gültig ist, sind die Pakete vermutlich auch nicht verfügbar, so dass das Kopieren der Anweisungen hier sinnlos ist).

Im Einzelnen ist hier die Lösung für Debian 7, 8 und 9 unter Verwendung von Debian-Paketen:

  • Aktivieren Sie für Debian 7 und 8 die contribRepositorys; Stellen Sie zB für Debian 8 sicher, dass Ihre /etc/apt/sources.listDatei etwas wie enthält

    deb http://ftp.debian.org/debian jessie main contrib
    
  • für Debian 9 aktivieren Sie Backports mit contrib; Fügen Sie dazu eine Zeile wie

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

    um /etc/apt/sources.list(oder noch besser, eine stretch-backports.listDatei in /etc/apt/sources.list.d);

  • Installieren virtualbox-guest-dkms, Kernel-Header und optional virtualbox-guest-x11(für die grafischen Gastdienstprogramme):

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

    (mit -t stretch-backportsafter installin der zweiten Zeile, wenn Sie Debian 9 verwenden).

Das ist alles , was benötigt wird - Sie müssen die Gastzusätze nicht in Ihrer VM mounten oder das Installationsprogramm ausführen. Sie können die drei Zeilen mit Shell-Aufrufen zu Ihren Vagrantfile(oder den zur Bereitstellung Ihrer VMs verwendeten) hinzufügen und diese vergessen.

Durch die Installation des virtualbox-guest-dkmsPakets wird sichergestellt, dass die entsprechenden Kernelmodule automatisch erstellt (und neu erstellt werden, wenn der Kernel aktualisiert wird) und die Gastzusätze installiert werden.

(Beachten Sie, dass dies die Version der in der VM verfügbaren Gastzusätze in der jeweils verwendeten Debian-Version installiert , die möglicherweise nicht mit der Version von Virtual Box übereinstimmt, in der die VM ausgeführt wird. Die Gastzusätze sollten jedoch weiterhin einwandfrei funktionieren.)

Stephen Kitt
quelle
1
Bestätigt, dass Sie für Debian 8.3 - 3.16.0-4-amd64 - 3.16.51-3 (2017-12-13) arbeiten. Sie können den Zusatz "nur Server" installieren, ohne X-11 mit apt-get install --no-install hinzuzufügen -empfiehlt virtualbox-guest-utils virtualbox-guest-dkms Linux-Header - $ (uname -r)
Marco Rossi
Wirklich wertvolle Informationen zu einer effizienten Installation! Ich entschied mich Vagabund-vbguest wie von Richard bei verwenden superuser.com/a/1025183/187346 , weil ich mit freigegebenen Ordnern laufen in vagrant Fehler gehalten , weil Gasterweiterungen installiert wurden , aber die Ordner angegeben wurden.
Colin
53

Befolgen Sie diese Schritte, um die VirtualBox Guest Additions auf Ihrer virtuellen Linux Debian-Maschine zu installieren:

  1. Öffne das Terminal und werde root( su); Wenn Sie sudoaktiviert haben, können Sie dies beispielsweise auch tun sudo -i. siehe man sudofür alle Optionen):

    su
    

Geben Sie das root-Passwort ein und drücken Sie die Eingabetaste

Alternativ können Sie verwenden, sudo -swenn Sie es installiert haben und der Benutzer, bei dem Sie angemeldet sind, über die erforderlichen Rechte verfügt ...

  1. Aktualisieren Sie APT - Cache:

    apt-get update
    
  2. Installieren Sie die neuesten Sicherheitsupdates:

    In diesem Schritt werden alle Ihre Pakete aktualisiert. Seien Sie also weise. Führen Sie zuerst die folgenden Schritte aus. Andernfalls reicht es möglicherweise aus, sie auszuführen. Führen Sie dann ein Upgrade durch und versuchen Sie es erneut.

    apt-get upgrade
    
  3. Installieren Sie diese erforderlichen Pakete:

    Pakete build-essentialund müssen module-assistantbeide in der Lage sein, die Kernel-Module zu kompilieren. Wenn Sie die VirtualBox Linux Guest Additions installieren, müssen Sie sie haben. Mit diesem Befehl werden also die Header und Pakete (Compiler und Bibliotheken) abgerufen, die für die Arbeit erforderlich sind. Beachten Sie, dass Sie nach der Installation Ihrer VirtualBox Linux Guest Additions einige Pakete sowie Linux-Header zurücklassen, die Sie möglicherweise später löschen oder nicht. In meinem Fall haben sie nicht wehgetan, aber um das System aufgeräumt zu halten, sollten Sie nach dem Spielen etwas lernen.

    apt-get install build-essential module-assistant
    
  4. Konfigurieren Sie Ihr System zum Erstellen von Kernelmodulen:

    m-a prepare
    
  5. Gastzusätze ISO einfügen:

    Erweitern Sie das Menü Geräte und klicken Sie auf Guest Additions CD-Image einfügen ...

  6. Es sollte automatisch gemountet werden, aber wenn es aus irgendeinem Grund nicht funktioniert:

    mount /media/cdrom
    
  7. Führen Sie das folgende Skript aus:

    sh /media/cdrom/VBoxLinuxAdditions.run
    
  8. Starten Sie das System neu:

    reboot
    
ximbal
quelle
3
Dies funktioniert für Debian 9.
Ortomala Lokni
1
Unter Debian 9 gab dies eine Fehlermeldung aus: "Die Quellen Ihres aktuellen Linux-Kernels konnten nicht gefunden werden."
user2800708
2
Sie vermissen die Kernel-Header, bitte versuchen Siesudo apt-get update && sudo apt-get install linux-headers-`uname -r`
Ximbal
Überprüfen Sie auch, ob Sie eine aktuelle Virtualbox-Installation haben
Hayden Thring
2
Der Befehl m-a preparesollte das linux-headersPaket ziehen , alle Anweisungen funktionieren gut in einer Debian 9-Installation.
Alemani
5

Eine Alternative zur Installation von VirtualBox-Gast-Addons aus dem Debian-Repository besteht darin, Quellen des Herstellers zu verwenden. Es wird erwartet, dass das Repository älteren und stabileren Code bereitstellt, während die Quellen des Herstellers über die neuesten Funktionen und Sicherheitsupdates verfügen.

Ich habe die folgenden Anweisungen auf Debian 9.4-Gastsystemen mit Linux-Kernel 4.9.0-4 unter VirtualBox 5.0.30 und OS X 10.11.6 erfolgreich ausprobiert. Hängen Sie zuerst das ISO-Image des Gast-Addons an die virtuelle Maschine an und starten Sie sie dann. Nach dem Booten wäre der Inhalt des Images in verfügbar /media/cdrom0/. Erstens müssen zwei Pakete und ihre Abhängigkeiten installiert werden:

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

Führen Sie dann das vom Hersteller bereitgestellte Skript aus, mit dem die erforderlichen Kernelmodule erstellt und installiert werden:

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

Starten Sie die virtuelle Maschine neu und genießen Sie!

pdp
quelle
4

In Debian 9 befindet sich das Paket virtualbox-guest-dkms im Unstable-Repository (Sid-Repository).

  • Fügen Sie dies hinzu zu /etc/apt/sources.list:

    deb http://http.us.debian.org/debian sid main non-free contrib
    
  • Aktualisieren Sie die Repositorys und installieren Sie das Paket

    sudo apt-get update
    sudo apt-get install virtualbox-guest-dkms
    
  • Optional: Deaktivieren Sie das Sid-Repository, da es Updates für Pakete enthält, die Sie möglicherweise nicht möchten.

TimSC
quelle
Dies schien bis zu dem Zeitpunkt zu funktionieren, an dem ich die virtuelle Maschine neu gestartet habe. Nach der Wiederherstellung wird weiterhin "rsync" ausgeführt, anstatt das aktuelle Hostverzeichnis /vagrantauf der VM bereitzustellen. Da dieses Reittier der ganze Grund war, warum ich die Gastzugänge haben wollte, ist es immer noch effektiv kaputt.
offby1
Ist Stretch-Backports normalerweise der Verwendung von Sid vorzuziehen?
Karl Bartel