Infelizmente, você não pode dizer com certeza apenas a extensão do arquivo.
Primeiro, as extensões de nome de arquivo podem ser renomeadas. Por exemplo, tem havido muitos casos em que um arquivo JPG é renomeado como um arquivo PNG (ou vice-versa), talvez porque uma pessoa esteja em um editor gráfico e pense que está salvando em um formato quando está salvando em outro formato. Em alguns casos, isso realmente não importa. Por exemplo, se um navegador usa instruções de "processamento de gráficos" para tentar manipular um arquivo PNG, e a biblioteca de "processamento de gráficos" examina o gráfico e descobre que é um arquivo JPG, o resultado final pode ser que tudo acaba trabalhando bem.
De volta aos dias do MS-DOS, descobri que a extensão de nome de arquivo .IMG era mais comumente usada para imagens de disco "brutas". No entanto, ocasionalmente, havia alguns softwares que tinham outros formatos que eles chamavam de "imagem". .IMG era mais comumente uma "imagem de disco bruta", mas essa verdade não era absoluta. Exceções eram bastante incomuns, mas ocasionalmente existiam. Normalmente, acho que as exceções eram mais comumente com imagens de disquetes ou formatos de arquivo totalmente não relacionados (por exemplo, talvez algum tipo de dados "brutos" para um gráfico). Para arquivos maiores, como aqueles contendo dezenas de megabytes (ou mais), minha inclinação seria pensar que é provavelmente a imagem de uma partição ou de um "disco rígido" inteiro (ou outro "armazenamento de longo prazo"; por exemplo, um SSD) .
Para aliviar a confusão, eu pessoalmente prefiro usar a extensão de nome de arquivo ".raw". Ao longo dos anos, eu praticamente nunca vi ".raw" como referindo-se a outra coisa senão uma imagem de disco bruta, enquanto ".img" (ou ".ima") são ocasionalmente extensões que foram usadas por alguns outros formatos personalizados .
Como exemplo mais moderno, postagem da Usenet tem algumas instruções que produzirão dados no QCOW2 formatar e usar o nome de arquivo "virtual.img". Eu tenho um palpite de que tal documentação pode até ter sido incluída na documentação do pacote Qemu para algum sistema operacional. As coisas melhoraram com versões mais novas do Qemu, onde a documentação agora tende a especificar o .qcow2 mais comumente, mas lembro de ter trabalhado com versões mais antigas do Qemu e pensando que a documentação não especificava realmente uma extensão de nome de arquivo padrão para o formato QCOW2. (Como uma pessoa que gosta de usar ".htm" e ".jpg" e ".mid", gostando de manter as extensões curtas, eu normalmente usei ".qc2").
Quando me deparo com um arquivo ".img", penso nele como "provavelmente uma imagem de disco, e provavelmente uma imagem crua, mas um pouco menos certa do que se tivesse usado a extensão .raw". Quando eu sei em que formato os dados estão, tento evitar atribuir a extensão ".img", para que as coisas não sejam ambíguas.
Se o arquivo for realmente um arquivo de imagem não processada, renomear o arquivo pode ser feito com sucesso. Infelizmente, não há uma maneira fácil e real para o software testar o formato .raw. Por definição, o formato .raw não possui bytes adicionais servindo como "metadados" que descrevem o restante do arquivo. Os formatos de arquivo têm regras e, basicamente, a única "regra" do formato "imagem de disco bruta" é que não há bytes, exceto o que estaria realmente em um disco, se a imagem fosse gravada em um disco físico. Qualquer variação dessa regra significaria que o arquivo não é realmente apenas uma imagem de disco "bruta". Suponho que algum software poderia analisar um MBR e ver se os dados ali fazem sentido, mas eu não me sentiria muito confiante em tal processo, pois ainda haveria muita possibilidade de detecção errônea. Eu realmente sentiria mais confiança ao ler a documentação que especifica o formato que um arquivo está usando.
Quanto à sua pergunta final: "Se for diferente, como converter um vmdk para img?"
Usar o qemu-img deve funcionar. Certifique-se de especificar "-O raw". Eu não estou incluindo um exemplo de linha de comando, porque diferentes versões do qemu-img esperavam a opção de linha de comando "-O specifiedFormat" em diferentes localizações da linha de comando. Se você colocou o "-O raw" no lugar errado, o resultado seria uma mensagem de erro (em vez de um arquivo que é criado), então você saberia imediatamente. Você pode verificar a documentação que acompanha a sua cópia do qemu-img para obter instruções relevantes para a versão do software que está instalada na máquina que você está usando.