Debian

重建 /etc/rc?.d/ 連結

  • April 18, 2010

對 Debian Lenny 系統的正常文件系統檢查觸發了 fsck,這會破壞/etc/rc?.d層次結構中的一些連結(不幸的是,我沒有保留列表)。

該系統似乎可以正常啟動和執行,但我擔心它會為將來儲存麻煩。

是否有一種簡單(相當自動)的方法來重建這部分系統?據我了解,連結通常由使用 update-rc.d 的包 postinst 腳本操作(並且我沒有對已安裝的預設值進行任何更改)。

沒有任何更好的想法,我的計劃是以下之一:

  • 將列表與另一個類似系統進行比較,以確定哪些包需要修復其連結。
  • 等到系統升級到 Squeeze(希望不會太久:^)並假設批量升級包將恢復所有失去的連結。

如果您沒有備份,您可以嘗試安裝rcconf並查看它是否會重新創建連結。但實際上所有 Debian 初始化文件都會在每個腳本的頂部包含以下資訊:

### 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告訴你這個初始化腳本的 Start 符號連結應該進入/etc/init{2,3,4,5}.d/S<XX>blah.

# Default-Stop: 0 1 6意味著 Kill 連結做到/etc/init{0,1,6}.d/K<XX>blah.

這裡的問題是<XX>部分。這是您的程序啟動和停止的順序,因此如果您不知道該順序,您可能會以掛起的引導告終。例如,當您嘗試在 Networking 之前啟動 NFS。

引用自:https://serverfault.com/questions/133505