在 initramfs 中使用 DHCP 设置 eth0 网络接口

在 initramfs 中使用 DHCP 设置 eth0 网络接口

我创建了自己的 initramfs 脚本(基于 live-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 中到底需要做什么才能使网络设备正常工作。

有什么想法或帮助吗?

答案1

ipconfig最简单的解决方案是通过内核的ip=命令行选项使用grub.cfg(或者pxelinux.cfg无论你如何启动内核)。我不知道它的手册页,但有一个README.ipconfigklibc Git 存储库中的文件并安装在/usr/share/doc/klibc-utils/README.ipconfig.gz。因此,您/etc/default/grub可能会看到如下一行:

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

您可能需要编写一个简单的脚本来/etc/initramfs-tools/scripts/local-top获取文件functions然后调用该configure_networking函数,如下所示:

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

(我错误地认为configure_networking默认情况下会调用它,但必须有一些东西明确地调用它 - 要么是你自己的脚本,要么是来自包的脚本。就我而言,它是从调用的open-iscsi。)

相关内容