Script /etc/init.d/lvm2 não executado durante a inicialização


2

Na inicialização, quero que o /etc/init.d/lvm2script enviado com o Debian squeeze seja executado. Eu corri update-rc.d lvm2 enablee verifiquei se os links simbólicos são criados nas /etc/rcX.dpastas:

# find /etc -name "*lvm2"
/etc/rc6.d/K09lvm2
/etc/rc0.d/K09lvm2
/etc/init.d/lvm2
/etc/rcS.d/S05lvm2

A execução manual do script funciona e os volumes lvm são ativados corretamente, mas após a inicialização nada aconteceu. Não há nada sobre o lvm no / var / log. Tentei adicionar a linha logger Starting lvmao início da start()função no script init, mas, novamente, nada aparece nos logs.

Como rastrear o erro e descobrir por que isso não foi iniciado corretamente? Eu gostaria de evitar colocar coisas que acompanham a distribuição na rc.local.


Deixe-me mostrar o script init também. Uma observação adicional: os comandos anteriores [ -x /sbin/vgchange ] || exit 0também não são executados, portanto, não pode ser essa linha que está causando o encerramento do script. À primeira vista, também não vi loops de dependência ou algo parecido entre os scripts de inicialização.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          lvm2 lvm
# Required-Start:    mountdevsubfs udev
# Required-Stop:
# Should-Start:      mdadm-raid cryptdisks-early multipath-tools-boot
# Should-Stop:       umountroot mdadm-raid
# X-Start-Before:    checkfs mountall
# X-Stop-After:      umountfs
# Default-Start:     S
# Default-Stop:      0 6
### END INIT INFO

SCRIPTNAME=/etc/init.d/lvm2

. /lib/lsb/init-functions

[ -x /sbin/vgchange ] || exit 0

do_start()
{
        logger starting lvm
        modprobe dm-mod 2> /dev/null || :
        /sbin/vgscan --ignorelockingfailure --mknodes || :
        /sbin/vgchange -aly --ignorelockingfailure || return 2
}

do_stop()
{
        /sbin/vgchange -aln --ignorelockingfailure || return 2
}

case "$1" in
  start)
        log_begin_msg "Setting up LVM Volume Groups"
        do_start
        case "$?" in
                0|1) log_end_msg 0 ;;
                2) log_end_msg 1 ;;
        esac
        ;;
  stop)
        log_begin_msg "Shutting down LVM Volume Groups"
        do_stop
        case "$?" in
                0|1) log_end_msg 0 ;;
                2) log_end_msg 1 ;;
        esac
        ;;
  restart|force-reload)
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop}" >&2
        exit 3
        ;;
esac

Esta pode ser uma pergunta estúpida, mas você tem certeza de que as permissões estão corretas no seu script e está marcado como executável? Coisa simples de ignorar, mas pode ser o caso ... O que é ls -lshow?
Nerdwaller 26/03

11
Eu verifiquei, eles são #-rwxr-xr-x
janoliver

11
Pode ser porque o nível de execução padrão do LMV2 é 'S'. Esclareci que no bug # 711147
d -_- b
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.