1

Имею две группы томов. При выключении сервис lvm выпадает с ошибкой как будто не может найти какую-то команду. Что интересно - когда была одна группа томов, никаких ошибок при выключении не было.

[ebuild   R    ] sys-fs/lvm2-2.02.98  USE="lvm1 readline thin udev -clvm -cman (-selinux) -static -static-libs" 0 kB
[ebuild   R    ] sys-apps/openrc-0.11.8  USE="ncurses pam unicode -debug -newnet (-prefix) (-selinux) -static-libs" 0 kB

2

fragment⇓ пишет:

При выключении сервис lvm выпадает с ошибкой как будто не может найти какую-то команду.

а текст ошибки предлагается угадать?

95% процентов проблем находятся между клавиатурой и стулом.

3

Fat-Zer пишет:
fragment⇓ пишет:

При выключении сервис lvm выпадает с ошибкой как будто не может найти какую-то команду.

а текст ошибки предлагается угадать?

А где её можно посмотреть? Я весь /var/log перерыл, не нашёл логов выключения.

4

fragment⇓ пишет:

А где её можно посмотреть? Я весь /var/log перерыл, не нашёл логов выключения.

в /etc/rc.conf посставь rc_logger="YES"

[added]
а ещё проще ручками отключи lvm: /etc/init.d/lvm stop
для чистоты эксперемента желательно размонтировать всё, что размонтируется...
ЗЫ: корень на lvm'е или нет?

95% процентов проблем находятся между клавиатурой и стулом.

5

fragment пишет:

Я весь /var/log перерыл, не нашёл логов выключения.

Посмотри

/var/log/kernel/current

Или

dmesg | grep -i lvm

Названия volume group не одинаковые случайно?

6

Fat-Zer пишет:

ЗЫ: корень на lvm'е или нет?

Нет, lvm на файлохранилище.

Кусок лога:

* Shutting down the Logical Volume Manager
 *   Shutting Down LVs & VGs ...
  Command failed with status code 2.
  No such command.  Try 'help'.
 * Failed
 [ !! ]
 * Finished Shutting down the Logical Volume Manager

7

animal пишет:

Названия volume group не одинаковые случайно?

Нет, разные.

8

Вот кусок скрипта /etc/init.d/lvm:

...
then
    einfo "Shutting down the Logical Volume Manager"
    

        VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix 2> /dev/null)

        if [ "$VGS" ]
        then
            ebegin "  Shutting Down LVs & VGs"
            #still echo stderr for debugging
            lvm_commands="#! ${lvm_path} --config '${config}'\n"
            # Extra PV find pass because some devices might not have been available until very recently
            lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${VGS}\n"
            # Now make the nodes
            lvm_commands="${lvm_commands}vgchange --sysinit -a ln\n"
            # Order of this is important, have to work around dash and LVM readline
            printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
            eend $? "Failed"
        fi

    einfo "Finished Shutting down the Logical Volume Manager"
...

Смущает это:

lvm_commands="#! ${lvm_path} --config '${config}'\n"

Что это такое?

9

fragment, а при ручном старте/стопе ошибок нет?

fragment⇓ пишет:

Кусок лога:

посмотри что он там запускает... добавь в скриптик пару строчек: http://bpaste.net/show/95382/
потом можно будет проверить ручками...

95% процентов проблем находятся между клавиатурой и стулом.

10

/etc/init.d/lvm -d stop более информативен.

11

При ручном стопе такая же фигня:

libra ~ # /etc/init.d/lvm stop
 * WARNING: you are stopping a boot service
 * Shutting down the Logical Volume Manager
 *   Shutting Down LVs & VGs ...
  Command failed with status code 2.
  No such command.  Try 'help'.
 * Failed                                                                                     [ !! ]
 * Finished Shutting down the Logical Volume Manager

Стартует нормально.

12

Macumazan пишет:

/etc/init.d/lvm -d stop более информативен.

Спотыкается вот тут:

+ /sbin/lvm /proc/self/fd/0 --config 'global { locking_dir = "/run/lock/lvm" }'
  Command failed with status code 2.
  No such command.  Try 'help'.
