Sim, é possível. Antes de prosseguir, você deve entender que os CDs geralmente são inicializados com a ajuda de uma imagem do El Torito , que é um sistema de arquivos FAT armazenado no CD junto com seu sistema de arquivos normal ISO-9660 ou UDF. Assim, você deve preparar um sistema de arquivos FAT El Torito e um sistema de arquivos ISO-9660 ou UDF. Dito isto, a peça ISO-9660 / UDF pode estar vazia ou quase vazia (e é provável que assim seja no seu caso). De um modo geral, existem três etapas para fazer isso:
- Prepare o sistema operacional para inicializar, configurando um diretório contendo todos os arquivos. No seu caso, esta imagem pode estar vazia; ou por conveniência, você pode copiar o conteúdo da imagem do disco para que possa acessá-lo a partir do CD-R sem usar ferramentas especiais. Em um caso mais amplo, isso pode conter uma instalação mais importante do sistema operacional a ser executada a partir do CD-R.
- Crie uma imagem do sistema de arquivos FAT inicializável. Observe que essa imagem deve ser inicializável no sentido EFI, não no sentido do BIOS. Ou seja, ele deve ter um carregador de inicialização EFI em
EFI/BOOT/bootx64.efi
e esse gerenciador de inicialização deve fazer o que for necessário para inicializar o sistema operacional armazenado no CD. No seu caso, esta seria sua imagem de disquete existente. Vale a pena verificar agora se ele possui o arquivoEFI/BOOT/bootx64.efi
. (Observe que o caso do nome do arquivo é irrelevante.) - Prepare o disco, armazenando a imagem do sistema de arquivos FAT como uma imagem alternativa El Torito e o restante dos arquivos (se houver) no sistema de arquivos principal ISO-9660 ou UDF.
Como você diz que tem uma imagem de disquete inicializável, muito do seu trabalho provavelmente é feito para você - pelo menos se for inicializável por EFI (mais sobre isso em breve). Eu faço algo semelhante a isso para preparar a imagem do CD-R do meu gerenciador de inicialização do rEFInd . O comando que eu uso para preparar um arquivo .iso
é:
mkisofs -A "Bootable rEFInd" -V "rEFInd" -volset "rEFInd" \
-J -r -v -x ./lost+found -o ../refind-cd.iso \
-eltorito-alt-boot -efi-boot refind-bin.img -no-emul-boot ./
Este exemplo usa o comando mkisofs
(ou genisoimage
), que vem com todas as principais distribuições do Linux. Eu suponho que há uma versão para o OS X, mas eu não procurei por ela. Este comando prepara uma imagem de disco a partir do conteúdo do diretório no qual ela é digitada (o ./
no final do comando). O ponto-chave para esta discussão é a última linha, que a configura para que os sistemas EFI tratem o arquivo refind-bin.img
como se fosse uma Partição de sistema EFI (ESP). Você especificaria sua imagem de disquete inicializável por EFI em vez de refind-bin.img
. Quando o comando criar um arquivo de imagem ( ../refind-cd.iso
neste exemplo), você poderá gravá-lo em um CD-R como qualquer outro arquivo.
A mesma coisa é possível com outros programas, mas eu não conheço os detalhes para nada além de mkisofs
- e eu não sou realmente um especialista mesmo nisso. (Eu só estou copiando um comando que eu montei e isso funciona para mim.)
Note que eu enfatizei que a imagem de disco FAT deve ser inicializável no modo EFI. Muitas imagens de disquete inicializáveis são inicializáveis no modo BIOS / CSM / legado. Essas imagens também podem ser convertidas em CD-Rs inicializáveis, mas os detalhes de quais comandos você usaria são diferentes. Os Macs podem inicializar CDs com inicialização da BIOS, e este modo de inicialização pode ser perfeitamente aceitável para você, mas sua pergunta enfatiza a inicialização no modo EFI, então eu suponho que você tenha uma razão para isso. (Talvez seja uma suposição ruim, no entanto.)
Se a sua imagem de disquete não tiver o arquivo EFI/BOOT/bootx64.efi
, ela não poderá ser inicializada no modo EFI, pelo menos não como está. (Ele pode ser modificado com a adição de um carregador de inicialização no modo EFI, mas os detalhes dependem do SO que o disquete contém. Nem todos os SOs são inicializáveis no modo EFI.) Se esse for o caso, algo semelhante ao comando anterior pode funcionar, mas será necessário modificá-lo para criar uma imagem inicializável pelo BIOS em vez de uma imagem inicializável por EFI.