É possível que o acesso ao dispositivo seja assíncrono, de modo que os dados de seu dispositivo mount / dd / whatever-you-did-to-the-loop ainda estejam no cache e estejam prestes a serem liberados. Nesse caso, sync
deve ajudar (mas pode desacelerar todo o sistema para um rastreamento se outras operações pesadas de E / S estiverem acontecendo).
Dependendo do seu caso de uso e ambiente, um loop while simples ( while ! losetup -d $dev; do sleep 2; done
) pode ser preferível (embora você deva adicionar uma condição de saída após algumas tentativas).