需要一些有關 bind-chroot 的幫助
我們正在運行以下版本的bind 和bind-chroot
綁定-9.11.2-lp151.10.1.x86_64
綁定-chrootenv-9.11.2-lp151.10.1.x86_64
我們的自動化程式碼正在運行,僅將區域檔案新增至 /var/lib/named/etc/named.conf 而不是 /etc/named.conf
因此,為了在/etc/named.conf 中反映在/var/lib/named/etc/named.conf 中建立的區域文件,我在/etc 中創建了一個符號連結為「ln -s /var/lib /named/ etc/named.conf named.conf」反映如下 lrwxrwxrwx 1 root root 29 Dec 9 11:03named.conf -> /var/lib/named/etc/named.conf
現在,當我對 /var/lib/named/etc/named.conf 中的檔案進行更改並執行「名為重啟服務」時, /etc/named.conf 中的檔案無法載入
/var/log/messages 中的錯誤訊息如下
2021-12-09T11:04:46.684677+05:30 lavasadns1 systemd[1]: Stopped Berkeley Internet Name Domain (DNS). 2021-12-09T11:04:46.685049+05:30 lavasadns1 systemd[1]: Starting Berkeley Internet Name Domain (DNS)... 2021-12-09T11:04:46.735359+05:30 lavasadns1 named.init[2509]: Starting name server BIND cp: cannot stat '/etc/named.conf': No such file or directory 2021-12-09T11:04:46.844546+05:30 lavasadns1 named.init[2509]: open: /etc/named.conf: file not found 2021-12-09T11:04:46.847806+05:30 lavasadns1 systemd[1]: named.service: Control process exited, code=exited status=6 2021-12-09T11:04:46.848137+05:30 lavasadns1 systemd[1]: Failed to start Berkeley Internet Name Domain (DNS). 2021-12-09T11:04:46.848475+05:30 lavasadns1 systemd[1]: named.service: Unit entered failed state. 2021-12-09T11:04:46.848772+05:30 lavasadns1 systemd[1]: named.service: Failed with result 'exit-code'. 2021-12-09T11:05:31.657460+05:30 lavasadns1 systemd[1]: Starting Berkeley Internet Name Domain (DNS)... 2021-12-09T11:05:31.666976+05:30 lavasadns1 named.init[2573]: Name server configuration file /etc/named.conf does not exist.
並且符號連結的顏色更改為紅色。為什麼會發生這種情況?以及如何避免這個錯誤
答案1
啟動bind
/named
運行/usr/sbin/named.init
。
在那裡,有一個名為 的函數checkAndCopyConfigFiles
。
裡面有一行rm -f ${CHROOT_PREFIX}/${configfile}
您創建了一個從/etc/named.conf
到 的符號鏈接/var/lib/named/etc/named.conf
,現在當該腳本運行時,它被刪除了/var/lib/named/etc/named.conf
。
因此,腳本刪除了/var/lib/named/etc/named.conf
,並嘗試複製符號連結的端點 ,/etc/named.conf
該端點不再存在,因為它已經刪除了它。
這會導致懸空的符號連結引用,從而導致red
.
你精心製作的named.conf
不再存在。
如果你能拿回來,你有3個選擇。
- 讓您的程式碼更改
/etc/named.conf
和任何其他文件,/etc/
而不是在/var/lib/named/etc
. - 編輯
/usr/sbin/named.init
並製作自己的來處理這種情況。 - 刪除
bind-chrootenv
並製作自己的啟動腳本。