Inicialização personalizada do CD ao vivo via ipxe

2

Eu configurei o isc-dhcp, ipxe e tftpboot para que eu possa inicializar pela rede via PXE. Funciona a imagem netinstall do Ubuntu está inicializando com o pxelinux.0.

Eu criei um live cd personalizado com este link . Ele inicializa bem em uma VM.

Agora, eu não quero conectar essa imagem ao meu ambiente pxe. O melhor seria inicializar e anexar o disco via http. Existem muitos tutoriais. Mas não consigo montar o squashfs. Qual é a melhor maneira de fazer isso? Preciso de pxelinux, preciso de NFS? Estou confuso sobre todos os diferentes gerenciadores de inicialização.

A ajuda é muito apreciada. Obrigado.

parte do dhcpd.conf

next-server 10.1.1.1;
if exists user-class and option user-class = "iPXE" {
   filename "menu.ipxe";
} else {
   filename "undionly.kpxe";
}

e menu.ipxe

#!ipxe

set smartos-build 20121004T212912Z

######## MAIN MENU ###################
:start
menu Welcome
item
item --gap -- ------------------------- Operating systems ------------------------------
item cellos-storage     Boot CellOS
item smartos    Boot SmartOS (${smartos-build})
item ubuntu     Boot Ubuntu Precise 12.04 netinstall
item --gap -- ------------------------------ Utilities ---------------------------------
item shell      Enter iPXE shell
item reboot     Reboot
item
item exit       Exit (boot local disk)
choose --default cellos-storage --timeout 5000 target && goto ${target}




########## UTILITY ITEMS ####################
:shell
echo Type exit to get the back to the menu
shell
set menu-timeout 0
goto start

:reboot
reboot

:exit
exit

########## MENU ITEMS #######################


:cellos-storage
kernel /cellos/storage/cellos-latest/casper/vmlinuz
initrd /cellos/storage/cellos-latest/casper/initrd.lz
#chain http://10.1.1.1/boot/cellos/storage/cellos-latest.iso
boot

# SmartOS Root shadow is "root"
:smartos
kernel /smartos/${smartos-build}/platform/i86pc/kernel/amd64/unix -B root_shadow='HOHRnK3$NvLlm.1KQBbB0WjoP7xcIwGnllhzp2HnT.mDO7DpxYA'
initrd /smartos/${smartos-build}/platform/i86pc/amd64/boot_archive
boot
:ubuntu
kernel /ubuntu/precise/netinstall/ubuntu-installer/amd64/linux
initrd /ubuntu/precise/netinstall/ubuntu-installer/amd64/initrd.gz
boot
goto start
    
por Johannes 24.10.2012 / 12:04

1 resposta

3

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.

    
por user982443 14.11.2012 / 21:43