我创建了自己的 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.ipconfig
klibc 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
。)