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

3

Eu não tenho confiança suficiente para fazer isso sozinho e arrisco o servidor 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 a versão do kernel 4.15 ou 4.16. O que você recomenda.

Acho que sei 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)

Também preciso de cabeçalhos. No Ubuntu também existe um pacote chamado extra ou similar, então estou confuso em não vê-lo aqui.

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

    
por Vlastimil 17.05.2018 / 14:39

3 respostas

8

Se você deseja instalar um novo kernel empacotado, você deve usar um do repositório backport. Parece que você já tem esse repositório adicionado à sua configuração apt , então está tudo pronto.

Como o seu 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 da nuvem.

Basta executar

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

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

Ao contrário dos pacotes regulares, a nova versão linux-image package não substituirá o kernel 4.9.0 existente, mas será instalado ao lado dele. (Isso ocorre porque o número da versão é incluído como parte do nome do pacote.) Os gerenciadores de inicialização serão configurados automaticamente em linux-image post-install para apresentar os kernels disponíveis em uma ordem baseada em número de versão ou, se isso não for possível para alguns bootloaders, basta definir automaticamente o último instalado como o preferido.

Se acontecer de o seu novo kernel não inicializar, você pode simplesmente selecionar o kernel anterior a partir do gerenciador de inicialização, e então remover o pacote do kernel que provou ser não-funcional. Se você acidentalmente informar ao gerenciador de pacotes para remover o kernel no qual você está atualmente em execução, é inteligente o suficiente saber que isso não é uma boa coisa para fazer e abortará a operação.

    
por 17.05.2018 / 15:41
7

Problema na mão

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

Solução

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

Eu recomendo apt-pinning como você pode adicionar repositórios alternativos ou até 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 ao lado dos principais componentes de seu sistema operacional. O Apt-pinning 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, você pode avançar com isso.

Adicione o repositório Backports e configure o apt-preferences

O primeiro passo é adicionar os repositórios apropriados 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

Seu sources.list deve ser parecido com isso. Você não precisa das partes não livres se não precisar de software não-livre. Em seguida, você precisará fornecer aos pacotes prioridades de PIN 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 do pin.

Depois disso, você executa apt-get update .

Instalar o kernel desejado

Usando apt-cache search linux-image , você listará todos os kernels disponíveis. Quando você identificar o kernel desejado, poderá instalá-lo usando apt-get install linux-image-flavour . É recomendado que você instale o pacote de cabeçalho Linux correspondente também. Se você precisar da imagem grsec em seu ambiente, instale essa em seu lugar. Novamente com o pacote de cabeçalho apropriado também.

Após a reinicialização, você poderá selecionar o kernel que deseja lançar no menu GRUB. Se você tiver problemas, poderá sempre selecionar o kernel bom e inicializar usando isso.

Conclusão

Eu usei o apt-pinning para gerenciar com sucesso a instalação do Debian de meu computador pessoal. Eu usei o método acima para instalar o kernel mais recente (4.15) e meu sistema tem funcionado bem. No entanto, levar isso com um grão de sal, pois é um computador pessoal e não o que eu assumo é um servidor de produção que você deseja instalar isso. Estou incluindo links para todas as fontes que referenciei também. Eu usei esta Página Wiki do Debian para informar sobre as etapas necessárias, bem como a página em apt-pinning . Este artigo também foi referenciado.

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

Melhor da sorte!

    
por 17.05.2018 / 16:00
1

Para instalar o pacote linux-image e seus headers, use o seguinte comando:

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

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

apt install -t stretch-backports pckg_name
    
por 17.05.2018 / 15:59

Tags