自从我升级到 ubuntu 9.10 后,bind9 就无法启动:
Setting up bind9 (1:9.6.1.dfsg.P1-3ubuntu0.2) ...
* Starting domain name service... bind9 [fail]
invoke-rc.d: initscript bind9, action "start" failed.
dpkg: error processing bind9 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
bind9
E: Sub-process /usr/bin/dpkg returned an error code (1)
有任何想法吗?
答案1
您是否曾安装过 bind9 软件包,执行过非清除删除,然后从 /etc/bind/ 中删除了文件?如果是这样,解决方案是执行完全清除删除,允许 apt 重新安装配置文件)
$ sudo apt-get remove --purge bind9
$ sudo apt-get install bind9
答案2
尝试重新安装绑定包
答案3
部分找到了解决方案......
我必须删除 /etc/insserv.conf 中对 bind9 的引用,以便清除并重新安装能够正常工作。
我说部分原因,是因为现在 sendmail 无法正常工作,bind9 仍然无法正确启动。我将发布另一个单独的问题,因为这可能与我的 sendmail 配置有关,而不是 bind9。
谢谢您的帮助!
答案4
尝试在关闭 AppArmor 的情况下启动绑定。如果成功,则您可能遇到了这个错误,就像我一样。另一个提示是 /var/log/syslog 中的一行:
Dec 23 02:27:15 Pantheon kernel: [10704.337741] type=1503 audit(1261549635.405:346): operation="inode_permission" requested_mask="::r" denied_mask="::r" fsuid=116 name="/etc/ssl/openssl.cnf" pid=1383 profile="/usr/sbin/named"
您可以尝试清除 AppArmor 缓存目录(/etc/apparmor.d/cache),接触 /etc/apparmor.d/usr.sbin.named,并确保 bind 的 apparmor 配置(/etc/apparmor.d/usr.sbin.named)包含以下内容:
# ssl
/etc/ssl/openssl.cnf r,
然而,这些对我都不起作用。即使将 usr.sbin.named 放入 force-complain 目录(该目录仅用于记录规则,而不是强制执行)并重新启动,bind 也无法运行。配置是正确的,但 apparmor 仍然设法强制执行旧的、过时的配置,从而阻止新的 bind 运行。
直到 apparmor 2.3.1+1403-0ubuntu27.3 版本(karmic-proposed,urgency=low)进入存储库,或者除非您启用建议的更新,否则您所能做的就是禁用 apparmor。