+ eend 2 Failed
 * Failed                                                                                                                  [ !! ]

13

fragment⇓ пишет:

Что это такое?

дык это шибенг обычный... в данном случае, вроде, не особо важный ИМХО.

95% процентов проблем находятся между клавиатурой и стулом.

14

Fat-Zer⇓ пишет:

посмотри что он там запускает... добавь в скриптик пару строчек: http://bpaste.net/show/95382/

fixed: http://bpaste.net/show/95384/

95% процентов проблем находятся между клавиатурой и стулом.

15

Fat-Zer пишет:
Fat-Zer⇓ пишет:

посмотри что он там запускает... добавь в скриптик пару строчек: http://bpaste.net/show/95382/

fixed: http://bpaste.net/show/95384/

Зачем это?

16

fragment⇓ пишет:

Зачем это?

печатает «скрипт», который lvm'у скармливается... можно будет по-одной команды запускать...

95% процентов проблем находятся между клавиатурой и стулом.

17

Fat-Zer пишет:
fragment⇓ пишет:

Зачем это?

печатает «скрипт», который lvm'у скармливается... можно будет по-одной команды запускать...

Так я уже нашёл команду на которой затык происходит.

18

fragment⇓ пишет:

Так я уже нашёл команду на которой затык происходит.

это просто «интерпретатор», которому на вход подаются комманды:

fragment⇓ пишет:

printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null

с тем же успехом можно обнаружить, что init-скрипты выполняет /bin/sh...

95% процентов проблем находятся между клавиатурой и стулом.

19

Добавил эти строчки, куда теперь смотреть?

20

А что скажет

vgchange -an

?

21

fragment⇓ пишет:

Добавил эти строчки, куда теперь смотреть?

/etc/init.d/lvm stop
и смотри, что распечатал...

потом перезапусти сервис и по-одной команде скармливай в /sbin/lvm... на какой помрёт той и тапки...

95% процентов проблем находятся между клавиатурой и стулом.

22

Fat-Zer пишет:
fragment⇓ пишет:

Добавил эти строчки, куда теперь смотреть?

/etc/init.d/lvm stop
и смотри, что распечатал...

потом перезапусти сервис и по-одной команде скармливай в /sbin/lvm... на какой помрёт той и тапки...

Вот что он вывел:

* Running lvm script:
 * #! /sbin/lvm --config 'global { locking_dir = "/run/lock/lvm" }'\nlvchange --sysinit -a ln   data
  vol \nvgchange --sysinit -a ln\n
  Command failed with status code 2.
  No such command.  Try 'help'.
 * Failed                                                                                                                    [ !! ]

Какую первую команду нужно скормить?

23

Запустил lvm, потом по одной скормил команды:

libra ~ # lvchange --sysinit -a ln   data
libra ~ # lvchange --sysinit -a ln   vol
libra ~ # vgchange --sysinit -a ln
  0 logical volume(s) in volume group "data" now active
  0 logical volume(s) in volume group "vol" now active

Что ему нужно, не пойму?

24

fragment⇓ пишет:

Запустил lvm, потом по одной скормил команды:

можно заменить echo на printf "%b" в скрипте, чтобы он по-человечески вывел...

перевод строки после «data» это артефакт копипасты или так оно и есть?

95% процентов проблем находятся между клавиатурой и стулом.

25

Fat-Zer пишет:

перевод строки после «data» это артефакт копипасты или так оно и есть?

Так оно и есть.

26

fragment⇓ пишет:

Так оно и есть.

а /bin/sh на что ссылается?

попробуй в разных установленных шелах (sh/bash от себя/от root'а) повыполнять:

asd=$(echo -e 'qwe\nzxc'); echo $asd

должно выводить в одну строку... если где-то в две, то надо курить... гашишь...

95% процентов проблем находятся между клавиатурой и стулом.

27

У меня только bash установлен. И под моим юзером, и под рутом указанная команда выводит в одну строку.

28

fragment⇓ пишет:

У меня только bash установлен. И под моим юзером, и под рутом указанная команда выводит в одну строку.

я к вечеру уже туго соображаю... так что пока ничего путного не предложу...

95% процентов проблем находятся между клавиатурой и стулом.