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

Debian Squeeze vzquota

По-видимому, я получил Debian Squeeze (Debian 6) для работы на VPS с использованием debootstrap и chroot, как описано Вот.
Последующая установка пакетов harden, exim4, mysql-server частично завершилась неудачно.

Релевантная информация:

insserv: warning: script 'S10vzquota' missing LSB tags and overrides
insserv: warning: script is corrupt or invalid: /etc/init.d/../rc6.d/S00vzreboot
insserv: warning: script 'vzquota' missing LSB tags and overrides
insserv: There is a loop between service vzquota and stop-bootlogd if started
insserv:  loop involving service stop-bootlogd at depth 2
insserv:  loop involving service vzquota at depth 1
insserv:  loop involving service rsyslog at depth 1
insserv: Starting vzquota depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting vzquota depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: There is a loop between service vzquota and stop-bootlogd if started
insserv: Starting vzquota depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting vzquota depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing exim4-base (--configure):
 subprocess installed post-installation script returned error exit status 1

Какие-либо предложения?

Ключевые слова: vzquota debian squeeze, установка vps, виртуальный частный сервер.

Я проверил vzquota и обнаружил, что он не соответствует стандарту Debian 6.0 (сценарии инициализации) - вполне естественно, поскольку в то время провайдер поддерживает только 5.0.

Перед моим исправлением:

#!/bin/sh
start() {
    [ -e "/dev/vzfs" ] || mknod /dev/vzfs b 0 115
    rm -f /etc/mtab >/dev/null 2>&1
    echo "/dev/vzfs / reiserfs rw,usrquota,grpquota 0 0" > /etc/mtab
    mnt=`grep -v " / " /proc/mounts`
    if [ $? == 0 ]; then
        echo "$mnt" >> /etc/mtab
    fi 
}
case "$1" in
  start)
        start
        ;;
  *)
    exit
esac 

Я добавил следующую часть в /etc/init.d/vzquota (не забудьте удалить вторую строку shabang):

#!/bin/sh
### BEGIN INIT INFO
# Provides:                 vzquota
# Required-Start:
# Required-Stop:
# Should-Start:             $local_fs $syslog
# Should-Stop:              $local_fs $syslog
# Default-Start:            0 1 2 3 4 5 6
# Default-Stop:
# Short-Description:        Fixed(?) vzquota init script
### END INIT INFO

И установка прошла успешно. Но после перезагрузки для проверки моих изменений я обнаружил, что исходный файл снова вступил в силу.

Может быть, кто-то еще может предложить более долговечное решение.

Edit0: Когда я наконец решил отправить отчет об ошибке, я обнаружил этот. Поэтому предлагаемый мной обходной путь может быть полезен людям, не имеющим доступа к файлам, которые необходимо исправить.

если вы не можете изменить скрипт OpenVZ sh, который создает этот файл, вы можете просто сделать что-то вроде этого:

  • 1: cp /etc/init.d/vzquota /etc/init.d/vzquota.original (не требуется, но всегда полезно иметь резервные копии)

  • 2: Просто отредактируйте файл vzquota с помощью nano или vi с помощью патча, предоставленного benjamin, и скопируйте измененный файл в /etc/init.d/vzquota.works

  • 3: Создайте файл /etc/init.d/vzquotafix с этим содержимым:

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:                 vzquotafix
    # Required-Start:
    # Required-Stop:
    # Should-Start:             $local_fs $syslog
    # Should-Stop:              $local_fs $syslog
    # Default-Start:            2 3 4 5
    # Default-Stop:             0 1 6
    # Short-Description:        Fix for vzquota init script
    ### END INIT INFO
    set -e
    cat /etc/init.d/vzquota.works > /etc/init.d/vzquota
    exit 0
    
  • 4: chmod 755 /etc/init.d/vzquotafix

  • 5: update-rc.d vzquotafix по умолчанию

При каждом перезапуске этот сценарий заменяет поврежденный файл vzquota, созданный OpenVZ.