Вопрос или проблема
Я хотел бы отключить event_activation
при модификации выключенного диска (правила udev в противном случае запускают vgchange
, когда обнаруживается изменение на выключенном диске). В справке сказано, что “lvm.conf загружается на этапе инициализации lvm”. Могу ли я перезагрузить lvm, чтобы заставить его повторно считать lvm.conf?
Если я установлю event_activation
в 0 в lvm.conf и запущу lvm dumpconfig
, он действительно сообщает новое значение, но, предположительно, не действует на него. Если необходимо, я могу просто отключить LVM вместо этого (система перезагружается после изменения диска) – есть ли способ это сделать? Странно, но добавление nolvm
в параметры ядра, похоже, не влияет на эту проблему – vgchange
все равно запускается, когда диск модифицируется.
Ответ или решение
Перезагрузка LVM с новым lvm.conf
Когда вы работаете с LVM (Logical Volume Manager) и хотите изменить его поведение в соответствии с конфигурацией в файле lvm.conf
, важно понимать, как эти изменения могут быть применены, особенно если вы сталкиваетесь с нежелательными активациями группы томов при изменении несмонтированного диска.
Проблема с Event Activation
Вы уже заметили, что параметр event_activation
по умолчанию может вызывать автоматические изменения в состояниях групп томов (например, с помощью команды vgchange
) при обнаружении изменений в диске, даже если этот диск не смонтирован. Это может быть проблемой, когда вы хотите внести изменения в disk и не хотите, чтобы LVM применял какие-либо автоматические действия.
Установка параметра event_activation
Чтобы исправить это, вы обратились к файлу конфигурации lvm.conf
. Изменение параметра event_activation
на 0
действительно должно отключить автоматическую активацию. Для этого выполните следующие шаги:
-
Откройте файл конфигурации
lvm.conf
для редактирования, используя команду, например:sudo nano /etc/lvm/lvm.conf
-
Найдите строку, содержащую
event_activation
, и измените её на:event_activation = 0
-
Сохраните изменения и закройте редактор.
Перезагрузка LVM для применения изменений
Как вы правильно заметили, LVM загружает файл конфигурации lvm.conf
только в фазе инициализации. Это означает, что изменения, сделанные в этом файле, не будут автоматически применены, пока LVM не будет перезагружен. Хотя нет прямой команды для "перезагрузки" LVM, есть несколько подходов для достижения желаемого результата:
-
Перезапуск службы LVM: На большинстве систем LVM может работать как служба. Вы можете перезапустить все связанные службы, используя:
sudo systemctl restart lvm2-lvmetad.service
Однако, следует отметить, что на некоторых дистрибутивах LVM не использует
lvmetad
, и этот метод может не сработать. -
Остановка и запуск LVM: Если перезапуск службы недоступен, вы можете временно остановить все соответствующие модули LVM с использованием команды:
sudo vgchange -an
Это деактивирует все группы томов. Чтобы вновь активировать их при необходимости (например, во время следующего запуска системы), используйте:
sudo vgchange -ay
Отключение LVM
Если вы хотите полностью отключить LVM до следующей перезагрузки системы, вы можете сделать это, добавив параметр nolvm
в параметры ядра во время загрузки. Однако, как вы правильно отметили, просто добавление этого параметра не всегда предотвращает автоматическую активацию. Если вам необходимо временно отключить LVM, вы можете сделать следующее:
-
Загрузите систему в однопользовательский режим или режим восстановления, если это допустимо в вашей среде.
-
Убедитесь, что все логические тома не активны, используя:
sudo vgchange -an
Заключение
Изменение параметра event_activation
в файловой конфигурации lvm.conf
должно помочь в решении вашей проблемы с автоматической активацией. Перезагрузка соответствующих служб LVM или полное отключение LVM до следующей перезагрузки системы также может служить хорошей практикой в подобной ситуации. Если у вас возникнут дополнительные вопросы или необходима помощь, не стесняйтесь обращаться за поддержкой.