Como lidar com o fato de o Gentoo não inicializar devido a uma falha na inicialização do tipo de travamento na checkroot?

2

Meu sistema é baseado em Goken Linux baseado em uma partição raiz baseada em LVM.

O sistema inicializa com sucesso através do initrd. Ele inicia o init do kernel principal, mas falha ao tentar verificar a unidade raiz (/etc/init.d/checkroot).

O erro relatado é que a unidade raiz (/ dev / vg / lv ) não está disponível para fsck. , qualquer que seja .

[Nota: eu descobri uma solução para esse problema e estou postando isso para ajudar outras pessoas. Se você conhece uma abordagem melhor, eu adoraria ouvir sobre isso!]

    
por kwutchak 22.08.2009 / 21:37

1 resposta

1

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
    
por 22.08.2009 / 21:48