ArchiveNovember 2022

Openwrt + LXC 一些失败的尝试

O
  1. 21.02 系列,安装完后加载iptables规则失败,列表为空,但手动restart后正常。但放在启动脚本里reload却是不行。
  2. 22.03 系列,nft正常,但dnsmasq崩溃无法运行。

实在无法想象都是些什么神奇的问题。

22.03:
修改 /usr/share/lxc/config/openwrt.common.conf 注释掉
lxc.cap.drop = sys_admin

安装完dnsmasq-full后,修改/etc/init.d/dnsmasq的1172行:
procd_add_jail_mount $CONFIGFILE $DHCPBOGUSHOSTNAMEFILE $DHCPSCRIPT $DHCPSCRIPT_DEPENDS

procd_add_jail_mount $CONFIGFILE "/etc/dnsmasq.d" $DHCPBOGUSHOSTNAMEFILE $DHCPSCRIPT $DHCPSCRIPT_DEPENDS

注意在lxc中,貌似nft一次加载的配置文件大小或者行数是限制的,大概是4000-5000行?
Update: nft加载文件大小限制是nft实现的缺陷,可以参考 https://www.reddit.com/r/Proxmox/comments/scnoav/lxc_container_debian_11_nftables_geoblocking/
在rocky linux 9 中更新nft到最新版可以解决这个问题。

pve显示温度和硬盘信息

p

这玩意的修改到处都有,但感觉这位老哥写的不错 https://tty228.github.io/ 支持zenpower,支持硬盘休眠,防出错处理。问题是他使用的获取传感器值的方法有些问题,例如用smartctl 获取/dev/nvme设备信息时,由于web是跑在www-data用户权限在,无法访问/dev/nvme。导致脚本不正常了。所以需要给smartctl setuid一下: chmod +s /sbin/smartctl(直接chmod 777 /dev/nvme0无法解决问题)。

解决PVE 下的dkms build报错的一个方法

当涉及到dkms build的时候,需要先安装kernel header,但千万不要用
apt install pve-headers
因为不知道什么原因,会导致头文件 /usr/src/linux-headers-5.15.64-1-pve/include/generated/autoconf.h 被删除。然后dkms build的时候就会报错:
Error! Bad return status for module build on kernel: 5.15.64-1-pve (x86_64)
make.log里会提示“make oldconfig && make prepare”。但因为缺少了头文件,实际上这样是解决不了的。

需要用:
apt install pve-headers-$(uname -r)