Muito brevemente (deixo para outras pessoas com mais tempo para escrever uma resposta passo-a-passo):
Você precisa criar um sistema de arquivos ISO9660 com uma extensão de inicialização El Torito . Isso mais ou menos incorpora uma imagem de disquete completa no sistema de arquivos.
Portanto, primeiro você deve converter seu programa inicializável em um formulário onde ele inicializaria a partir de um disquete (grave-o no bloco de inicialização, use as chamadas do BIOS para ler os outros blocos, se necessário). Então você adiciona esta imagem de disquete ao sistema de arquivos ISO com a opção -b
de mkisofs
.
Existem variações em que você finge ter um disco rígido em vez de um disquete no CD.