dispositivos lvm em / dev / mapper ausentes

21

Estou usando o Debian squeeze e executando o LVM sobre o software RAID 1. Acabei de descobrir acidentalmente que a maioria dos links abaixo /dev/mapperestá ausente, embora meu sistema pareça estar funcionando corretamente.

Não tenho certeza do que aconteceu. A única coisa que posso imaginar que causou foi a minha tentativa fracassada de fazer com que um contêiner LXC fedora funcionasse. Acabei excluindo um diretório /cgroup/laughlincorrespondente ao contêiner, mas não consigo imaginar por que isso deveria ter causado o problema. /dev/mapperolhou (fiz algumas alterações, veja abaixo) aproximadamente como

orwell:/dev/mapper# ls -la
total 0
drwxr-xr-x  2 root root     540 Apr 12 05:08 .
drwxr-xr-x 22 root root    4500 Apr 12 05:08 ..
crw-------  1 root root  10, 59 Apr  8 10:32 control
lrwxrwxrwx  1 root root       7 Mar 29 08:28 debian-root -> ../dm-0
lrwxrwxrwx  1 root root       8 Apr 12 03:32 debian-video -> ../dm-23

O debian-video corresponde a um LV que eu acabei de criar.

No entanto, tenho vários VGs no meu sistema, correspondendo a 4 VGs espalhados por 4 discos. vgs

orwell:/dev/mapper# vgs
  VG         #PV #LV #SN Attr   VSize   VFree  
  backup       1   2   0 wz--n- 186.26g  96.26g
  debian       1   7   0 wz--n- 465.76g 151.41g
  olddebian    1  12   0 wz--n- 186.26g  21.26g
  testdebian   1   3   0 wz--n- 111.75g  34.22g

Eu tentei correr

 /dev/mapper# vgscan --mknodes

e alguns dispositivos foram criados (veja a saída abaixo), mas não são links simbólicos para os dispositivos dm como deveriam ser, então não tenho certeza se isso é inútil ou pior. Eles atrapalhariam a recreação dos links corretos? Devo excluir esses dispositivos novamente?

Eu acredito que o udev cria esses links, então uma reinicialização resolveria esse problema ou eu obteria um sistema não inicializável? O que devo fazer para corrigir isso? Há alguma verificação de diagnóstico / sanidade que eu deva executar para garantir que não haja outros problemas que eu não tenha notado? Agradecemos antecipadamente por qualquer assistência.

orwell:/dev/mapper# ls -la
total 0
drwxr-xr-x  2 root root     540 Apr 12 05:08 .
drwxr-xr-x 22 root root    4500 Apr 12 05:08 ..
brw-rw----  1 root disk 253,  1 Apr 12 05:08 backup-local_src
brw-rw----  1 root disk 253,  2 Apr 12 05:08 backup-video
crw-------  1 root root  10, 59 Apr  8 10:32 control
brw-rw----  1 root disk 253, 15 Apr 12 05:08 debian-boot
brw-rw----  1 root disk 253, 16 Apr 12 05:08 debian-home
brw-rw----  1 root disk 253, 22 Apr 12 05:08 debian-lxc_laughlin
brw-rw----  1 root disk 253, 21 Apr 12 05:08 debian-lxc_squeeze
lrwxrwxrwx  1 root root       7 Mar 29 08:28 debian-root -> ../dm-0
brw-rw----  1 root disk 253, 17 Apr 12 05:08 debian-swap
lrwxrwxrwx  1 root root       8 Apr 12 03:32 debian-video -> ../dm-23
brw-rw----  1 root disk 253, 10 Apr 12 05:08 olddebian-etch_template
brw-rw----  1 root disk 253, 13 Apr 12 05:08 olddebian-fedora
brw-rw----  1 root disk 253,  8 Apr 12 05:08 olddebian-feisty
brw-rw----  1 root disk 253,  9 Apr 12 05:08 olddebian-gutsy
brw-rw----  1 root disk 253,  4 Apr 12 05:08 olddebian-home
brw-rw----  1 root disk 253, 11 Apr 12 05:08 olddebian-lenny
brw-rw----  1 root disk 253,  7 Apr 12 05:08 olddebian-msi
brw-rw----  1 root disk 253,  5 Apr 12 05:08 olddebian-oldchresto
brw-rw----  1 root disk 253,  3 Apr 12 05:08 olddebian-root
brw-rw----  1 root disk 253, 14 Apr 12 05:08 olddebian-suse
brw-rw----  1 root disk 253,  6 Apr 12 05:08 olddebian-vgentoo
brw-rw----  1 root disk 253, 12 Apr 12 05:08 olddebian-wsgi
brw-rw----  1 root disk 253, 20 Apr 12 05:08 testdebian-boot
brw-rw----  1 root disk 253, 18 Apr 12 05:08 testdebian-home
brw-rw----  1 root disk 253, 19 Apr 12 05:08 testdebian-root
Faheem Mitha
fonte
Serei o primeiro a declarar o óbvio aqui. Faça backup dos seus dados importantes nessa caixa imediatamente e, em seguida, diagnostique se a caixa é mangueira ou não.
Rfelsburg
4
Você deveria tentar /etc/init.d/lvm2 start. Ele fez o truque para mim (mas eu não estava exatamente na sua situação).
Totor
Obrigado @Totor pelo seu comentário; você acabou de salvar meu dia! :-)
Valentin

Respostas:

16

