![Links simbólicos com grub2 como pxelinux](https://rvso.com/image/154446/Links%20simb%C3%B3licos%20com%20grub2%20como%20pxelinux.png)
Eu quero fazer links simbólicos como o pxelinux pode, apenas com o grub2. Mas não consigo descobrir como. O objetivo é ter diferentes arquivos de configuração que eu possa passar dinamicamente para um IP.
O Grub2 funciona até agora, mas não posso fornecer outro arquivo de configuração a um IP, ele sempre leva o grub.cfg. Tentei também grub.cfg-IP -> outro arquivo de configuração -> é um link simbólico para o arquivo de configuração que realmente quero usar.
Talvez alguém já tenha descoberto isso. O Manual Grub2 não ajudou muito.
Responder1
PXELINUX não está "fazendo links simbólicos": está apenas baixando um arquivo de configuração cujo nome inclui o endereço IP ou MAC do cliente ou parte dele. O fato de o arquivo correspondente ser um link simbólico é inteiramente entre você e o servidor TFTP que fornece o arquivo ao PXELINUX.
Observe que, diferentemente do PXELINUX, o GRUB procura apenas um único arquivo de configuração, que é grub.cfg
o padrão. Então é isso que você precisa para fornecê-lo. Se você deseja que o GRUB use um arquivo de configuração cujo nome depende de alguma forma do endereço IP do cliente, você precisará informar isso ao GRUB.
Esse arquivo de configuração pode então dizer ao GRUB para carregar outro arquivo de configuração... e você pode usar variáveis de ambiente do GRUB ao especificar seu nome.
Portanto, se você deseja que o GRUB use um arquivo de configuração chamado grub.cfg-<IP address>
, você deve primeiro criar um arquivo mínimo grub.cfg
no local esperado pelo GRUB e dizer algo assim (apenas):
configfile grub.cfg-${net_default_ip}
Isso deve informar ao GRUB para baixar um novo arquivo de configuração com o endereço IP do cliente com sufixo no nome do arquivo.
Você pode até especificar o novo arquivo de configuração com um caminho absoluto, algo como
configfile (tftp,${net_default_server})/some/path/grub.cfg-${net_default_ip}
Se você não gosta de ter um grub.cfg
arquivo separado com apenas uma linha definindo um novo arquivo de configuração, você pode incorporar essa configuração de uma linha na imagem de inicialização do GRUB PXE, usando grub-mkimage -c <grub.cfg containing the configfile command> -O i386-pc-pxe <other parameters...>
(ou qualquer arquitetura que estiver usando).
Você provavelmente já descobriu que quando está tendo problemas para fazer a inicialização PXE funcionar, é útil despejar o tráfego de rede entre o cliente PXE e o(s) servidor(es) DHCP/TFTP com algo como tcpdump
ou wireshark
para verificar se o cliente está obtendo o correto informações e solicitando os arquivos corretos... certo?