web-dev-qa-db-fra.com

Configurer l'interface réseau eth0 en utilisant DHCP dans initramfs

J'ai créé mon propre script initramfs (basé sur live-initramfs) et j'ai besoin d'une connexion réseau (à l'aide de DHCP) pour obtenir un fichier distant. Alors, que dois-je ajouter au fichier de crochet initramfs (ifconfig, dhclient?). Et comment écrire mon script initramfs? Maintenant, j'essaie quelque chose comme ça:

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

pour ifup, j'ai besoin du fichier/etc/network/interfaces:

auto eth0
iface eth0 inet dhcp

Mais en général, je ne sais pas exactement ce qui doit être fait pour que le périphérique réseau fonctionne correctement dans initramfs.

Une idée ou de l'aide?

3
marcinpz

La solution la plus simple consiste à utiliser ipconfig via l'option de ligne de commande ip= du noyau dans grub.cfg (ou pxelinux.cfg ou selon le démarrage de votre noyau). Je ne connais pas de page de manuel pour cela, mais il existe un fichier README.ipconfig dans le référentiel klibc Git et installé à /usr/share/doc/klibc-utils/README.ipconfig.gz. Donc, votre /etc/default/grub pourrait avoir une ligne comme celle-ci:

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

Vous devrez peut-être créer un script simple dans /etc/initramfs-tools/scripts/local-top qui utilise le fichier functions puis appelle la fonction configure_networking, comme suit:

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

(J'avais pensé à tort que configure_networking était appelé par défaut, mais il faut l'appeler explicitement — soit votre propre script, soit celui d'un paquet. Dans mon cas, il a été appelé à partir de open-iscsi.)

4
brandx