Ошибка: заголовки ядра не найдены. (Но они на месте)

79

Я пытаюсь установить гостевые дополнения в VirtualBox 4.04. Хост ОС Ubuntu Desktop 11.04 64bit, гостевая ОС Ubuntu 11.10 64bit.

$ sudo ./VBoxLinuxAdditions.run

После некоторого вывода эта строка печатается:

The headers for the current running kernel were not found.

Но заголовки будут установлены, по крайней мере , в соответствии с dpkg:

$ dpkg --get-selections | grep linux-headers
linux-headers-3.0.0-12            install
linux-headers-3.0.0-12-server     install
linux-headers-server              install

Запущенное ядро:

$ uname -a
Linux foobar 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64 x86_64 X86_64 GNU/Linux

Как исправить ситуацию, чтобы установщик Guest Additions мог найти заголовки ядра?

Обновление: добавлен полный вывод.

The headers for the current running kernel were not found. If the module compilation fails then this could be the reason.

Building the main Guest Additions module ...done.
Building the shared folder support module ...fail!
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Installing the Window System drivers ...fails!
(Could not find the X.Org or XFree86 Window System).

Меня не волнует ошибка № 2, потому что это сервер, и мне не нужен X-сервер. Но мне нужна поддержка общих папок.

Некоторые дальнейшие детали:

$ tail /val/log/vboxadd-install.log
..........
cc1: some warnings being treated as errors
make[2]: *** [/tmp/vbox.0/vfsmod.o] Error 1
make[1]: *** [_module_/tmp/vbox.0] Error 2
make: *** [vboxsf] Error 2
Paolo
источник
Это стандартный вывод для дополнений Vboxguest - есть ли другие ошибки, указывающие на то, что модули ядра vbox были скомпилированы неправильно?
fossfreedom
@foss Спасибо за ваш вклад, я обновил свой вопрос.
Паоло
@MihaiTodor другой вопрос, возможно, дубликат моего, а не наоборот, как вы сказали. Подсказка, посмотрите дату публикации. С уважением.
Паоло
Да, верно. Прости за это.
Михай Тодор

Ответы:

8

Чтобы получить гостевой сервер VirtualBox Ubuntu для правильного принятия гостевой установки, вам понадобится установить минимальный пакет xorg:

sudo apt-get install xserver-xorg xserver-xorg-core

Сделав это, вы получите поддержку общих папок.

Как вы обнаружили, гостевые дополнения - это один очень большой скрипт - "VBoxLinuxAdditions.run"

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

Кроме того, я бы порекомендовал (если вы этого еще не сделали) установить dkms. При обновлении более новых ядер Ubuntu модули ядра с гостевыми дополнениями будут автоматически скомпилированы. Без этого dkmsвы потеряете поддержку общих папок при обновлении ядра.

источник

fossfreedom
источник
32
Это никак не решает проблему.
Sliq
11
Я настоятельно рекомендую не устанавливать эти пакеты. Они раздувают ваш сервер и не решают проблему. Вы больше не получите сообщение об ошибке X11, но это единственное преимущество.
dwurf
3
@Panique, которая решила проблему, иначе я бы не принял этот ответ. Я не идиот.
Паоло
4
Ответ от собаки должен быть принятым ответом; установка xorg не нужна.
Натан
2
-1 как этот ответ вводит в заблуждение.
ortang
160

Сообщение вводит в заблуждение.

В моем случае на самом деле отсутствовал dkms, поэтому перед установкой запустите

sudo apt-get install build-essential linux-headers-`uname -r` dkms
собака
источник
Это решило проблему и для меня.
Ник Реталлак
29
Используйте pacakge, так linux-headers-genericкак он всегда будет указывать на последний пакет заголовков ядра.
Ортанг
3
для меня это обновление до последней версии VirtualBox, для установки Ubuntu 13.10
Răzvan Flavius ​​Panda
7
Это должен быть принятый ответ, у вас есть сервер, зачем устанавливать xorg ??? установить dkms и проблема решена !!!
Фредерик Йесид Пенья Санчес
2
sudo apt-get install --assume-yes build-essential dkms linux-headers-$(uname -r)и sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.hобязательно поможет
19

(Даже если на этот вопрос есть принятый ответ, я добавляю этот ответ на случай, если он поможет кому-то еще ...)

