Назад | Перейти на главную страницу

Восстановление /etc/rc?.d/ ссылок

Обычная проверка файловой системы в системе Debian Lenny вызвала ошибку fsck, которая уничтожила несколько ссылок в /etc/rc?.d иерархия (список, к сожалению, не вел).

Кажется, что система загружается и работает нормально, но меня беспокоит, что в будущем она сохранит проблемы.

Есть ли простой (довольно автоматический) способ перестроить эту часть системы? Насколько я понимаю, ссылками обычно управляют сценарии postinst пакета с помощью update-rc.d (и я не внес никаких изменений в установленные значения по умолчанию).

Без каких-либо лучших идей мой план один из:

Если у вас нет резервных копий, вы можете попробовать установить 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

Основываясь только на этой информации, вы могли частично восстановить все с помощью базовых сценариев оболочки.

# Default-Start: 2 3 4 5 сообщает вам, что символические ссылки Start на этот сценарий инициализации должны идти в /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> часть. Это порядок запуска и остановки ваших процессов, поэтому, если вы не знаете порядок, вы потенциально можете получить зависшую загрузку. Например, когда вы пытаетесь запустить NFS перед Networking.