Debian

如何從 /etc/init.d/ 中正確刪除 mountnfs

  • November 11, 2012

清理在核心 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

引用自:https://unix.stackexchange.com/questions/55455