A reinicialização deve corrigir seu kernel. E, da próxima vez, em vez de executar losetup
e partprobe
manualmente, use kpartx
:
kpartx -v -a image.img
e para derrubá-lo:
kpartx -d image.img
Eu montei imagem de disco via dispositivo de loop (losetup -f image.img). Ele contém a tabela de partições e forço o kernel a lê-lo: partprobe / dev / loop1.
Monte / dev / loop1p1, corrija as coisas que quero consertar, desmonte o sistema de arquivos. Eu removo o arquivo do dispositivo de loopback (losetup -d / dev / loop1). Mas / dev / loop1p1 não desapareceu.
Eu até tentei recriar o lodispositivo, adicionar e remover a tabela de partições via fdisk. Mas todas as minhas tentativas falharam:
A tabela de partições foi alterada!
Chamando ioctl () para reler a tabela de partições.
AVISO: A leitura da tabela de partições falhou com o erro 22: argumento inválido. O kernel ainda usa a tabela antiga. A nova tabela será usada em a próxima reinicialização ou depois de executar partprobe (8) ou kpartx (8) Sincronizando discos.
A partição não está em uso de qualquer forma, mas não consigo liberá-la. Existe alguma maneira de removê-lo sem reiniciar?
Eu vejo no dmesg alguns registros:
[4649002.505727] loop1: rw = 0, desejado = 211812300, limite = 62914560 [4649002.505753] Erro de E / S de buffer no dispositivo loop1p1, bloco lógico 52952562 [4649002.505870] tentativa de acessar além do fim do dispositivo
E eles estão incomodando meus nagios.
Tags partitioning linux