Как установить гостевые дополнения VirtualBox на виртуальную машину Debian


46

Я изо всех сил пытался установить гостевые дополнения VirtualBox на виртуальной машине Debian (Debian 7, Debian 8 и Debian 9).

Ответы:


66

Версия TL; DR для Debian 9 является пользователем 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)

Вот и все, гостевые дополнения VirtualBox установлены.

VirtualBox недоступен в Debian 10 и не будет доступен buster-backportsни в одном из них. Лукас Нуссбаум имеет неофициальный набор пакетов; если вы хотите их использовать, вы должны следовать его инструкциям (только по ссылке - если ссылка перестает быть действительной, пакеты также предположительно недоступны, поэтому копировать инструкции здесь бессмысленно).

Более подробно, вот решение для Debian 7, 8 и 9, использующее пакеты Debian:

  • для Debian 7 и 8 включите contribрепозитории; например, для Debian 8, убедитесь, что ваш /etc/apt/sources.listсодержит что-то вроде

    deb http://ftp.debian.org/debian jessie main contrib
    
  • для Debian 9 включите backports с помощью contrib; для этого добавьте строку вроде

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

    к /etc/apt/sources.list(или еще лучше, stretch-backports.listфайл в /etc/apt/sources.list.d);

  • install virtualbox-guest-dkms, заголовки ядра и, опционально, virtualbox-guest-x11(для графических гостевых утилит):

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

    -t stretch-backportsпоследующим installво второй строке, если вы используете Debian 9).

Это все, что нужно - вам не нужно монтировать гостевые дополнения в вашей виртуальной машине или запускать установщик. Вы можете добавить три строки вызовов оболочки к себе Vagrantfile(или к тому, что вы используете для подготовки своих виртуальных машин) и забыть о них.

Установка virtualbox-guest-dkmsпакета гарантирует, что соответствующие модули ядра будут автоматически собраны (и перестроены при обновлении ядра), и установит гостевые дополнения.

(Обратите внимание, что при этом будет установлена ​​версия гостевых дополнений, доступная в любой версии Debian, которую вы используете на ВМ , которая может не совпадать с версией Virtual Box, на которой работает ВМ - но гостевые дополнения все равно должны работать нормально.)


1
Подтверждена работа для Debian 8.3 - 3.16.0-4-amd64 - 3.16.51-3 (2017-12-13) Вы можете установить дополнение «только для сервера» без добавления X-11 с помощью apt-get install --no-install -рекомендует virtualbox-guest-utils linux-заголовки virtualbox-guest-dkms - $ (uname -r)
Марко Росси

Действительно ценная информация об эффективной установке! Я решил использовать vagrant-vbguest, как это было предложено Ричардом на сайте superuser.com/a/1025183/187346, потому что я продолжал сталкиваться с ошибками vagrant с общими папками, потому что гостевые добавления не были установлены, но папки были указаны.
Колин

54

Выполните следующие действия для установки гостевых дополнений VirtualBox на виртуальной машине Linux Debian:

  1. Откройте терминал и станьте root( su); если вы sudoвключили, вы также можете сделать, например sudo -i; см. man sudoвсе варианты):

    su
    

введите пароль root и нажмите ввод

В качестве альтернативы вы можете использовать его, sudo -sесли он установлен, а пользователь, в который вы вошли, имеет необходимые права ...

  1. Обновить кэш APT :

    apt-get update
    
  2. Установите последние обновления безопасности:

    Этот шаг обновит все ваши пакеты, так что будьте мудры в этом. Сначала попробуйте выполнить следующие шаги, и их может быть достаточно для работы, если нет, затем выполните обновление и повторите попытку.

    apt-get upgrade
    
  3. Установите эти необходимые пакеты:

    Пакеты build-essentialи module-assistantоба должны иметь возможность компилировать модули ядра, поэтому при установке гостевых дополнений VirtualBox Linux они должны быть. Таким образом, эта команда получит заголовки и пакеты (компиляторы и библиотеки), необходимые для работы. Обратите внимание, что после установки гостевых дополнений VirtualBox для Linux вы оставите после себя некоторые пакеты, а также заголовки Linux, которые вы можете впоследствии удалить или нет. В моем случае они не пострадали, но ради системной чистоты, вы можете взять трубку после игры.

    apt-get install build-essential module-assistant
    
  4. Сконфигурируйте свою систему для сборки модулей ядра:

    m-a prepare
    
  5. Вставьте гостевые дополнения ISO:

    Разверните меню « Устройства» и нажмите « Вставить образ гостевого дополнения» ...

  6. Он должен монтироваться автоматически, но если по какой-либо причине это не так:

    mount /media/cdrom
    
  7. Запустите следующий скрипт:

    sh /media/cdrom/VBoxLinuxAdditions.run
    
  8. Перезагрузите систему:

    reboot
    

3
Это работает для Debian 9.
Ortomala Lokni

1
В Debian 9 это выдало сообщение об ошибке «невозможно найти источники вашего текущего ядра Linux».
user2800708

2
Вам не хватает заголовков ядра, пожалуйста попробуйтеsudo apt-get update && sudo apt-get install linux-headers-`uname -r`
ximbal

также проверьте, что у вас установлена ​​последняя версия Virtualbox
Hayden Thring

2
Команда m-a prepareдолжна вытащить linux-headersпакет, все инструкции работают нормально при установке Debian 9.
Алемани

5

Альтернативой установке гостевых надстроек VirtualBox из репозитория Debian является использование источников от поставщика. Предполагается, что репозиторий будет предоставлять более старый и более стабильный код, в то время как исходные тексты от поставщиков будут иметь самые последние функции и обновления безопасности.

Я успешно попробовал следующие инструкции для гостевого Debian 9.4 под управлением ядра Linux 4.9.0-4 с использованием VirtualBox 5.0.30 и OS X 10.11.6. Сначала прикрепите ISO-образ гостевых дополнений к виртуальной машине, а затем запустите его. После загрузки содержимое образа будет доступно в /media/cdrom0/. Во-первых, необходимо установить два пакета и их зависимости:

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

Затем запустите предоставленный поставщиком скрипт, который собирает и устанавливает необходимые модули ядра:

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

Перезагрузите виртуальную машину и наслаждайтесь!


4

В Debian 9 пакет virtualbox-guest-dkms находится в нестабильном хранилище (sid).

  • Добавьте это к /etc/apt/sources.list:

    deb http://http.us.debian.org/debian sid main non-free contrib
    
  • Обновите репозитории и установите пакет

    sudo apt-get update
    sudo apt-get install virtualbox-guest-dkms
    
  • Необязательно: отключите репозиторий sid, поскольку в нем есть обновления для пакетов, которые вам могут не понадобиться.


Это, казалось, работало до того момента, когда я перезагрузил виртуальную машину; после восстановления он все еще «rsync» d вместо монтирования текущего каталога хоста /vagrantна ВМ. Так как это монтирование было единственной причиной, по которой я хотел добавить гостевые дополнения, оно все еще эффективно сломано.
offby1

Разве стрейч-бэкпорт обычно не предпочтительнее использования sid?
Карл Бартель
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.