Estou movendo um projeto de trabalho do RHEL 6 (Kernel 2.6.32) para o RHEL 7 (Kernel 3.10.0).
O projeto envolve a construção de arquivos de imagem de disco brutos para serem usados em máquinas virtuais, estes são representativos de hardware real, mas permitem testes e desenvolvimento sem usar o hardware de destino.
Ao implantar software nos discos a partir do sistema operacional do host, os arquivos brutos são anexados aos dispositivos de loop e as partições são criadas. Alguns deles são partições raid 0. Essas partições às vezes têm o mesmo rótulo para discos conectados a diferentes máquinas virtuais. Por exemplo, eu tenho quatro arquivos brutos, os arquivos brutos 1 e 2 são anexados a uma VM, 3 e 4 são anexados a outra; no entanto, eu preciso de um ataque definido em ambos os discos onde o rótulo da partição é "LOG".
Isso não é um problema no RHEL 6. Ao conectar o dispositivo de loop, tenho que executar kpartx -a /dev/loop0
e kpartx -a /dev/loop1
se eu quiser montar o dispositivo de invasão que é feito com: mdadm --assemble /dev/md/LOG --name LOG
. As partições para o dispositivo de loop não aparecem em lsblk
ou blkid
até que eu use o kpartx.
Fazer o mesmo no RHEL 7 é onde as coisas ficam complicadas. Simplesmente anexar o arquivo bruto como um dispositivo de loop resulta nas partições sendo detectadas. Usando lsblk
ou blkid
eu posso ver as partições para os dispositivos de loop, e ao carregar o software a ferramenta mdadm verá os rótulos de partições 'LOG' nos dispositivos de loop 0-3, e não montará o conjunto de raid desde As partições rotuladas LOG no loop 0 e 1 são diferentes das partições rotuladas LOG no loop 2 e 3.
Eu não encontrei uma maneira de evitar isso usando parâmetros no losetup. Existe uma maneira de impedir a detecção de partições em um dispositivo de loop através de um parâmetro do kernel ou outro arquivo de configuração?
Tags loop-device partition rhel