Почему мое ядро ​​Debian 9 (Stretch) Linux не обновляется после «apt install»?

12

Большую часть месяца я провел, пытаясь установить, переустановить, удалить вручную и переустановить последнюю версию linux-image-4.9.0-8 (или ее) на моем Debian 9 (Stretch), но он всегда будет (перезагружаться) в эту неправильную версию Linux 3.16.0-5.

Я даже удалил весь /bootкаталог содержимого и переустановил.

У меня есть стандартная установка Debian 9 на /dev/sdaдиск, где /dev/sda1находится /bootотдельный раздел.

Мой контрольный список:

  • Проверено Руководство по администрированию Debian .
  • Нет UEFI загрузчика в оборудовании
  • Отключил опцию imageramfs в /etc/kernel-img.conf
  • Никаких модных модулей ядра (даже NVIDIA или ATI)
  • Правильно используется aptвместоapt-get

Это одна из головоломок, с которой я столкнулся.

Последний каталог /boot:

$ ls -lat /boot
total 106000
drwxr-xr-x 23 root root     4096 Jan 17 12:25 ..
drwxr-xr-x  2 root root     4096 Jan 17 12:17 grub
drwxr-xr-x  3 root root     4096 Jan 17 12:17 .
-rw-r--r--  1 root root 19595458 Jan 17 12:17 initrd.img-4.9.0-8-amd64
-rw-r--r--  1 root root 19446192 Jan 17 12:08 initrd.img-4.9.0-5-amd64
-rw-r--r--  1 root root 19587298 Nov  7 13:58 initrd.img-4.9.0-7-amd64
-rw-r--r--  1 root root   186563 Oct 27 14:46 config-4.9.0-8-amd64
-rw-r--r--  1 root root  3195896 Oct 27 14:46 System.map-4.9.0-8-amd64
-rw-r--r--  1 root root  4232992 Oct 27 14:46 vmlinuz-4.9.0-8-amd64
-rw-r--r--  1 root root   186568 Aug 13 15:31 config-4.9.0-7-amd64
-rw-r--r--  1 root root  3192069 Aug 13 15:31 System.map-4.9.0-7-amd64
-rw-r--r--  1 root root  4232992 Aug 13 15:31 vmlinuz-4.9.0-7-amd64
-rw-r--r--  1 root root 19478453 Feb 19  2018 initrd.img-4.9.0-3-amd64
-rw-r--r--  1 root root   186473 Jan  4  2018 config-4.9.0-5-amd64
-rw-r--r--  1 root root  3185098 Jan  4  2018 System.map-4.9.0-5-amd64
-rw-r--r--  1 root root  4216608 Jan  4  2018 vmlinuz-4.9.0-5-amd64
-rw-r--r--  1 root root   186386 Sep 18  2017 config-4.9.0-3-amd64
-rw-r--r--  1 root root  3180929 Sep 18  2017 System.map-4.9.0-3-amd64
-rw-r--r--  1 root root  4204320 Sep 18  2017 vmlinuz-4.9.0-3-amd64

Заметил, что нет образа / initramfs Linux 3.16.0-5.

Тем не менее выполнение uname всегда приводит к:

Linux arca 3.16.0-5-amd64 #1 SMP Debian 3.16.51-3+deb8u1 (2018-01-08)

Содержимое каталога верхнего уровня и его символические ссылки также являются правильными:

# ls -lat /
total 112
drwxrwxrwt  14 root root 11264 Jan 17 13:15 tmp
drwxr-xr-x  33 root root  1080 Jan 17 12:46 run
drwxr-xr-x  19 root root  3480 Jan 17 12:45 dev
drwxr-xr-x 178 root root 12288 Jan 17 12:45 etc
dr-xr-xr-x  13 root root     0 Jan 17 12:44 sys
dr-xr-xr-x 195 root root     0 Jan 17 12:44 proc
drwx------  36 root root  4096 Jan 17 12:44 root
drwxr-xr-x  23 root root  4096 Jan 17 12:25 .
drwxr-xr-x  23 root root  4096 Jan 17 12:25 ..
drwxr-xr-x   3 root root  4096 Jan 17 12:17 boot
drwxr-xr-x   2 root root 12288 Jan 17 11:27 sbin
drwxrwxr-x   2 root root  4096 Jan 17 11:27 bin
lrwxrwxrwx   1 root root    29 Nov  7 13:56 initrd.img -> boot/initrd.img-4.9.0-8-amd64
lrwxrwxrwx   1 root root    29 Nov  7 13:56 initrd.img.crap -> boot/initrd.img-4.9.0-7-amd64
lrwxrwxrwx   1 root root    26 Nov  7 13:56 vmlinuz -> boot/vmlinuz-4.9.0-8-amd64
lrwxrwxrwx   1 root root    26 Nov  7 13:56 vmlinuz.crap.4.9.0.7 -> boot/vmlinuz-4.9.0-7-amd64
drwxr-xr-x   6 root root  4096 Oct 11 17:01 opt
drwxr-xr-x  20 root root  4096 Oct 10 16:52 lib
drwxr-xr-x   3 root root  4096 Oct 10 16:34 srv
drwxr-xr-x   8 root root  4096 Sep  5 13:34 home
drwxr-xr-x  13 root root  4096 Mar 17  2018 var
drwxr-xr-x   2 root root  4096 Mar 17  2018 lib64
drwxr-xr-x   7 root root  4096 Feb 19  2018 media
drwxr-xr-x   2 root root  4096 Feb 19  2018 debootstrap
drwxr-xr-x  10 root root  4096 May 16  2017 usr
drwxr-xr-x   2 root root  4096 Oct  8  2016 mnt
drwx------   2 root root 16384 Oct  8  2016 lost+found

Даже загрузочный раздел sda1для /bootпомечен правильно.

# fdisk /dev/sda

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xfa4b1728

Device     Boot  Start        End    Sectors   Size Id Type
/dev/sda1  *      2048     499711     497664   243M 83 Linux
/dev/sda2       501758 1953523711 1953021954 931.3G  5 Extended
/dev/sda5       501760 1953523711 1953021952 931.3G 8e Linux LVM

Partition 2 does not start on physical sector boundary.

Command (m for help): quit
Джон Грин
источник

Ответы:

17

Возможно, вы используете UEFI, и /bootзагрузчик использует не тот каталог, который вы перечисляете, а размонтированный раздел vfat. Проверьте это /etc/fstabи, если у вас есть отдельный /bootраздел, непосредственно mount /bootперед обновлением ядра.

Если вы не хотите монтировать вручную, /bootудалите noautoопцию из его строки в/etc/fstab

isalgueiro
источник
5
Ты, должно быть, шутишь. Как давний пользователь Slackware, я забыл о точке монтирования / boot. Быстрая проверка / etc / mtab показала, что / boot НЕ смонтирован. Как только / boot смонтирован, Фред снял маску, Велма сказала «вот оно», и тайна разгадана.
Джон Грин
3
Оказывается, что бывшая практика системного администратора не монтировала (с помощью опции «noauto») раздел / boot, как «предложено» в соответствии с рекомендацией CISecurity (вероятно, в попытке сократить вредоносные возможности). Обычный маршрут обновления Debian прошел без нареканий, и коробка перезагрузилась в новую версию ядра. Например, я уже перечислил, что UEFI не используется.
Джон Грин
1
Ну, я сталкиваюсь с этой самой проблемой почти каждый раз, когда обновляю свое ядро ​​Gentoo Box ¯_ (ツ) _ / ¯
isalgueiro
1
@EgbertS ... и мне бы это тоже сошло с рук, если бы не эти проклятые дети! :-P
Time4Tea