Автоматическая перезагрузка ядра после обновления

Я управляю Ubuntu Server 8.04 уже довольно давно. Кроме того, я использую VMWare Server Edition, которая должна перекомпилировать свои модули при установке нового ядра. Для этого я выполняю: sudo vmware-config.pl

До сих пор, когда бы ни была доступна новая версия ядра, я устанавливал ее, перезагружал систему и перестраивал модули. Но теперь я понял - скорее случайно - что перестройка этих модулей ядра работала даже без перезагрузки системы. После этого VMWare может снова запускаться. Это сделало меня любопытным. Я вошел в uname -r, чтобы увидеть версию ядра, которая показала мне именно ту версию, которую я установил прямо перед без перезагрузки системы.

Manpages для uname не совсем подробно описывает то, что на самом деле печатается, но до сих пор я думал, что это напечатало реально работающую версию ядра.

Мой вопрос сейчас таков: возможно ли, чтобы ядро ​​перезагрузилось без перезагрузки? Я не установил ksplice или подобный инструмент. Из того, что я понял, теперь есть даже в репозиториях для Ubuntu Server 8.04. Что происходит с моей системой? Нужно ли перезагружаться после обновления ядра или нет? Что печатает uname -r? Поставляется ли Ubuntu Server Edition с программой, аналогичной ksplice? Я никогда ничего не читал об этой функции!

Я проверил, что Kees сказал мне сделать: dpkg:

dpkg -l 'linux-image*' | grep ^.i
ii  linux-image-2.6.24-28-server          2.6.24-28.80

Очевидно, что я должен сделать перезагрузку :) Спасибо за подробную информацию!

3
задан 30 October 2010 в 01:25

1 ответ

Выходные данные uname -r показывают только версию до номера «ABI», но могут быть изменения ABI. Только при изменении ABI сторонние модули необходимо перекомпилировать.

Для получения более подробной информации о том, что вы используете, прочитайте файл /proc/version_signature:

cat /proc/version_signature
Ubuntu 2.6.24-28.80-generic

Это покажет версию пакета ядра , которую вы в настоящее время используете , который может отличаться от самого последнего установленного ядра. Например, в приведенном выше примере ABI равен «28», что будет отображаться в uname -r:

uname -r
2.6.24-28-generic

Затем вы можете увидеть, что вы установили с помощью dpkg:

dpkg -l 'linux-image*' | grep ^.i
ii  linux-image-2.6.24-27-generic              2.6.24-27.69                            Linux kernel image for version 2.6.24 on x86
ii  linux-image-2.6.24-28-generic              2.6.24-28.80                            Linux kernel image for version 2.6.24 on x86
ii  linux-image-generic                        2.6.24.28.30                            Generic Linux kernel image

В приведенном выше случае, если следующий установленный пакет ядра был версии 2.6.24- 28 .81, изменился только «микро релиз». Поскольку компиляции модулей привязаны к ABI, перекомпиляция не требуется, но вам все равно нужно перезагрузиться, чтобы получить исправления ядра. Если следующее установленное ядро ​​было версии 2.6.24- 29 .81, то ABI изменится, и вам придется перекомпилировать модули после перезагрузки.

Подробнее о ABI см. https://wiki.ubuntu.com/KernelTeam/BuildSystem/ABI

.
0
ответ дан 30 October 2010 в 01:25

Другие вопросы по тегам:

Похожие вопросы: