Como mudar de um kernel Linux personalizado para um kernel de distribuição

4

No meu tempo livre, ajudo a administrar um servidor Debian Linux hospedado que serve uma variedade de sites e hospeda e-mail para algumas pessoas. Não vê grandes volumes de tráfego, mas é claro que queremos fazer as coisas corretamente. No entanto, quando nós começamos este servidor, alguém rolou um kernel personalizado para nós, o que nos permitiu fazer várias coisas que queríamos fazer (como LVM, RAID, etc). Isso é agora há alguns anos e é claro que vários bugs de segurança foram corrigidos, e nós preferimos apenas operar a partir de um kernel padrão que é mantido atualizado.

O problema é que não temos uma lista dos recursos que ativamos quando rolamos o kernel personalizado e algumas tentativas de usar um novo resultaram em um kernal que não inicializa. Então a questão é - como é que vamos usar os kernels Debian em stock enquanto ainda podemos ter toda a funcionalidade da qual dependemos? Quais informações eu preciso coletar primeiro e, em seguida, quais são as etapas para que isso aconteça?

    
por x3ja 18.05.2009 / 19:43

4 respostas

5

Primeiro, você precisa avaliar exatamente o que precisa que seu kernel faça. Isso significa criar uma lista de:

  • Cada peça de hardware no seu sistema
  • Funções relacionadas a hardware, como LVM e RAID
  • Funções de rede, como roteamento, VPNs, suporte sem fio, etc.
  • Sistemas de arquivos, especialmente seu sistema de arquivos raiz
  • Outras necessidades especiais no nível do kernel

Em seguida, você deve tentar descobrir como o seu kernel atual está lidando com eles e depois tentar traduzi-lo para um kernel mais novo. Para isso, você pode ver:

  • As saídas de lspci e dmesg - isso ajudará você a catalogar o hardware e o que o kernel atual faz na inicialização
  • Quais módulos são carregados - veja em lsmod
  • A configuração do kernel, se disponível - às vezes, isso existe em /proc/config.gz ou em /boot

Uma vez que você conhece seu hardware, e como o kernel atual está lidando com ele, você pode fazer um novo kernel a partir dos fontes Debian. Concentre-se em obter um kernel que inicialize primeiro. Uma vez que você pode entrar em um shell com seu novo kernel, você pode adotar uma abordagem incremental para o resto de seus recursos. Recompile, adicionando recursos ou drivers conforme necessário (talvez como módulos para acelerar esse processo) e teste cada novo kernel.

Uma última palavra sobre o RAID. Você deve ter cuidado com sua configuração RAID atual, se for um RAID por software - os novos kernels e sistemas usarão mdadm para gerenciar esse tipo de coisas, enquanto sistemas mais antigos tendem a usar a abordagem raidtab . Sua abordagem mudará como você lida com o RAID in-kernel, especialmente os bits de autodetecção. Dê uma olhada no excelente Software RAID Howto para obter mais informações.

    
por 18.05.2009 / 20:04
1

Se a pessoa que construiu seu kernel customizado fez o debian way , pode haver um arquivo no diretório / boot chamado config-2.?.? que lhe dirá quais opções foram usadas ao construir o kernel.

Como você não tem certeza, eu acho que começaria apenas pegando um livecd do Debian e veria se O kernel de estoque em um livecd permite que você inicialize o acesso a todo o seu hardware e discos. Se você conseguir que tudo funcione a partir de um liveecd, então você só precisa instalar o kernel.

Você mencionou que tentou um kernel padrão e ele não inicializa. O que exatamente é o erro, talvez se você postar as mensagens, poderemos fornecer mais ajuda.

    
por 18.05.2009 / 20:01
1

Você tem /proc/config.gz ou /boot/config-X.X.X para o seu kernel atual?

Se fizer isso, apenas difira sua configuração e a do Debian.

Por que vale a pena, as configurações do Debian permitem praticamente tudo - definitivamente RAID, LVM, etc. Apenas certifique-se de que o initrd seja construído quando você instalar o kernel do Debian, já que a maioria das coisas é modular no kernel.

Eu não encontrei nada onde eu tive que construir um kernel personalizado para um servidor Debian em um longo tempo, exceto quando eu queria adicionar patches de kernel por qualquer motivo.

    
por 23.09.2009 / 09:16
0

Configure seu grub para inicializar seu kernel personalizado como um Sistema de retorno para garantir que o servidor volte a funcionar, mesmo que o novo kernel falhe ao inicializar.

Usando isso, você pode com segurança apt-get install the linux-image para sua arquitetura de hardware, o que provavelmente é linux-image-686 ou linux-image-amd64 e tente reinicializar nesse kernel.

    
por 05.10.2009 / 13:30