Como mudar o que o kernel inicializa o Ubuntu XEN VPS?

1

Eu tenho um VPS rodando o servidor Ubuntu 12.04. Um tempo atrás, meu host instalou um kernel alternativo (um dos kernels EC2 da Amazon) para corrigir um problema de boot que eu estava tendo. Agora, 2 lançamentos do Ubuntu mais tarde, este kernel (2.6.31-302-ec2) ainda está sendo usado, mesmo que kernels posteriores (3.2.xx) tenham sido instalados.

Como posso fazer com que o servidor use o kernel instalado mais recentemente, de preferência sem desinstalar o kernel do EC2, caso isso cause problemas?

    
por Tim Fountain 17.06.2012 / 16:43

3 respostas

1

Parabéns, você está em PyGrub!

  • Seu arquivo menu.lst , as diferentes imagens de kernel no diretório /boot e, o mais importante, o kernel que você está executando (uma versão do Amazon EC2 extremamente improvável para ser executado em um host físico ) implica strongmente que você tenha o pygrub ativado .
    • Isso ocorre porque os XenPVs não-Pygrub devem usar o mesmo kernel que o host
  • O dmesg estranhamente vazio é provavelmente um efeito colateral das personalizações no kernel do EC2; compare com a saída muito informativa de um kernel normal em um XenPV 3.4

Um pouco sobre as opções do kernel XenPV:

  • Seu atual kernel personalizado do EC2 é inicializado com as opções root=/dev/sda1 xencons=tty (consulte o final de menu.lst )
  • As opções de inicialização XenPV padrão em kernels de estoque, em vez disso, são root=/dev/xvda1 console=hvc0
    • xvda é o dispositivo de disco paravirtualizado (e mais eficiente), enquanto sda é o dispositivo emulado menos eficiente - esta é a primeira vez que vi o último usado em um XenPV 3.x.
    • xencons=tty e console=hvc0 são muito semelhantes, mas acredito que o primeiro seja um uso mais antigo (herdado); você pode empilhá-los sem efeitos negativos; Ele simplesmente diz ao kernel que o terminal virtual padrão está indisponível para o console e usa o dispositivo hvc0 especializado.

Como trocar de kernels:

Esta parte pode ser um pouco cabeluda, e você deve estar nos bons livros do seu provedor, porque você pode precisar da ajuda deles com uma simples operação cp uma ou duas vezes! Depois disso, você saberá quais opções você precisa e deve ser definido para o futuro.

  • Para lhe dar algum contexto, se precisar, aqui estão alguns arquivos do meu XenPV VPS no kernel mais recente de 64 bits: ls -l /boot , menu.lst e um pós-inicialização completa dmesg
  • Adicione o seguinte na parte superior do seu menu.lst , adaptando-se à versão do kernel que você precisa:

    default=0
    title vmlinuz-3.2.0-25-generic
    root            (hd0) 
    kernel          /boot/vmlinuz-3.2.0-25-generic ro root=/dev/sda1 xencons=tty console=hvc0
    initrd      /boot/initrd.img-3.2.0-25-generic
    
  • Cruze os dedos, reinicie e espere que volte a aparecer!

  • Se não, tente mudar para root=/dev/xvda1 e isso certamente funcionará.
  • Lembre-se de recusar a instalação do "novo" menu.lst ao atualizar os kernels!
por ish 25.06.2012 / 21:04
1

Por padrão, xen guests (domU) não podem controlar quais kernels estão sendo usados.

O kernel é provisionado a partir do hipervisor (dom-0), onde a versão específica do kernel é codificada junto com ip, tamanho do disco de memória, etc. no script de configuração para cada máquina virtual.

A menos que seu provedor de VPS tenha ativado o pygrub, que permite o uso e a inicialização de kernels personalizados dentro do VPS. se esse for o caso, dê uma olhada nesta instrução

Xen e PyGrub

    
por tomodachi 21.06.2012 / 00:15
-1

Pesquise o Grub Customizer no centro de software.

Instale o programa.

Em seguida, abra o Grub Customizer.

Você pode desmarcar qualquer um dos kernels mais antigos e verificar os novos.

Quando o ubuntu inicializa, ele só verá os que estão marcados.

Espero que isso ajude,

Leinardo

    
por LeinardoSmtih 20.06.2012 / 23:35