Хотя у меня были идентичные симптомы, я опробовал каждое предложение на этот вопрос, но пока ничего не получалось. Я наконец нашел эту ветку, предполагая, что версия VirtualBox не соответствует версии ядра Linux.

Поэтому, если у вас ничего не работает, попробуйте установить последнюю версию по адресу : http://download.virtualbox.org/virtualbox/ (на момент написания статьи это было 4.2.6 для систем на основе Debian).

ясень
источник
Верный. На самом деле, я уже столкнулся со «всем вышеперечисленным»: отсутствующими заголовками ядра, устаревшими заголовками ядра, отсутствующим пакетом dkms и, действительно, устаревшей версией VBox.
Юри
12

Я исправил эту ошибку, установив dkmsи обновив мою версию VirtualBox. Оказывается, старые версии гостевых дополнений VirtualBox часто не работают с последними ядрами.

dwurf
источник
5
Установка dkms, перезагрузка и повторный запуск скрипта установки работали для меня. Об этом также говорится в официальном документе: virtualbox.org/manual/ch04.html#idp11274368
отдых
более новые версии (виртуальной коробки доступны в виде deb-файлов здесь: download.virtualbox.org/virtualbox ). Они также имеют гостевые дополнения iso. Используя последние исправленные вещи для меня.
бекон
1
Текущая официальная ссылка на документ: virtualbox.org/manual/ch04.html#idp46730490388960
Макс.
установка дкмс у меня работала без нареканий.
Аюш
10

Ответ о том, что вам нужен X для использования гостевых дополнений, просто насмешка. Причина, по которой он работает после установки X, заключается в том, что он использует libglib в качестве зависимости, но было бы действительно необязательно устанавливать весь X-сервер просто для запуска дополнений.

Все необходимые вам пакеты:

  • строить заменимых
  • Linux-Headers-`uname-r`
  • libglib2.0-0

Очевидно, что вам нужна только часть build-essential и libglib, но вместо того, чтобы выяснить, какие именно пакеты необходимы, проще просто позволить им вытащить свои зависимости.

Суть в том, что это те же самые пакеты, которые вам нужны для vmware-эквивалента «VMware Tools» на компьютере vmware.

YZFR1
источник
9

После установки предложенных пакетов выполните следующую команду:

sudo apt-get install build-essential linux-headers-`uname -r` dkms

Я обновил свою версию VirtualBox в соответствии с предложением dwurf. Это исправило это для меня.

warren2k
источник
1

Единственное решение, которое мне помогло, - это удалить Virtual Box и установить последнюю версию с веб-сайта VirtualBox (версия: 4.3.10 (репо) против 4.3.22 (веб-сайт)).

Павел
источник
1

Я испробовал ВСЕ вышеупомянутое решение, и я почти уверен, что установил правильные заголовки, но все же не повезло !!!

root@test:~# dpkg --get-selections | grep linux-headers
linux-headers-4.0.0-kali1-amd64         install
linux-headers-4.0.0-kali1-common        install
linux-headers-amd64             install

И я также установил последнюю версию Virtual Box на сегодняшний день 5.0.4, но все же у меня есть ошибка при попытке установить гостевые дополнения с ошибкой

The headers for the current running kernel were not found.

Решение :

В конце концов, что решило мою проблему, это запустить VBoxLinuxAdditions.runкаталог from / root вместо другого каталога, такого как / home / !!!

Первоначально я работал VBoxLinuxAdditions.runиз /home/каталога и продолжает иметь эту ошибку дамбы, но после использования команды ниже из корневого каталога, это нормально, проблема решена!

cp /media/cd-rom/VBoxLinuxAdditions.run /root/
chmod 755 /root/VBoxLinuxAdditions.run
cd /root
./VBoxLinuxAdditions.run

После этого вы можете просто использовать reboot, тогда вам нужно сделать Guest Additional правильно и FULL Screen тоже! УРА !!!

Gob00st
источник
Я попробовал это, но все еще не работает. Руки вверх
yaochiqkl
не работает для меня.
muneeb_ahmed
1

Обычно я устанавливаю гостевые дополнения напрямую через virtualbox (mount cdrom, sh ./VBoxLinuxGuestAddtions.run). Однако большинство linux-дистрибутивов предлагают вам пакет, который можно установить через ваш менеджер пакетов. Для меня следующая команда решила вопрос:

