Como posso passar os argumentos do kernel via PXE para um ISO do instalador do sistema operacional semelhante ao Ubuntu?

5

Estou em uma situação difícil em que preciso executar uma instalação remota de um QuantaStor (baseado no Ubuntu - hiss ) em hardware com funcionalidade limitada de acesso fora de banda.

O sistema de destino é um HP ProLiant DL180 Servidor G6 , que possui um LOGO-LO de Luzes-Out totalmente licenciado KVM remoto. Este é um grande passo para baixo dos processadores de gerenciamento ILO3 ou ILO4. O desafio com este hardware é que o As funções de mídia virtual do LO100i não são confiáveis . À medida que as liberações de Java progrediram, essa ILO se tornou menos útil. No momento, não consigo fazer o sistema inicializar por meio da mídia remota, embora esta função tenha funcionado bem no passado .

Então, o meu próximo passo foi tentar PXE inicializar este servidor usando a imagem ISO do QuantaStor. Estranhamente, há um número de contas conflitantes de como o PXE pode inicializar uma imagem ISO diretamente, sem encadear carregadores de inicialização, etc. Depois de algumas experiências, descobri que poderia inicializar um ISO usando memdisk através do servidor PXE. Eu controlo o DNS e o DHCP neste ambiente, por isso fui a rota padrão de modificar o arquivo de configuração /etc/dhcpd.conf para refletir:

# Begin temporary PXE boot
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 172.30.27.5;
filename "/pxelinux.0";
# End temporary PXE boot

Para minha configuração de PXE, defino /tftpboot/pxelinux.cfg/default para:

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

MENU TITLE PXE Menu

LABEL QuantaStor
        MENU LABEL QuantaStor
        KERNEL memdisk
        APPEND iso initrd=images/osn_quantastor_v3.8.2.5441.iso raw

Juntos, esses recursos permitiram que o sistema começasse a inicializar o ISO. Infelizmente, o console do KVM remoto produziu a seguinte saída de vídeo distorcida:

Ateladeinstalaçãodoappliancedeveterestaaparência:

Váriasreinicializaçõeseapósalgumaspesquisasbásicas,descobriqueoKVMremotoLO100 compartilha esse sintoma do framebuffer com alguns Placas Supermicro IPMI . A solução é passar vga16fb.modeset=0 para os argumentos de inicialização. Isso é exclusivo para o Ubuntu ( suspiro ).

Como posso obter essa declaração na linha de argumento do ISO inicializado por PXE?

Onde devo adicionar a declaração?

As tentativas de fazer isso na linha "APPEND" do /tftpboot/pxelinux.cfg/default não parecem ajudar. As dicas do Ubuntu sugerem adicionar a linha pressionando F6 na tela de inicialização do ISO. Meu KVM remoto é ilegível nesse ponto e não posso adicioná-lo manualmente.

Alguma idéia?

Atualização:

Eu extraí o ISO e modifiquei o arquivo isolinux.cfg para alterar o suporte ao buffer de quadros do instalador na linha APPEND do kernel. O sistema inicializa e o instalador parece funcionar ... exceto que agora recebo um erro sobre o CDROM. Estou assumindo que o meu método PXE está incorreto.

Qual é a maneira correta de usar um ISO sobre o PXE nesse contexto?

    
por ewwhite 02.01.2014 / 00:36

2 respostas

5

A alteração do append com os parâmetros desejados definitivamente não ajudará no PXELINUX nesta configuração, já que o disco de inicialização tem seu próprio ISOLINUX gerenciando a inicialização do kernel.

Duas maneiras de corrigir isso.

A opção mais simples: extrair o ISO, modificar a linha isolinux/isolinux.cfg do arquivo append com os argumentos de inicialização necessários, reempacotar o ISO. Ter cadeia PXELINUX para o ISO modificado.

A opção mais complexa (mas possivelmente melhor, porque remove o encadeamento): em vez de usar o memdisk para inicializar no ISO, inicialize diretamente da mesma forma que o ISO ISOLINUX estaria fazendo.

Editar: etapas mais claras para inicializar no sistema operacional dentro da ISO:

  • Extraia o ISO para /tftpboot/quantastore
  • Copie o arquivo preseed/quantastor.seed do ISO extraído para a raiz da Web de um serviço HTTP em execução no servidor PXE para que ele esteja disponível em http://172.30.27.5/quantastor.seed
  • Altere seu arquivo pxelinux.cfg/default para inicializar diretamente para o conteúdo extraído do ISO. Remova o atual LABEL QuantaStor e substitua por:

    LABEL QuantaStor
      menu label QuantaStor
      kernel quantastor/install/vmlinuz
      append preseed/url=http://172.30.27.5/quantastor.seed locale=en_US.UTF-8 keyboard-configuration/layoutcode=us initrd=quantastor/install/initrd.gz ramdisk_size=16384 nodmraid acpi=off root=/dev/ram vga16fb.modeset=0 rw quiet
    

Isso deve ter uma instalação bem-sucedida na maior parte, mas os comandos que o QuantaStor executa no final da instalação falharão, já que eles estão procurando diretamente por /cdrom . Do arquivo quantastor.seed :

 d-i preseed/late_command string mkdir -p /target/lib/plymouth/themes/quantastor; \
 chroot /target echo "creating package dirs, setting up splash screens" >> /var/log/qs_install.log; \
 mkdir /target/qs-pkgs; \
 mkdir -p /target/qs-pkgs/drivers; \
 mkdir -p /target/opt/osnexus/quantastor/raid-tools; \
 cp /cdrom/finisher/raid-tools/* /target/opt/osnexus/quantastor/raid-tools; \
 cp /cdrom/finisher/deb/*.deb /target/qs-pkgs; \
 cp /cdrom/finisher/qs_preseed.sh /target/qs-pkgs; \
 cp /cdrom/finisher/drivers/* /target/qs-pkgs/drivers; \
 cp /cdrom/finisher/splash/* /target/lib/plymouth/themes/quantastor; \
 cp /cdrom/finisher/osnexus.gpg /target/qs-pkgs; \
 cp /cdrom/finisher/osnexus.list /target/etc/apt/sources.list.d/osnexus.list; \
 cp /cdrom/finisher/rc.local /target/etc/rc.local; \
 cp /cdrom/finisher/qs_runonce.sh /target/etc/qs_runonce.sh; \
 chroot /target /qs-pkgs/qs_preseed.sh

Provavelmente, basta executar esse material manualmente após a instalação ser concluída na primeira vez (removendo o /target stuff) - se estiver funcionando diferente disso, podemos adaptar esses comandos para colocar suas coisas no lugar sem depender do CD na unidade.

    
por 02.01.2014 / 01:15
2

Digite "cego"?

Pressione Enter assim que a seleção do idioma (distorcido) aparecer, pois o tempo limite será atingido rapidamente.

Em seguida, toque em F6 , Esc , digite vga16fb.modeset=0 e pressione Enter .

Você provavelmente estava perdendo a necessidade de acertar Esc logo após F6 .

    
por 02.01.2014 / 01:21