O problema aqui é que /dev/sr0
está vinculado a um driver de dispositivo do kernel. Esse driver de dispositivo permitirá acesso a um CD-ROM físico, se disponível através desse nó; O VMWare e o VirtualBox emulam hardware como você mencionou e, portanto, o kernel e o driver de dispositivo acham que estão se comunicando com o hardware.
O /dev/sr0
não aponta para um determinado buffer diretamente, ele fornece uma interface para a interface de dispositivo de bloco que permite que os processos do userspace acedam ao conteúdo do dispositivo de hardware.
Se você quiser disponibilizar uma imagem como um dispositivo de bloco, sua única opção (além de virtualizar e emular hardware) é usar dispositivos de loop com losetup
... ou gravar seu próprio driver de dispositivo substituto, mas eu espere que não seja uma opção viável por enquanto.
Se você deseja disponibilizar essa imagem como /dev/sr0
(estamos falando de falsificar algum software que exige acesso a um CD-ROM nesse local?), é possível mover esse arquivo para, por exemplo, /dev/sr0.moved
e, em seguida, crie uma ligação simbólica do /dev/loopX
a /dev/sr0
apropriado. É claro que, se o software em questão tentar comandos especiais que só se aplicam a dispositivos de CDROM, isso não funcionará. Caso contrário, não deve ser um problema.