如何为 Ubuntu 的 initramfs 设置名称服务器 (dns)?

如何为 Ubuntu 的 initramfs 设置名称服务器 (dns)?

以下/etc/initramfs-tools/initramfs.conf是 Ubuntu 的 initramfs 的一些配置选项。

除其他事项外,还可以在那里设置初始 RAM 文件系统的IP和网络,例如或。DEVICEDECCIVE=wlan1IP=192.168.0.10::192.168.0.1:255.255.255.0

我已经安装了 dropbear通过 SSH 解锁加密驱动器并且存在一个问题,即我的服务器在解锁和完全启动后仍保留 initramfs 网络配置。由于该配置不包含 DNS,因此我必须事后手动添加它,但它不会保留。

那么如何在 initramfs 中配置名称服务器?



我尝试过的事情:

当我设置时IFDOWN=*/etc/dropbear-initramfs/config整个网络在启动后就被搞砸了(不仅仅是名称服务器),我必须做类似的事情:

sudo ip link set <device> up
sudo ip a a 192.168.0.10/24 dev <device>
sudo ip r a default via 192.168.0.1
sudo resolvectl dns <device> 192.168.0.1 1.1.1.1

在 initramfs 内部,有一个文件/run/net-enp2s0似乎负责精确的网络配置:

# cat /run/net-enp2s0.conf 
DEVICE='enp2s0'
PROTO='none'
IPV4ADDR='192.168.0.10'
IPV4BROADCAST='192.168.0.255'
IPV4NETMASK='255.255.255.0'
IPV4GATEWAY='192.168.0.1'
IPV4DNS0='0.0.0.0'
IPV4DNS1='0.0.0.0'
HOSTNAME=''
DNSDOMAIN=''
NISDOMAIN=''
ROOTSERVER='0.0.0.0'
ROOTPATH=''
filename=''
UPTIME='9'
DHCPLEASETIME='0'
DOMAINSEARCH=''

但我不知道它是如何创建的以及如何更改其内容。我发现 initramfs 文档非常缺乏。

答案1

取自https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt

 ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:
 <dns0-ip>:<dns1-ip>:<ntp0-ip>

此参数告诉内核如何配置设备的 IP 地址以及如何设置 IP 路由表。它最初称为 nfsaddrs,但现在启动时 IP 配置独立于 NFS 工作,因此出于兼容性原因,它被重命名为 ip,而旧名称保留为别名。

如果内核命令行中缺少此参数,则所有字段都被视为空,并应用下面提到的默认值。一般来说,这意味着内核会尝试使用自动配置来配置所有内容。

...

在您的情况下使用 enp1s0 作为网络设备(您可能还需要使用 eth0):

IP="192.168.0.10::192.168.0.1:255.255.255.0::enp1s0:off:<DNS-Server>"

相关内容