2

Я пытаюсь смонтировать тома LVM во время запуска моей системы Debian Squeeze. Поскольку по какой-то причине тома / группы LVM по умолчанию неактивны, их необходимо активировать, прежде чем можно будет выполнить любое подключение. Кроме того, группа томов, к которой принадлежат мои тома, находится на другом физическом томе LVM. Поэтому я не могу использовать сценарий инициализации /etc/init.d/lvm2 по умолчанию, но написал свой собственный, который сначала активирует тома LVM первого уровня, а затем те, которые я хочу смонтировать:

~# 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

Этот скрипт работает, я могу выполнить его вручную, и он делает все, что должен. Я активирую его, используя update-rc.d lvm2_vtt defaults который работает (хотя он жалуется на то, что некоторые уровни выполнения не совпадают):

~# 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
....

Итак, мой скрипт инициализации выполняется перед mountall , который должен монтировать записи fstab. Мой fstab теперь выглядит следующим образом:

~# 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

Как видите, тома LVM (файловая система xfs) сначала монтируются, а затем создается некоторая привязка для другого расположения.

Теперь я вижу, что после загрузки ни тома LVM не активированы, ни смонтированы правильно. (Что они не могут в неактивном состоянии.)

Что мне здесь не хватает?

0