Exclui a tabela de partições que reside na memória do kernel

0

Eu limpei (apagado do dispositivo) todas as partições de um volume lógico (lv no LVM). Então eu fiz partprobe -s (e outro comandos semelhantes : partprobe não devolveu saída, partx dito partition: none & failed to read partition table ). O problema que tive é que eu não poderia fazer:

  • mkfs /dev/vg/lv porque /dev/vg/lv is apparently in use by the system; will not make a filesystem here!
  • lvremove /dev/vg/lv do dispositivo porque Logical volume vg/lv is used by another device.

Isso ocorre porque o kernel ainda vê uma partição dentro do dispositivo de bloco lv:

# grep dm /proc/partitions
 254        0   85852160 dm-0
 254        1   84850688 dm-1

e

# ls -lh /dev/dm-*                           
brw-rw---T 1 root disk 254, 0 May 23 14:32 /dev/dm-0                                                       
brw-rw---T 1 root disk 254, 1 May 23 14:08 /dev/dm-1

Eu finalmente reiniciei a máquina, o que resolveu meu problema (o kernel não viu mais a partição inexistente).

Você sabe como resolver isso sem ter que reiniciar?

Testado em um kernel 3.2.

    
por Totor 23.05.2018 / 15:24

1 resposta

0

Dispositivos LVM (ou Device Mapper em geral) não suportam partições no mesmo sentido que, por exemplo, os dispositivos sd são. Com partx , você só pode gerenciar o tipo normal de partições. No topo dos dispositivos LVM, as partições devem ser gerenciadas com kpartx :

kpartx -d /dev/vg/lv

A% man_de% manpage é um pouco sucinta. Para verificar isso, encontrei um exemplo de uso consistente com minhas suposições: link

    
por 23.05.2018 / 16:00