web-dev-qa-db-ja.com

initramfsでDHCPを使用してeth0ネットワークインターフェイスをセットアップする

(live-initramfsに基づいて)独自のinitramfsスクリプトを作成し、リモートファイルを取得するために(DHCPを使用して)ネットワーク接続をセットアップする必要があります。それで、initramfsフックファイル(ifconfig、dhclient?)に何を追加する必要がありますか。そして、initramfsスクリプトの書き方は?今、私はこのようなことを試みています:

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

ifupには/ etc/network/interfacesファイルが必要です:

auto eth0
iface eth0 inet dhcp

しかし、一般に、initramfsでネットワークデバイスが適切に機能するために何を行う必要があるかは正確にはわかりません。

何かアイデアや助け?

3
marcinpz

最も簡単な解決策は、ip=(またはgrub.cfgまたはカーネルをブートする方法)のカーネルのpxelinux.cfgコマンドラインオプションを介してipconfigを使用することです。マニュアルページは知りませんが、klibc Gitリポジトリに README.ipconfigファイル があり、/usr/share/doc/klibc-utils/README.ipconfig.gzにインストールされています。したがって、/etc/default/grubには次のような行が含まれている可能性があります。

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

次のように、functionsファイルを取得してから/etc/initramfs-tools/scripts/local-top関数を呼び出すconfigure_networkingで簡単なスクリプトを作成する必要がある場合があります。

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

(誤ってconfigure_networkingがデフォルトで呼び出されると思っていましたが、それを明示的に呼び出す必要があります。独自のスクリプトまたはパッケージからのスクリプトです。私の場合、open-iscsiから呼び出されました。)

4
brandx