Qual é a maneira correta de instalar o novo kernel manualmente no Debian 9?

9

Não tenho confiança suficiente para fazer isso sozinho e arrisco o servidor a não inicializar ou algo assim.

Eu gostaria de atualizar o kernel de:

$ uname -r
4.9.0-6-amd64

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

para o kernel versão 4.15 ou 4.16. O que você recomendar.


Só acho que sei como listar as versões disponíveis:

$ 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)

Eu preciso de cabeçalhos também. No Ubuntu também há um pacote chamado extraou similar, então estou confuso por não vê-lo aqui.


Qual é a maneira correta de instalar o novo kernel manualmente no Debian 9?

LinuxSecurityFreak
fonte
Existe algum motivo específico para você precisar de um kernel mais recente?
Marcelm

Respostas:

10

Se você deseja instalar um kernel mais recente do pacote Debian, use um do repositório de backports. Você parece ter esse repositório já adicionado à sua aptconfiguração, então está tudo pronto.

Como o kernel atual é a versão básica do amd64, presumo que você não precisará da versão do agendador em tempo real nem da versão em nuvem.

Apenas corra

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

ie "instale a versão básica -amd64 do kernel 4.16 suportada para o Debian 9 e o pacote de cabeçalhos correspondente".

Diferentemente dos pacotes regulares, o novo linux-imagepacote de versão não substituirá completamente o kernel 4.9.0 existente, mas será instalado ao lado dele. (Isso ocorre porque o número da versão está incluído como parte do nome do pacote.) Os gerenciadores de inicialização serão configurados automaticamente na linux-imagepós-instalação para apresentar os kernels disponíveis em uma ordem com base no número da versão ou se isso não for possível para alguns gerenciadores de inicialização , apenas defina automaticamente o instalado mais recentemente como o preferido.

Se o seu novo kernel não inicializar, basta selecionar o kernel anterior no carregador de inicialização e remover o pacote do kernel que provou não ser funcional. Se você disser acidentalmente ao gerenciador de pacotes que remova o kernel em que está executando, é inteligente o suficiente saber que isso não é uma coisa boa a ser feita e abortará a operação.

telcoM
fonte
[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<- Se você não tiver certeza de qual kernel você está usando (neste caso) você pode executar uname -r(retirado askubuntu.com/questions/359574/... )
Ismael Miguel
12

Problema disponível

Você precisa de um kernel Linux mais novo que o instalado na sua instância Debian. Existem alguns riscos para isso. É recomendado que você evite se afastar do kernel LTS estável padrão que o Debian fornece. No entanto, devido às necessidades do seu lado, você precisa de um kernel mais recente.

Solução

Você pode adicionar o repositório de backports , usar o apt-pinning para controlar o que está instalado aqui e instalar os componentes necessários para atualizar seu kernel.

Eu recomendo o apt-pinning, pois você pode adicionar repositórios alternativos ou mesmo repositórios de terceiros e controlar o que é instalado a partir deles. Isso permite que você, novamente por sua conta e risco, instale e atualize pacotes e bibliotecas alternativas e atualize-os juntamente com os principais componentes do seu sistema operacional. A fixação adequada permite o controle granular de pacotes de fontes alternativas (ou seja, não estáveis), com menores riscos de quebra. Se você entende o risco, pode avançar com isso.

Adicione o repositório Backports e configure o apt-preferências

O primeiro passo é adicionar os repositórios adequados ao seu sources.list. Eu recomendo que você use, /sources.list.d/mas você pode fazer isso em apenas um arquivo.

#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

Você sources.listdeve se parecer com isso. Você não precisa de peças não livres se não precisar de software não livre. Em seguida, você precisará atribuir prioridades aos pinos dos pacotes usando /etc/apt/preferences. Este arquivo deve ficar assim:

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

Você pode ser mais granular em sua abordagem, especificando pacotes individuais e atribuindo valores mais altos ou mais baixos às prioridades de pinos.

Depois disso, você corre apt-get update.

Instalar o kernel desejado

Usando apt-cache search linux-imagevocê listará todos os kernels disponíveis. Quando você identifica qual kernel deseja, pode instalá-lo usando apt-get install linux-image-flavour. É recomendável que você instale também o pacote de cabeçalho Linux correspondente. Se você precisar da imagem grsec em seu ambiente, instale-a. Novamente com o pacote de cabeçalho apropriado também.

Após a reinicialização, você poderá selecionar o kernel que deseja iniciar no menu GRUB. Se você tiver problemas, sempre poderá selecionar o bom kernel conhecido e inicializá-lo.

Conclusão

Eu usei o apt-pinning para gerenciar com êxito a instalação do Debian do meu computador pessoal. Usei o método acima para instalar o que era o kernel mais recente na época (4.15) e meu sistema estava funcionando bem. No entanto, leve isso com um pouco de sal, pois é um computador pessoal e não o que eu assumo ser um servidor de produção no qual você deseja instalá-lo. Também estou incluindo links para todas as fontes que referenciei. Eu usei esta página da Debian Wiki para informar sobre as etapas necessárias, bem como a página sobre apt-pinning . Este artigo também foi referenciado.

Se você tiver alguma dúvida ou preocupação sobre este post, não hesite em me perguntar. Se houver alguma correção ou equívoco nesta resposta, informe-me. Eu posso atualizar a postagem conforme necessário.

Melhor da sorte!

kemotep
fonte
Por alguma razão, a prioridade 700 para backports faz com que meu sistema tente atualizar todos os pacotes para versões de backports. Se eu configurá-lo para 499 ou menos, tudo parece se comportar. root @ pc: / etc / apt # grep -r iority * preferências.d / sparky: Prioridade de pino: 1001 preferências.d / main: Prioridade de pino: 1000 preferências.d / main: Prioridade de pino: 900 preferências.d / main: Pin-Priority: 800 preferences.d / backports: Pin-Priority: 499
pierce.jason
2

Para instalar o linux-image e seu pacote de cabeçalhos, use o seguinte comando:

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

Algumas dependências precisam ser instaladas a partir de backports após a execução do comando acima; ele pode ser instalado através de:

apt install -t stretch-backports pckg_name
GAD3R
fonte
1
Ou -t stretch-backportspode ser adicionado à linha inicial, por isso, recebe automaticamente todas as dependências corretas: apt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64.
mivk