重build/etc/rc?.d/链接

Debian Lenny系统上的常规文件系统检查触发了一个fsck,并且在/etc/rc?.d层次结构中包含了一些链接(不幸的是我没有保留一个列表)。

这个系统似乎开机并正常运行,但我担心它为未来储存了麻烦。

有一个简单的(相当自动的)重build这个系统的一部分? 据我所知,这些链接通常是由包postinst脚本使用update-rc.d操作的(而且我还没有对安装的默认设置做任何更改)。

没有更好的想法,我的计划是:

  • 与另一个类似的系统区分一个列表,以确定哪些包需要链接修复。
  • 等到系统升级到Squeeze(希望不会太长时间:^),并假设大规模升级包将恢复所有缺失的链接。

如果你没有备份,你可以尝试安装rcconf ,看看它是否会重新创build链接。 但实际上,所有的Debian init文件都会在每个脚本的顶部有以下信息:

 ### BEGIN INIT INFO # Provides: inetd # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start or stop the xinetd daemon. ### END INIT INFO 

根据这些信息,你可以用一些基本的shell脚本部分地恢复所有的东西。

# Default-Start: 2 3 4 5告诉你,启动符号链接到这个初始化脚本应该进入/etc/init{2,3,4,5}.d/S<XX>blah

# Default-Stop: 0 1 6表示杀死链接进入/etc/init{0,1,6}.d/K<XX>blah

这里的问题是<XX>部分。 这是您的stream程启动和停止的顺序,所以如果您不知道订单,最终可能会导致挂起。 例如,当您尝试在networking之前启动NFS时。