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?
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
.)