我想使用LXC引导一个Arch实例。几乎所有操作都正常,但在尝试使用dhcpcd配置接口时,我遇到了以下错误:
# dhcpcd eth0
dhcpcd[4213]: version 5.6.4 starting
dhcpcd[4213]: eth0: if_init: Read-only file system
dhcpcd[4213]: eth0: interface not found or invalid这似乎是dhcpcd试图修改/proc/sys/net/ipv4/conf/eth0/promote_secondaries的直接结果:
4210 open("/proc/sys/net/ipv4/conf/eth0/promote_secondaries", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EROFS (Read-only file system)
4210 writev(2, [{"dhcpcd[4210]: eth0: if_init: Read-only file system", 50}, {"\n", 1}], 2) = 51我可以使用bind挂载来破解它:
# touch /tmp/promote_secondaries
# mount -o bind /tmp/promote_secondaries \
/proc/sys/net/ipv4/conf/eth0/promote_secondaries但这似乎是个糟糕的主意。有没有办法让dhcpcd在没有这个黑客攻击的情况下在LXC下运行?为什么对这个sysctl的写访问在LXC下不可用?
发布于 2013-04-24 21:00:09
原因是,在启动时,容器在/proc结构之上挂载/proc/sys的只读版本。
容器内:
# grep proc /proc/mounts
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
proc /proc/sys proc ro,relatime 0 0您可以安装它(或挂载-o重装,rw),您的问题就会消失。
umount /proc/sys只读/proc/sys目录旨在保护主机(总体稳定性)不受LXC容器(意外)修改的影响,因此上述语句确实意味着有风险。
发布于 2013-01-25 21:06:00
我也有同样的问题。我不知道对于ro文件系统一般可以做些什么,但是为了解决dhcp问题,我使用dhclient而不是dhcpcd。dhclient不尝试在/proc/sys上写任何东西。
https://serverfault.com/questions/471950
复制相似问题