O problema pode ser que o esquema de bloqueio do LVM não esteja permitindo que o grupo de volumes seja ativado.
Se o lvm.conf tiver:
/etc/lvm/lvm.conf
locking_type = 1
:
locking_dir = "/var/lock/lvm"
Em seguida, o diretório de bloqueio deve ser gravável para o grupo de volumes a ser ativado. Este é um problema no estágio de checkroot, já que o sistema de arquivos raiz é somente de leitura neste momento.
É possível definir o locking_type como 0, mas isso acarreta riscos de perda de dados.
Vários comandos lvm aceitam a opção --ignorelockingfailure, que permite que o bloqueio seja temporariamente contornado. Isso é usado nos scripts initrd start.
Para que o checkroot funcione, adicionei duas linhas antes de começar.
&& ! is_net_fs / && ! is_union_fs / ; then
+ lvm vgchange -ayl --ignorelockingfailure
+ lvm vgmknodes --ignorelockingfailure
if touch -c / >& /dev/null ; then