如何從 /etc/init.d/ 中正確刪除 mountnfs
清理在核心 3.2.0-0.bpo.3-amd64 上執行的 Debian 擠壓安裝的引導過程,我在 /etc/init.d/ 中發現了幾個 mountnfs 腳本:
# ls /etc/init.d/ | grep mountnfs mountnfs-bootclean.sh mountnfs.sh umountnfs.sh
刪除失敗,使用如下命令:
# update-rc.d -f mountnfs remove update-rc.d: using dependency based boot sequencing
對於“ mountnfs ”,我也嘗試過:umountnfs、mountnfs-bootclean、nfs、nfs-common。
更新 #1 也嘗試過但沒有成功:umountnfs.sh、mountnfs.sh。
結果是 mountnfs-bootclean、mountnfs 和 unmountnfs.sh 仍在 /etc/init.d/ 及其對應的執行級別文件夾中。
僅使用刪除這些文件
rm
似乎不是正確的方法。我認為這些 init.d 文件屬於已安裝的軟體包。但是我真的找不到任何已安裝的 NFS 包:# dpkg --get-selections | grep nfs libnfsidmap2 install
如何從 init.d 中正確刪除所有 mountNFS 腳本?
要檢查文件屬於哪個包,請使用
dpkg -S
:$ dpkg -S /etc/init.d/mountnfs.sh initscripts: /etc/init.d/mountnfs.sh
mountnfs.sh 屬於一個名為 initscripts的基本包。
除非您編寫它們,否則您永遠不應該從 /etc/init.d/ 中刪除腳本。這就是實用程序 update-rc.d 存在的原因:以更簡單的方式從**/etc/rc*.d/**目錄中刪除它們的符號連結。
update-rc.d 要求您按腳本名稱呼叫腳本,並且由於它們的依賴關係,按此順序禁用它們應該可以工作:
update-rc.d mountnfs-bootclean.sh remove ### mountnfs-bootclean.sh first update-rc.d mountnfs.sh remove update-rc.d umountnfs.sh remove
但是,我上個月嘗試過,它會讓您的系統損壞(如果我記得很清楚,無法啟動 X)。事情是
mountnfs-bootclean.sh
做一些必要的系統清理,雖然它的名字並不暗示,它取決於mountnfs.sh
. 所以你也不能禁用。您可能會認為這是 Debian 初始化腳本中的一個錯誤:您被迫在沒有任何網路文件系統的情況下擁有初始化腳本。這很煩人,我知道。
如果您堅持刪除它們,並且需要還原更改,則必須以相反的順序重新啟用它們,因為
mountnfs-bootclean.sh
需要mountnfs.sh
先啟用:update-rc.d umountnfs.sh defaults update-rc.d mountnfs.sh defaults update-rc.d mountnfs-bootclean.sh defaults ### mountnfs-bootclean.sh last