Как правильно установить новое ядро ​​вручную на Debian 9?

9

У меня недостаточно уверенности, чтобы сделать это в одиночку и рискнуть, чтобы сервер не загрузился или что-то в этом роде.

Я хотел бы обновить ядро ​​с:

$ uname -r
4.9.0-6-amd64

$ uname -v
#1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)

до версии ядра 4.15 или 4.16. Что бы вы ни рекомендовали.


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

$ apt-cache search linux-image | grep amd64

linux-headers-4.9.0-6-amd64 - Header files for Linux 4.9.0-6-amd64
linux-headers-4.9.0-6-rt-amd64 - Header files for Linux 4.9.0-6-rt-amd64
linux-image-4.9.0-6-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-6-amd64-dbg - Debug symbols for linux-image-4.9.0-6-amd64
linux-image-4.9.0-6-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-6-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-6-rt-amd64
linux-image-amd64 - Linux for 64-bit PCs (meta-package)
linux-image-amd64-dbg - Debugging symbols for Linux amd64 configuration (meta-package)
linux-image-rt-amd64 - Linux for 64-bit PCs (meta-package), PREEMPT_RT
linux-image-rt-amd64-dbg - Debugging symbols for Linux rt-amd64 configuration (meta-package)
linux-headers-4.9.0-3-amd64 - Header files for Linux 4.9.0-3-amd64
linux-headers-4.9.0-3-rt-amd64 - Header files for Linux 4.9.0-3-rt-amd64
linux-headers-4.9.0-4-amd64 - Header files for Linux 4.9.0-4-amd64
linux-headers-4.9.0-4-rt-amd64 - Header files for Linux 4.9.0-4-rt-amd64
linux-headers-4.9.0-5-amd64 - Header files for Linux 4.9.0-5-amd64
linux-headers-4.9.0-5-rt-amd64 - Header files for Linux 4.9.0-5-rt-amd64
linux-image-4.9.0-3-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-3-amd64-dbg - Debug symbols for linux-image-4.9.0-3-amd64
linux-image-4.9.0-3-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-3-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-3-rt-amd64
linux-image-4.9.0-4-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-4-amd64-dbg - Debug symbols for linux-image-4.9.0-4-amd64
linux-image-4.9.0-4-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-4-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-4-rt-amd64
linux-image-4.9.0-5-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-5-amd64-dbg - Debug symbols for linux-image-4.9.0-5-amd64
linux-image-4.9.0-5-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-5-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-5-rt-amd64
linux-headers-4.15.0-0.bpo.2-amd64 - Header files for Linux 4.15.0-0.bpo.2-amd64
linux-headers-4.15.0-0.bpo.2-cloud-amd64 - Header files for Linux 4.15.0-0.bpo.2-cloud-amd64
linux-headers-4.16.0-0.bpo.1-amd64 - Header files for Linux 4.16.0-0.bpo.1-amd64
linux-headers-4.16.0-0.bpo.1-cloud-amd64 - Header files for Linux 4.16.0-0.bpo.1-cloud-amd64
linux-image-4.15.0-0.bpo.2-amd64 - Linux 4.15 for 64-bit PCs
linux-image-4.15.0-0.bpo.2-amd64-dbg - Debug symbols for linux-image-4.15.0-0.bpo.2-amd64
linux-image-4.15.0-0.bpo.2-cloud-amd64 - Linux 4.15 for x86-64 cloud
linux-image-4.15.0-0.bpo.2-cloud-amd64-dbg - Debug symbols for linux-image-4.15.0-0.bpo.2-cloud-amd64
linux-image-4.16.0-0.bpo.1-amd64 - Linux 4.16 for 64-bit PCs
linux-image-4.16.0-0.bpo.1-amd64-dbg - Debug symbols for linux-image-4.16.0-0.bpo.1-amd64
linux-image-4.16.0-0.bpo.1-cloud-amd64 - Linux 4.16 for x86-64 cloud
linux-image-4.16.0-0.bpo.1-cloud-amd64-dbg - Debug symbols for linux-image-4.16.0-0.bpo.1-cloud-amd64
linux-headers-4.9.0-4-grsec-amd64 - Header files for Linux 4.9.0-4-grsec-amd64
linux-image-4.9.0-4-grsec-amd64 - Linux 4.9 for 64-bit PCs, Grsecurity protection (unofficial patch)
linux-image-grsec-amd64 - Linux image meta-package, grsec featureset
linux-image-cloud-amd64 - Linux for x86-64 cloud (meta-package)
linux-image-cloud-amd64-dbg - Debugging symbols for Linux cloud-amd64 configuration (meta-package)

