Ativação de volume LVM antes de montagens fstab

2

Estou tentando montar volumes LVM durante a inicialização do meu sistema Debian Squeeze. Como por algum motivo, os volumes / grupos de LVM estão inativos por padrão, eles precisam ser ativados antes que qualquer montagem possa ser feita. Além disso, o grupo de volumes ao qual meus volumes pertencem está em outro volume físico de LVM. Portanto, não posso usar o script /etc/init.d/lvm2 init padrão, mas escrevi o meu próprio, que ativa primeiro o primeiro nível de volumes LVM e depois os que eu quero montar:

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

SCRIPTNAME=/etc/init.d/lvm2_vtt

. /lib/lsb/init-functions

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

do_start()
{
    echo "bla"> /root/hah
    modprobe dm-mod 2> /dev/null || :
    /sbin/vgscan --ignorelockingfailure --mknodes || :
    /sbin/vgchange -aly --ignorelockingfailure || return 2
    /sbin/vgscan
        /sbin/vgchange -ay
        /sbin/lvmdiskscan
        /sbin/vgscan
        /sbin/vgchange -ay agvtt-volume
}

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

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

Esse script funciona, eu posso executá-lo manualmente e ele faz tudo, ele deve fazer. Eu o ativo usando update-rc.d lvm2_vtt defaults que funciona (apesar de reclamar que alguns runlevels não combinam):

~# ls -g /etc/rcS.d
total 4
-rw-r--r-- 1 root 447 Mar 24  2012 README
lrwxrwxrwx 1 root  24 Oct 23 12:18 S01mountkernfs.sh -> ../init.d/mountkernfs.sh
lrwxrwxrwx 1 root  14 Oct 23 12:18 S02udev -> ../init.d/udev
lrwxrwxrwx 1 root  26 Oct 23 12:18 S03mountdevsubfs.sh -> ../init.d/mountdevsubfs.sh
lrwxrwxrwx 1 root  18 Oct 23 12:18 S04bootlogd -> ../init.d/bootlogd
lrwxrwxrwx 1 root  18 Mar  1 11:26 S04lvm2_vtt -> ../init.d/lvm2_vtt
lrwxrwxrwx 1 root  21 Oct 23 12:18 S05hostname.sh -> ../init.d/hostname.sh
lrwxrwxrwx 1 root  25 Oct 23 12:18 S05hwclockfirst.sh -> ../init.d/hwclockfirst.sh
lrwxrwxrwx 1 root  22 Oct 23 12:18 S06checkroot.sh -> ../init.d/checkroot.sh
lrwxrwxrwx 1 root  20 Oct 23 12:18 S07hwclock.sh -> ../init.d/hwclock.sh
lrwxrwxrwx 1 root  24 Oct 23 12:18 S07ifupdown-clean -> ../init.d/ifupdown-clean
lrwxrwxrwx 1 root  27 Oct 23 12:18 S07module-init-tools -> ../init.d/module-init-tools
lrwxrwxrwx 1 root  17 Oct 23 12:18 S07mtab.sh -> ../init.d/mtab.sh
lrwxrwxrwx 1 root  20 Oct 23 12:18 S08checkfs.sh -> ../init.d/checkfs.sh
lrwxrwxrwx 1 root  18 Oct 23 12:18 S09ifupdown -> ../init.d/ifupdown
lrwxrwxrwx 1 root  21 Oct 23 12:18 S09mountall.sh -> ../init.d/mountall.sh
....

Então, meu script de inicialização é executado antes de mountall , que deve montar as entradas do fstab. Meu fstab agora parece o seguinte:

~# cat /etc/fstab

# the local partitions
proc                                      /proc            proc    defaults        0       0
UUID=07791c3e-5388-4edc-b30f-a4b4f2dbcb33 none             swap    sw              0       0
UUID=6522596a-210d-47ab-8894-e6259ffd99ee /                ext3    defaults        0       1

# our lvm volumes, secured and unsecured. Get the uuids using blkid.
UUID=66a66e81-9eb8-4ce8-a370-f3a48ece289e /space/secured   xfs     defaults        0       0
UUID=9e74cbd4-d3a0-4047-8466-74c00c14542a /space/unsecured xfs     defaults        0       0

# these are simpler aliases
/space/unsecured                          /unsecured       bind    bind            0       0
/space/secured                            /secured         bind    bind            0       0

Como você pode ver, os volumes LVM (sistema de arquivos xfs) são montados primeiro e, em seguida, uma ligação é criada para um local diferente.

O que estou vendo agora é que, após a inicialização, nem os volumes LVM são ativados nem montados corretamente. (Que eles não podem em um estado inativo.)

O que estou perdendo aqui?

    
por janoliver 01.03.2013 / 11:45

0 respostas

Tags