sudo apt-get install virtualbox-guest-dkms
rednammoc
источник
Я перепробовал все другие решения по установке и продолжал иметь проблемы с надстройками или сценарием установки. Это решение решило корневую проблему напрямую. Спасибо!
sadakatsu
1

Я думаю, что эта ошибка вызвана использованием старой версии Virtual Box или, по крайней мере, старой версии ISO-образа Guest Additions.

Я добился успеха, загрузив новый ISO гостевых дополнений VBox и запустив скрипт VBoxLinuxAdditions.run. Я зашел сюда на сайт загрузки Virtual Box и взял новый ISO.

По причинам (слишком скучным, чтобы углубляться в это) я не мог обновить свою версию VirtualBox на хосте (Windows), но я мог скопировать новый файл ISO в локальное место в файловой системе.

Затем в меню «Устройства» в окне виртуальной машины я выбрал новый виртуальный CD / DVD и выбрал место, где я скачал новый образ ISO.

Затем внутри виртуальной машины Debian я пошел \media\cdromи запустил новый VBoxLinuxAdditions.runскрипт от имени root. (Я уже установил dkms, текущие заголовки ядра и т. Д.) Затем сценарий перестал ложно жаловаться на отсутствующие заголовки (они не были пропущены) и собрал необходимые для этого объекты ядра.

Основная причина этого состояла в том, что X.org предоставил мне дополнительные разрешения экрана, и я мог запускать ВМ с более высоким разрешением, чем консервативно установленные значения по умолчанию.

Geeb
источник
0

Я получал те же ошибки, что и OP, когда пытался скомпилировать VirtualBox Guest Additions v4.1.12 в различных вариантах гостей K / Ubuntu 13.04.

Building the shared folder support module ...fail!

Это связано с ошибками (или неудовлетворенными ожиданиями) гостевых дополнений VirtualBox в отношении различных частей источника linux (в GUEST). К сожалению, Oracle предпочитает очень тесно связывать версию VirtualBox Host с версией VirtualBox Guest Additions, поэтому, если в Guest Additions есть ошибка, вам нужно одновременно обновить Host.

На хосте Ubuntu 12.04 LTS были установлены следующие версии virtualbox:

virtualbox       4.1.12-dfsg-2ubuntu0.3
virtualbox-dkms  4.1.12-dfsg-2ubuntu0.3
virtualbox-qt    4.1.12-dfsg-2ubuntu0.3

В соответствии с инструкциями по адресу: http://www.ubuntuupdates.org/ppa/virtualbox?dist=precise.

Я обновился до 4.2.10-dfsg-0ubuntu2 ~ ubuntu12.04.1 ~ ppa1, используя:

sudo add-apt-repository ppa:debfx/virtualbox
sudo apt-get update
sudo apt-get install virtualbox virtualbox-dkms virtualbox-qt
cd ~/.VirtualBox
http://download.virtualbox.org/virtualbox/4.2.10/VBoxGuestAdditions_4.2.10.iso

Теперь гости K / Ubuntu 13.04 могут создавать и устанавливать свои дополнения для гостей VirtualBox:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install make gcc build-essential linux-headers-`uname -r` dkms
cd /media/VBOXADDITIONS_4.2.10_81404
sudo ./VBoxLinuxAdditions.run
sudo shutdown -r 0
Phoeey
источник
0

Я думаю, что вы что-то упустили. Попробуй установить

  • Linux-Headers-3,14-kali1-общий
  • Linux-Headers-3,14-kali1-amd64
  • Linux-источник-3,14
  • libdw1
  • libunwind7

Для меня это Кали Линукс с 3.14

С уважением.

ch4t0
источник
0

Я столкнулся с этой проблемой и исправил ее, выполнив следующие команды:

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

Больше информации

Эдуардо Деннис
источник
0
  1. sudo apt-get install --assume-yes build-essential dkms linux-headers-generic linux-headers-$(uname -r)
  2. sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h

  1. sudo reboot

+ бонус: общие папки «секрет»;)


  1. sudo gpasswd -a <username> vboxsf
  2. sudo reboot
  3. сделанный.

  4. ???
  5. прибыль;)

источник