Debian
重建 /etc/rc?.d/ 連結
對 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。