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

3

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

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

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

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

Я проверил, что мне сказали kees:

uname -r
2.6.24-28-server

Файл в proc дал:

cat /proc/version_signature
Ubuntu 2.6.24-28.75-server

И dpkg:

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

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

    
задан Stefan 29.10.2010 в 22:31
источник

1 ответ

6

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

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

cat /proc/version_signature
Ubuntu 2.6.24-28.80-generic

Это покажет версию ядра package , в которой вы сейчас находитесь running , которая может отличаться от самого последнего установленного ядра. Например, в вышесказанном, 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 см. Ссылка

    
ответ дан Kees Cook 29.10.2010 в 23:05
источник