Мне тоже нужны заголовки. В Ubuntu также есть пакет, называемый extraили похожий, так что я смущен, чтобы не увидеть его здесь.


Как правильно установить новое ядро ​​вручную на Debian 9?

LinuxSecurityFreak
источник
Есть ли какая-то конкретная причина, по которой вам нужно более свежее ядро?
Марсель

Ответы:

10

Если вы хотите установить более новое ядро, упакованное в Debian, вам следует использовать его из репозитория backports. Кажется, у вас уже есть этот репозиторий в вашей aptконфигурации, так что все готово.

Поскольку ваше текущее ядро ​​является базовой версией amd64, я предполагаю, что вам не понадобится ни версия планировщика реального времени, ни облачная версия.

Просто беги

apt-get install linux-image-4.16.0-0.bpo.1-amd64 linux-headers-4.16.0-0.bpo.1-amd64

то есть "установить базовую версию ядра -6.0 ядра 4.16 для Debian 9 и соответствующий пакет заголовочных файлов".

В отличие от обычных пакетов, новый linux-imageпакет не будет полностью заменять существующее ядро ​​4.9.0, но будет установлен вместе с ним. (Это потому, что номер версии включен как часть имени пакета.) Загрузчики будут автоматически настроены linux-imageпосле установки, чтобы либо представить доступные ядра в порядке номеров версий, либо, если это невозможно для некоторых загрузчиков. , просто автоматически установите последний установленный в качестве предпочтительного.

Если окажется, что ваше новое ядро ​​не загружается, вы можете просто выбрать предыдущее ядро ​​из загрузчика, а затем удалить пакет ядра, который оказался неработоспособным. Если вы случайно попросите менеджер пакетов удалить ядро, на котором вы сейчас работаете, он будет достаточно умен, чтобы знать, что это нехорошо, и прервет операцию.

