DHCP 和只读根文件系统

Bas*_*asj 3 networking dhcp etc readonly

在安装为只读(嵌入式计算机)ifup wlan0的系统上执行操作时,出现/此错误:

Failed to connect to non-global ctrl_ifname: wlan0  error: Read-only file system
Internet Systems Consortium DHCP Client 4.3.1
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

can't create /var/lib/dhcp/dhclient.wlan0.leases: Read-only file system
Listening on LPF/wlan0/80:1f:02:d3:42:b8
Sending on   LPF/wlan0/80:1f:02:d3:42:b8
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 13
...
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
No DHCPOFFERS received.
No working leases in persistent database - sleeping.
Run Code Online (Sandbox Code Playgroud)

另一方面,当ifup wlan0/读写方式挂载时,没问题,成功归因于IP。

如何使 DHCP 在只读根文件系统上工作?


# /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "<myssid>"
wpa-psk "<mypasswd>"
Run Code Online (Sandbox Code Playgroud)

Dan*_*com 5

在 RAM 中创建一个 tmpfs 分区,然后将 /var/lib/dh​​cp 符号链接到其中的目录。

编辑:我假设您可以在将根文件系统更改为只读之前对其进行编辑。所以:

  1. 设置一个 tmpfs 挂载点 mkdir /mnt/ramdisk && mkdir /mnt/ramdisk/var-lib-dhcp
  2. 将 tmpfs 添加到您的 fstab 中 tmpfs /mnt/ramdisk/var-lib-dhcp tmpfs size=10M 0 0
  3. 添加一个符号链接从/var/lib/dhcp/mnt/ramdisk/var-lib-dhcp
  4. 在文件系统读/写时测试
  5. 将文件系统设为只读,再次测试

  • 为何如此?它提供了解决问题的明确技术。也许它不包括某些人想要的所有细节,但 OP 清楚地了解分区创建。(而且,如果你错过了细节,你应该这样说。) (2认同)