清理在内核 3.2.0-0.bpo.3-amd64 上运行的 Debian squeeze 安装的引导过程,我在 /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
为了 ”挂载nfs”,我也尝试过: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 脚本?
答案1
要检查文件属于哪个包,请使用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 init 脚本中的一个错误:您被迫使用 init 脚本,而没有任何网络文件系统。我知道这很烦人。
如果您坚持删除它们,并且需要恢复更改,则必须以相反的顺序重新启用它们,因为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