Monte um ISO virtualmente usando o dispositivo / dev / sr0

6

Estou fazendo um estudo sobre como o CD-ROM pode ser montado virtualmente e tudo que pude descobrir foi a montagem usando dispositivos de loop.

mount -o loop disk1.iso /mount-point

Isso é bastante fácil.

Eu entendo que /dev/sr0 é um dispositivo de bloco e aponta para algum buffer no kernel e o driver de dispositivo do kernel coloca o sistema de arquivos (ou o que quer que seja, não tenho certeza) nesse buffer e quando usamos mount it monta o sistema de arquivos no ponto de montagem especificado.

Mas estou querendo saber se podemos montar um ISO de nossa escolha (por exemplo, disk1.iso ) usando o dispositivo de CD-ROM SCSI /dev/sr0 (sem alterar nada no kernel) como é feito em VMware e Virtualbox, onde pode especificar o ISO e ele automaticamente emula um hardware de CD-ROM e o ISO pode ser montado usando /dev/sr0 device?

O maior problema que vejo aqui é como /dev/sr0/ será vinculado à iso?

    
por Tejendra 28.10.2014 / 11:45

2 respostas

5

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.

    
por 28.10.2014 / 13:20
2

Se você usar o cdemu em vez da montagem do loop, ele terá o efeito desejado. Emula um dispositivo de cd-rom. Onde a montagem apenas dá acesso aos arquivos. Também pode ser usado para montar arquivos cue / bin e outros tipos de imagens. Isso permite montar imagens que tenham mais de uma faixa ou combinações de faixa de dados / música.

    
por 26.12.2014 / 04:43