Hoje em dia, /devtmpfs é criado a partir do zero a cada inicialização udev. Você pode reiniciar com segurança e esses links voltarão.

Você também deve encontrar links simbólicos do LVM para os /dev/dm-Xnós nos /dev/<vg>diretórios, um diretório para cada grupo de volumes. No entanto, esses nós recriados por vgscan --mknodestambém funcionarão bem, supondo que eles tenham os números maiores / menores certos - e é uma suposição segura de que eles foram criados corretamente.

Provavelmente, você também udevpode recriar os links simbólicos usando udevadm triggeruma correspondência apropriada, testando --dry-runaté que esteja correto. Dificilmente, parece que vale a pena o esforço quando uma reinicialização também o corrige.

camh
fonte
Obrigado pela resposta. Um pedido de esclarecimento: quando você diz "esses nós recriados também funcionarão bem", você está se referindo a "os nós / dev / dm-X", certo? O que você quer dizer com "recriado" aqui e também "também funciona bem" em que sentido? Funciona bem para quê? Desculpe minha lentidão. Presumo que todos os dispositivos LVM sejam recriados a partir de informações armazenadas em /etc/lvm/archive?
Faheem Mitha 12/04
Quero dizer os nós criados por vgscan --mknodes. Eles não são os links simbólicos originais, mas são os nós de desenvolvimento do bloco que os links simbólicos apontariam. Você deve encontrar, por exemplo, /dev/olddebian/rootum link simbólico para ../dm-3, que terá o mesmo maior: números menores que os recriados /dev/mapper/olddebian-root.
CAMH
Obrigado pelo esclarecimento. Eu verifiquei se o que você diz estava correto para / dev / mapper / debian-video, que era um dos meus dois links simbólicos intactos. :-) Acabei de ler sobre os números de dispositivos principais / secundários. Obrigado pela resposta educacional.
Faheem Mitha
38

Eu apenas tive um problema semelhante ao que você descreve, embora, para mim, tenha acontecido quando eu estava tentando instalar o novo Ubuntu 11.10 Oneiric Ozelot em um volume LVM. Eu fiz o seguinte para configurar o lvm em um sistema de inicialização ao vivo (os volumes lógicos que eu precisava já estavam presentes):

apt-get install lvm2
vgscan --mknodes -v

Agora lvscan -vmostrei meus volumes, mas eles não estavam dentro /dev/mappernem dentro /dev/<vg>/. Finalmente, descobri que precisava ativar o grupo de volumes, assim:

vgchange -a y <name of volume group>

O comando acima criou todos os arquivos de dispositivo ausentes para mim. Agora eu poderia iniciar o programa de instalação e ele encontraria os volumes lvm e me permitiria instalar neles.

Encontrar essas informações no google foi difícil, por isso escrevo essa resposta na esperança de que outras pessoas tenham mais facilidade com elas - daí o contexto aprofundado e o nomeropping.

Embora não faça parte da questão, para ser completo, acrescentarei que, na situação acima (instalação do Ubuntu LVM), você precisará adicionar lvm2 ao initrd do sistema recém-instalado assim que concluir a instalação, ou ele não inicializará. Seu novo sistema deve estar configurado para você em / target, mas se não estiver, faça-o manualmente da seguinte maneira:

mount /dev/vg/new_root /target
mount /dev/sdx1 /target/boot       # important
mount -o bind /proc /target/proc
mount -o bind /sys /target/sys
mount -o bind /dev /target/dev
mount -o bind /dev/pts /target/dev/pts

Eu precisava fazer isso para fazer com que a rede funcionasse no chroot, a qual passo a seguir:

cp /etc/resolv.conf /target/etc/

Agora faça o chroot para o novo sistema e instale o lvm2:

chroot /target
apt-get install lvm2

Observe que ele executa update-initramfs. Agora, digite exit e reinicie, e seu sistema deverá inicializar corretamente.

Lauritz V. Thaulow
fonte
+1 Recurso muito obscuro do LVM. Por que na Terra foi considerado "ativado" (sem efeitos visíveis, é claro) em um CD de resgate, mas não em outro?
Van Jone
Obrigado. Acabei lendo isso e usando vgchangemais de 6 anos depois de escrever a pergunta e depois de encontrá-la em uma pesquisa. :-) Eu tinha esquecido que tinha escrito. No meu caso, a questão definitivamente era que os LVs não estavam ativos.
Faheem Mitha
3

Isso também funcionou para mim.

vgchange -a y -name of volume group-

Após um patch do kernel, meu sistema RHEL falhou ao reiniciar. Reclamação de um /dev/mapper/VG-lvarquivo ausente .

Inicializado para usuário único e comentado em /etc/fstab. Uma vez on-line, descobri que meu disco criptografado estava sendo exibido como "dispositivo desconhecido" usando pvs.

Corrigido isso, mas ainda não há arquivos de dispositivo para o grupo Volume. A execução do comando acima recriou os arquivos do mapeador de dispositivos e me permitiu montar.

Paul Bennett
fonte
2

Eu tive um problema semelhante depois de atualizar meu debian. Durante a reinicialização, esta mensagem apareceu para mim:

Unable to find LVM Volume. 
/dev/mapper/debian-root does not exist.

Encontrei a solução aqui :

cryptsetup luksOpen /dev/sda5 lvmsys
lvm
lvm> vgscan        ## scan for volume groups
lvm> vgchange -a y ## activates the volume groups

E pronto, ele foi reiniciado muito bem depois disso.

Adriano P
fonte