Fiz isso com o Linux Mint 13, mas deveria ser o mesmo com o Ubuntu 12.04. Eu usei o mintstructor para personalizar meu live-dvd, mas deveria trabalhar com o LiveCDCustomizationFromScratch.
Consegui configurar a inicialização via rede a partir de um live-dvd usando apenas o iPXE (no pxelinux).
Para fazer isso, configurei um servidor http (com apache) para publicar conteúdo em / var / www. É necessário porque o initrd e o vmlinuz precisam ser acessíveis através do http.
Eu peguei o initrd.lz e o vmlinuz do live-dvd e coloquei em / var / www
Peguei todos os arquivos em / casper (de live-dvd) e coloquei em / var / www / casper.
Em seu servidor da Web, publique também um compartilhamento NFS de / var / www para que os arquivos também sejam acessíveis por meio do NFS. Isso é necessário para acessar o squashfs (pasta casper) através da rede (não parece funcionar através de http).
Aqui está meu / etc / exports (NFS)
/var/www *(ro,async)
Seu script iPXE deve ficar assim (substitua o IP de acordo):
#!ipxe
initrd http://10.54.9.43/initrd.lz
chain http://10.54.9.43/vmlinuz boot=casper netboot=nfs nfsroot=10.54.9.43:/var/www/ initrd=initrd.lz
Isso carregará o kernel e o initrd através de http, e os squashfs através do NFS ...
Sobre a parte DHCP, estou usando um DHCP do Windows Server ... então não pude ajudá-lo. Siga a documentação do iPXE. Para outros, eis o que fiz: Configurei um servidor TFTP no mesmo servidor (linux). Eu configurei a opção 66 para o IP desse servidor (no servidor DHCP). Eu coloquei undionly.kpxe (iPXE) na pasta TFTP do meu servidor para carregar o iPXE (verifique o iPXE doc). Eu configurei a opção 67 conforme especificado no documento do iPXE para evitar um loop infinito (devido à carga da cadeia).
Tudo isso foi um pouco difícil para eu descobrir, porque não há muita documentação sobre isso na web.