Основной вопрос: Почему linux-образ не соответствует установленной версии?

Мне трудно найти ответ на это из Google. Я использую Debian Stretch (который я бесстыдно продвигаю как отличный опыт).

Тем не менее, я заметил, что мое ядро ​​обновлялось с помощью основных команд apt upgrade . Эти обновления не были отражены в linux-изображении, полученном с помощью apt search linux-image или dpkg --list | grep linux-image dpkg --list | grep linux-image

Пример:

 $ apt search linux-image linux-image-4.8.0-2-amd64/now 4.8.15-2 amd64 [installed,local] Header files for Linux 4.8.0-2-amd64 

а также

 $ dpkg --list | grep linux-image ii linux-image-4.8.0-2-amd64 4.8.15-2 

Также linux-headers – они на 100% аналогичны друг другу. Пример:

 $ apt search linux-headers linux-headers-4.8.0-2-amd64/now 4.8.15-2 amd64 [installed,local] Header files for Linux 4.8.0-2-amd64 

а также

 $ dpkg --list | grep linux-headers ii linux-headers-4.8.0-2-amd64 4.8.15-2 

То же самое касается grub, он не обновляет имя изображения даже при использовании update-grub . Я не предполагаю эту ошибку, но это похоже на нечетное поведение по умолчанию. Что думает о том, что установленные версии изображений и заголовков не отражаются в их именах?

Версия ядра, хранящаяся в имени пакета, например 4.8.0-2 в пакетах linux-image-4.8.0-2-amd64 и linux-headers-4.8.0-2-amd64 , отражает ядро ​​ABI: оно изменяется только когда изменяется ABI (что означает, что внешние пакеты в зависимости от ядра ABI, в частности, из модулей ядра без дерева, необходимо перестроить). По соглашению в Debian используемая версия представляет собой версию ядра выше по потоку с суффиксом .0, игнорируя стабильный номер выпуска, за которым следует дефис и монотонно увеличивающееся число, которое возникает при каждом изменении ABI. Таким образом, все версии пакетов ядра 4.8.0-2 являются ABI-совместимыми, и ABI был набит один раз в серии 4.8.

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

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

Более подробную информацию вы найдете в справочнике ядра Debian, в частности в разделе о версиях и ABI .