Pxeboot Grub2 UEFI com initrd muito grande

1

Eu estou trabalhando em um projeto que requer que eu PXEbo um initrd (1.3G) muito grande para um cliente, no entanto, ao usar o grub2 via uefi, eu me deparei com o erro:

Can't allocate initrd

O que parece indicar que o grub está tentando acessar além do limite de endereços. ... o que é estranho porque o limite de memória deve ser muito maior em uma máquina de 64 bits com 32 GB de RAM.

PXE-ing uma imagem menor não é uma opção como NFSmounts não são confiáveis no meu local. Não sou casado com o Grub2, mas não consegui fazer o syslinux.efi inicializar depois de compilar a partir do código-fonte.

Existe uma maneira de forçar o grub a tomar o grande initrd?

    
por user2183032 27.09.2016 / 19:17

2 respostas

1

Consegui resolver esse problema criando uma imagem do Dracut com módulos de rede / integrados e usando uma raiz do squashfs.

Apenas uma nota que o Dracut espera que o SquashFS seja formatado de uma certa maneira: /LiveOS/rootfs.img Onde rootfs.img é um sistema de arquivos no formato ext4 que contém o sistema de arquivos real.

    
por 04.10.2016 / 17:19
1

O PXE transferindo um initrd de 1,3 GB é apenas um design ruim.

Você não precisa retransmitir no NFS. A abordagem típica é um initrd de 20/40 MB com suporte de rede capaz de mapear compartilhamentos SMB ou apenas recuperar componentes por HTTP (wget / curl). Este método é visto ao instalar distribuições discretas de componentes, como Ubuntu Server ou distribuições Live, como o Ubuntu desktop Live. No seu caso, se você tem tudo em seu initrd, você deve dividi-lo e convertê-lo em um arquivo único do squashfs.

Infelizmente o syslinux.efi 6.03 ainda não é 100% confiável e o grub2 não é muito amigável.

Veja aqui como o Serva O PXE inicializa muitas distribuições do Linux, o que certamente ajudará você a inicializar o seu. (Estou relacionado ao desenvolvimento da Serva)

    
por 29.09.2016 / 10:53