Телком
источник
[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<- Если вы не уверены, какое ядро ​​вы используете (в данном случае), вы можете запустить uname -r(взято с askubuntu.com/questions/359574/… )
Исмаэль Мигель
12

Проблема под рукой

Вам требуется более новое ядро ​​Linux, чем то, которое установлено на вашем экземпляре Debian. Есть некоторые риски для этого. Рекомендуется избегать отклонения от стабильного ядра LTS по умолчанию, которое предоставляет Debian. Однако из-за необходимости с вашей стороны вам требуется более новое ядро.

Решение

Вы можете добавить репозиторий backports , использовать apt-pinning для управления тем, что здесь установлено, и установить необходимые компоненты для обновления вашего ядра.

Я настоятельно рекомендую apt-pinning, так как вы можете добавить альтернативные репозитории или даже сторонние репозитории и контролировать, что из них установлено. Это позволяет вам на свой страх и риск устанавливать и обновлять альтернативные пакеты и библиотеки и обновлять их вместе с основными компонентами вашей операционной системы. Apt-pinning позволяет детально контролировать пакеты из альтернативных источников (т.е. не стабильных) с меньшим риском поломки. Если вы понимаете риск, вы можете двигаться вперед с этим.

Добавьте репозиторий Backports и настройте apt-предпочтения

Первым шагом является добавление правильных репозиториев в ваш sources.list. Я бы порекомендовал вам использовать, /sources.list.d/но вы можете сделать это только в одном файле.

#Main Stable Repo
deb http://deb.debian.org stable main contrib non-free 
deb-src http://deb.debian.org stable main contrib non-free
#Stable-updates
deb http://deb.debian.org stable-updates main contrib non-free 
deb-src http://deb.debian.org stable-updates main contrib non-free 
#Security Updates 
deb http://deb.debian.org/debian-secruity stable/updates main contrib non-free
deb-src http://deb.debian.org/debian-secruity stable/updates main contrib non-free 
#Stretch Backports    
deb http://ftp.debian.org/debian stretch-backports main contrib non-free
deb-src http://ftp.debian.org/debian stretch-backports main contrib non-free

Вы sources.listдолжны выглядеть примерно так. Вам не нужны несвободные части, если вам не требуется несвободное программное обеспечение. Далее вам нужно будет присвоить пакетам пин-коды приоритетов /etc/apt/preferences. Этот файл должен выглядеть так:

Package: *
Pin: release a=debian-security
Pin-Priority: 1000

Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=stable-updates
Pin-Priority: 800

Package: *
Pin: release a=stretch-backports
Pin-Priority: 700

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

После этого ты бежишь apt-get update.

Установите желаемое ядро

Используя apt-cache search linux-imageвы получите список всех доступных ядер. Когда вы определили, какое ядро ​​вы хотите, вы можете установить его, используя apt-get install linux-image-flavour. Рекомендуется также установить соответствующий пакет заголовков Linux. Если вам требуется образ grsec в вашей среде, установите его. Опять же с соответствующим пакетом заголовков.

После перезагрузки вы сможете выбрать ядро, которое хотите запустить, в меню GRUB. Если вы сталкиваетесь с проблемами, вы всегда можете выбрать заведомо исправное ядро ​​и загрузить его вместо этого.

Вывод

Я использовал apt-pinning для успешного управления установкой Debian на моем персональном компьютере. Я использовал описанный выше метод для установки того, какое ядро ​​было последним (4.15), и моя система работала нормально. Однако примите это с некоторой долей соли, поскольку это персональный компьютер, а не то, что я предполагаю, является рабочим сервером, на котором вы хотите установить это. Я включаю ссылки на все источники, на которые я ссылаюсь. Я использовал эту вики-страницу Debian для информирования о необходимых шагах, а также страницу для apt-pinning . На эту статью также была ссылка.

Если у вас есть какие-либо вопросы или сомнения по поводу этого поста, не стесняйтесь спрашивать меня. Если в этом ответе есть какие-либо исправления или неправильные представления, пожалуйста, сообщите мне. Я могу обновить пост по мере необходимости.

Удачи!

kemotep
источник
По какой-то причине приоритет 700 для backports заставляет мою систему пытаться обновить все пакеты до версий backports. Если я установлю его на 499 или ниже, кажется, все ведет себя. root @ pc: / etc / apt # grep -r iority * preferences.d / sparky: Приоритет пин-кода: 1001 предпочтений.d / main: Приоритет пин-кода: 1000 предпочтений.d / main: Приоритет пин-кода: 900 предпочтений.d / main: Приоритет пин-кода: 800 предпочтений.d / backports: Приоритет пин-
кода
2

Чтобы установить linux-образ и его пакет заголовков, используйте следующую команду:

apt install linux-{image,headers}-4.16.0-0.bpo.1-amd64

Некоторые зависимости необходимо установить из бэкпортов после выполнения вышеуказанной команды, ее можно установить через:

apt install -t stretch-backports pckg_name
GAD3R
источник
1
Или -t stretch-backportsможет быть добавлен к исходной линии, поэтому он автоматически получает все необходимые зависимости: apt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64.
MIVK