Если система загружается с разваленным RAID (например, вследствие https://bugzilla.altlinux.org/show_bug.cgi?id=37737), то LVM не собирается автоматически, и после ожидания создаваемых им устройств (полторы минуты) предлагается залогиниться в аварийном режиме. Где достаточно ввести # vgchange -a y # exit и загрузка системы будет успешно продолжена. # rpm -qf /sbin/lvm lvm2-2.03.5-alt1.x86_64 Насколько это ожидаемое поведение?
После исправления bug 37737 появилось уточнение: LVM в любом случае не собирается автоматически. Похоже, что это связано # cat /lib/systemd/system/lvm2-pvscan@.service [Unit] Description=LVM event activation on device %i Documentation=man:pvscan(8) DefaultDependencies=no StartLimitIntervalSec=0 BindsTo=dev-block-%i.device Before=shutdown.target Conflicts=shutdown.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/sbin/lvm pvscan --cache --activate ay %i ExecStop=/sbin/lvm pvscan --cache %i В списке устройств я вижу только несколько блочных устройств, при том, что их гораздо больше: # systemctl list-units --all dev-block-259:4.device loaded active plugged WDS250G3X0C-00SJG0 5 dev-block-259:5.device loaded active plugged WDS250G3X0C-00SJG0 6 dev-block-8:97.device loaded active plugged WDC_WD3000HLFS-01MZUV0 1 Какие ссылки на тему: https://github.com/lvmteam/lvm2/issues/24 https://sourceware.org/git/?p=lvm2.git;a=commit;h=6b12930860a993624d6325aec2e9c561f4412aa9
Видимо, при загрузке что-то идёт не так: # journalctl -b -u lvm2-pvscan@259:4.service -- Logs begin at Thu 2020-01-30 06:10:12 MSK, end at Fri 2020-03-06 15:30:12 MSK. -- мар 06 12:53:15 hektor.office.etersoft.ru lvm[2133]: pvscan[2133] PV /dev/nvme0n1p5 online, VG lvm0 incomplete (need 2). мар 06 12:53:13 hektor.office.etersoft.ru systemd[1]: Starting LVM event activation on device 259:4... мар 06 12:53:13 hektor.office.etersoft.ru systemd[1]: Started LVM event activation on device 259:4.
(Ответ для Vitaly Lipatov на комментарий #2) > Видимо, при загрузке что-то идёт не так: > # journalctl -b -u lvm2-pvscan@259:4.service > -- Logs begin at Thu 2020-01-30 06:10:12 MSK, end at Fri 2020-03-06 15:30:12 > MSK. -- > мар 06 12:53:15 hektor.office.etersoft.ru lvm[2133]: pvscan[2133] PV > /dev/nvme0n1p5 online, VG lvm0 incomplete (need 2). > мар 06 12:53:13 hektor.office.etersoft.ru systemd[1]: Starting LVM event > activation on device 259:4... > мар 06 12:53:13 hektor.office.etersoft.ru systemd[1]: Started LVM event > activation on device 259:4. Нашёл исправление, которую должно устранять конкуренцию при запуске нескольких pvscan: https://sourceware.org/git/?p=lvm2.git&a=commitdiff&h=74a388cca15baa4149a24e37bccb421c53f726e5 Из него следует, что один из процессов должен создать каталог с именем volume group в /run/lvm/vgs_online. В данном случае этого не происходит (есть только [root@hektor ~]# ls /run/lvm/vgs_online/ -l итого 0 -rw------- 1 root root 0 мар 21 14:48 TMP [root@hektor ~]# ls /run/lvm/pvs_online/ -l итого 12 -rw------- 1 root root 12 мар 21 14:48 EAaoEOePvcFzvthMeYS3XtcBjcq1tCbV -rw------- 1 root root 13 мар 21 14:48 fCMIZoeM79WKTu0e6RywvE9PCUQqPUdH -rw------- 1 root root 14 мар 21 14:48 QFKtuYER3MtyeJUdYhmTEoannyP9vfww При том, что VG несколько больше: # pvs PV VG Fmt Attr PSize PFree /dev/md10 HOME lvm2 a-- <465,76g 304,00m /dev/md2 lvm0 lvm2 a-- <912,88g 0 /dev/md3 lvm0 lvm2 a-- 371,90g 271,90g /dev/md4 HYBRID lvm2 a-- 111,72g 0 /dev/md5 HYBRID lvm2 a-- 223,44g 0 /dev/md6 HYBRID lvm2 a-- 130,15g 324,00m /dev/nvme0n1p5 lvm0 lvm2 a-- <140,00g 796,00m /dev/nvme0n1p6 TMP lvm2 a-- 74,25g <1,16g /dev/sdg1 TMP lvm2 a-- <279,46g <179,43g UID, перечисленные в pvs_online, соответствуют трём последним PV из вывода pvs (и они были созданы последними). Возможно, остальные PV какие-то старые?
(Ответ для Vitaly Lipatov на комментарий #2) > Видимо, при загрузке что-то идёт не так: > # journalctl -b -u lvm2-pvscan@259:4.service > -- Logs begin at Thu 2020-01-30 06:10:12 MSK, end at Fri 2020-03-06 15:30:12 > MSK. -- > мар 06 12:53:15 hektor.office.etersoft.ru lvm[2133]: pvscan[2133] PV > /dev/nvme0n1p5 online, VG lvm0 incomplete (need 2). static int _online_pv_found(struct cmd_context *cmd, struct device *dev, struct dm_list *dev_args, struct volume_group *vg, struct dm_list *found_vgnames) { ... /* * Check if all the PVs for this VG are online. This is only * needed when autoactivating the VG which should be run only * when the VG is complete. If the arrival of this dev completes * the VG, then we want to activate the VG. */ dm_list_iterate_items(pvl, &vg->pvs) { if (!_online_pvid_file_exists((const char *)&pvl->pv->id.uuid)) pvids_not_online++; /* Check if one of the devs on the command line is in this VG. */ if (dev_args && dev_in_device_list(pvl->pv->dev, dev_args)) dev_args_in_vg = 1; } /* * Return if we did not find an online file for one of the PVIDs * in the VG, which means the VG is not yet complete. */ if (pvids_not_online) { log_print("pvscan[%d] PV %s online, VG %s incomplete (need %d).", getpid(), dev_name(dev), vg->name, pvids_not_online); return 1; } ...
Проблему удалось обойти отключением активации по событию появления устройства: /etc/lvm/lvm.conf # Configuration option global/event_activation. # Activate LVs based on system-generated device events. # When a device appears on the system, a system-generated event runs # the pvscan command to activate LVs if the new PV completes the VG. # Use auto_activation_volume_list to select which LVs should be # activated from these events (the default is all.) # When event_activation is disabled, the system will generally run # a direct activation command to activate LVs in complete VGs. event_activation = 0
ping
event_activation = 0 больше не помогает. Содержимое lsblk и blkid: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 32G 0 disk ├─sda1 8:1 0 255M 0 part /boot/efi └─sda2 8:2 0 31,8G 0 part ├─alt-gg 253:0 0 16G 0 lvm / └─alt-ez 253:1 0 15,7G 0 lvm sr0 11:0 1 1024M 0 rom /dev/sda1: UUID="6CB4-BA78" TYPE="vfat" PARTUUID="1ed3f02d-db93-a449-a880-4d492e9307a3" /dev/sda2: UUID="2UJ1Ya-L25G-clF5-H088-7cZS-76hF-7j1YyU" TYPE="LVM2_member" PARTUUID="d32b570b-3c1b-3749-9986-ee8db327634f" /dev/mapper/alt-gg: UUID="1b7fa562-9d4e-45e9-81bf-0c290efe678c" TYPE="ext4" /dev/mapper/alt-ez: UUID="c808ce56-f085-5543-809d-a6a958284b57" TYPE="crypto_LUKS"
Если хомяк не шифровать, система грузится.