Configure a interface de rede eth0 usando DHCP no initramfs

3

Eu criei meu próprio script initramfs (baseado em live-initramfs) e preciso configurar a conexão de rede (usando DHCP) para obter o arquivo remoto. Então, o que eu preciso adicionar ao arquivo de gancho initramfs (ifconfig, dhclient?). E como escrever meu script initramfs? Agora estou tentando algo assim:

mkdir -p /var/run/network  # needed by ifup
modprobe af_packet         # for DHCP?
udevadm trigger            
udevadm settle  
ifup eth0                  #???            

para o ifup eu preciso que o arquivo / etc / network / interfaces tenha:

auto eth0
iface eth0 inet dhcp

Mas geralmente não sei exatamente o que precisa ser feito para que o dispositivo de rede funcione corretamente no initramfs.

Alguma ideia ou ajuda?

    
por marcinpz 06.02.2012 / 09:31

1 resposta

4

A solução mais simples é usar ipconfig através da opção de linha de comando ip= do kernel em grub.cfg (ou pxelinux.cfg ou no entanto você inicializa seu kernel). Não tenho conhecimento de uma página de manual para ele, mas há um README.ipconfig no repositório Git do klibc e instalado em /usr/share/doc/klibc-utils/README.ipconfig.gz . Portanto, seu /etc/default/grub pode ter uma linha como a seguinte:

GRUB_CMDLINE_LINUX="ip=:::::eth0:dhcp"

Talvez seja necessário criar um script simples em /etc/initramfs-tools/scripts/local-top que origine o arquivo functions e, em seguida, chame a função configure_networking , assim:

#!/bin/sh
. /scripts/functions
configure_networking

(Eu tinha pensado erroneamente que configure_networking foi chamado por padrão, mas algo precisa chamá-lo explicitamente - seu próprio script ou um de um pacote. No meu caso, ele foi chamado de open-iscsi .)

    
por brandx 11.02.2012 / 03:34