最近将OpenWrt部署方式替换成LXC方式并配置了网口直通,但是无法重启或启动,PVE显示:
explicitly configured Ixc.apparmor.profile overrides the following settings: features:nesting
GUEST HOOK: 100 pre-stop
100 will be stopped.
GUEST HOOK: 100 pre-start
100 is starting, doing preparations.
__netdev_configure_container_common: 1314 File exists – Failed to rename network device “phys6lAln4” to “enp4s0”
lxc_setup_network_in_child_namespaces: 4059 File exists – Failed to setup netdev
lxc_setup: 3892 Failed to setup network
do_start: 1273 Failed to setup container “100”
sync_wait: 34 An error occurred in another process (expected sequence number 3)
__lxc_start: 2114 Failed to spawn container “100”
TASK ERROR: startup for container ‘100’ failed
因为从虚拟机更换成LXC方式时也更换了新固件,与以前通过LXC部署时间有一年多了,以为是固件的太新与当前的PVE不兼容;但是再重新找一个固件重新部署太麻烦,就没有重新换固件。又因为之前PVE也有其它一些问题,一般重启后就能恢复,然后尝试重启,但是PVE重启后OpenWrt可以随着启动,但是手动停止或者重启OpenWrt,就无法启动了。又坚信是PVE系统有问题,又重新在PVE网站官网下载了一个最新的8.3版本安装。安装完并导入原来的OpenWrt LXC后,DHCP又不能工作了,我一看这样,也不用测试能不能启动的问题了,直接又换回8.2.2版本。后来一直在想这个问题;随后在之前我写过的PVE部署LXC版OpenWrt的文章中发现当时的PVE版本是8.0.3;我想是不是PVE版本的问题?决定尝试一下更换成8.0.3版本。
更换后,OpenWrt就没有无法手动启动或者重启的问题了。
如果不想再换版本,还有一点折中的办法,就是将直OpenWrt容器直通口更换成虚拟接口方式。这样除了网络接口是虚拟的方式,OpenWrt还是以容器的方式部署运行。比起虚拟机还是很省资源的。