Зачем мне нужно повторно загружать модули ядра для virtualbox после обновления ядра?

10

После последнего обновления ядра в Ubuntu 12.10 мне пришлось вручную перезагрузить два модуля ядра для Virtualbox.

modprobe vboxdrv и modprobe vboxnetflt

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

Это было автоматическое обновление, которое попросило меня перезагрузиться, когда оно закончилось. После перезагрузки виртуальные машины не будут работать, пока я не перезагружу модули.

Итак, мои вопросы: это нормально? Произойдет ли это с другими пакетами или только с Virtualbox? Обновитель должен делать это автоматически? Должен ли я подать отчет об ошибке, и если да, то кому?

Аммон
источник
Вы должны перезагрузить компьютер после обновления ядра, если только вы не используете какой-либо инструмент для оперативного исправления текущего работающего ядра. В противном случае вы будете использовать старое ядро. Перезапуск позаботится о перезагрузке модуля.
Хавьер Ривера

Ответы:

2

Модули хоста VirtualBox создаются из исходного кода на вашем компьютере. Модули для одного ядра не обязательно будут работать (или работать должным образом) в другом ядре. Обычно они перекомпилируются после обновления ядра.

Когда вы устанавливаете новую версию ядра, ваше старое ядро ​​все еще работает. Как говорит Хавьер Ривера , вы должны перезагрузиться, чтобы использовать новое ядро.

Поэтому, если ваша цель - запустить VirtualBox на новом ядре , вам нужно перезагрузиться; модули будут загружены, когда вы это сделаете (после перестройки из исходного кода при необходимости).

Однако, если ваша цель - использовать старые модули со старым ядром, вы можете вручную перезагрузить их modprobe(как вы это делали).

Если вы считаете, что ошибка в том, что модули VirtualBox не продолжают работать для работающего ядра до перезагрузки, вы можете сообщить об этом. Если вы используете версию VirtualBox, официально предоставленную в Ubuntu (а не версию из программного обеспечения Oracle), я рекомендую сообщать об этом в отношении нижестоящего VirtualBox (то есть в отношении VirtualBox в Ubuntu). Пожалуйста, сначала внимательно прочитайте это руководство. В этом вопросе также есть полезная информация о сообщениях об ошибках .

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

Я рекомендую не принимать этот ответ немедленно; Может быть, кто-то может лучше объяснить, почему модули выгружены.

Элия ​​Каган
источник
2

Если вам нужно было запустить /etc/init.d/vboxdrv setup после обновления и перед загрузкой новых модулей ядра, убедитесь, что dkms установлен и обновлен правильно. Это компонент, который перекомпилировал модули при перезагрузке после обновления ядра, он также должен загрузить модули после завершения. Это единственное обстоятельство, при котором я мог потерпеть неудачу в моем тестировании. Если это не так, я бы воспользовался советом Элии и отправил отчет об ошибке.

sean_m
источник