Hospedar múltiplas distribuições Linux no PXE Server e mostrar essas opções para o cliente PXE

3

Servidor PXE - CentOS 6.5 64bits
Objetivo - O cliente deve ser apresentado com opções de SO no menu de inicialização da rede - Oracle Linux 6.5, RHEL 7, Ubuntu 14. Após a seleção, deve prosseguir com a instalação do sistema operacional selecionado.

    
por Gh0sT 01.02.2015 / 09:48

2 respostas

5

Você pode inicializar o grub pela rede através do TFTP. O grub pode então apresentar um menu de opções para a próxima inicialização, da maneira que normalmente faz. Essas escolhas podem ser vários instaladores do sistema operacional. O grub pode carregar o instalador do sistema operacional escolhido também por meio do TFTP.

Eu sei que o instalador Debian (e Ubuntu) pode ser inicializado como uma combinação única de kernel Linux + initramfs (initrd). Essa é a maneira mais fácil, porque ela pode ser inicializada pelo grub de maneira simples (as diretrizes menuentry with linux e initrd ) e você não precisa fazer com que o instalador tenha acesso a qualquer outra coisa. Provavelmente os instaladores dessa outra distribuição são semelhantes.

Existem algumas notas aqui na configuração do grub para inicializar por TFTP com o EFI. Mais documentação pode ser facilmente encontrada pesquisando. Basicamente, trata-se de configurar o servidor DHCP e colocar os arquivos corretos no servidor TFTP. Os locais para o arquivo de configuração do servidor DHCP e o diretório raiz do servidor TFTP variam de um sistema operacional para outro.

  • O servidor DHCP precisa fornecer um nome de arquivo de inicialização ao cliente como uma opção DHCP. Isso é padrão para qualquer inicialização de rede. O nome do arquivo de inicialização aponta para um nome de arquivo localizado no servidor TFTP que contém o grub.

  • Para a imagem do grub, você pode usar uma imagem autônoma integrada (instruções para criar uma na página mencionada anteriormente), bootx64.efi ou apenas o grub core core.efi . No último caso, o grub precisará carregar módulos adicionais, assim como seu arquivo de configuração, separadamente do servidor TFTP, assim que estiver em execução.

  • grub.cfg deve ser um arquivo normal de configuração do grub no qual você especifica os nomes de caminho para o kernel e initrd como (tftp)/path/to/the/object . Claro que você dará aos kernels e initrds nomes diferentes de instaladores do sistema operacional diferentes no servidor TFTP.

por 01.02.2015 / 10:22
1

pxelinux.0 é um carregador de inicialização PXE genérico para Linux do projeto syslinux. Você pode usar o único pxelinux.0 para todas as distribuições do Linux que você possui. A única coisa que você precisa fazer é atualizar a configuração do PXE pxelinux.cfg/default , pxelinux.cfg/CLIENT_MAC ou pxelinux.cfg/PORTION_OF_CLIENT_IP dependendo de suas configurações.

Você pode:

  • menus de cadeia, consulte pmagic_advanced entry
  • carregar carregadores PXE, consulte openbsd entry (o bootloader AFAIK, Linux PXE não pode inicializar o kernel BSD)
  • encadeie servidores TFTP, consulte pxeserver2 entry
  • cair para o 1º boot do HDD, você pode copiá-lo do menu syslinux (USB ao vivo) ou do menu isolinux (live CD) eles pertencem ao mesmo projeto e usam a mesma sintaxe para configuração de inicialização.

Exemplo para meu pxelinux.cfg/default :

DEFAULT partedmagic_6.7

LABEL test_kernel
    MENU LABEL ^Test Kernel
    KERNEL hello.boot

LABEL partedmagic_6.7
    LINUX pmagic_6.7/bzImage
    INITRD pmagic_6.7/initramfs
    APPEND edd=off load_ramdisk=1 prompt_ramdisk=0 rw vga=normal loglevel=9 max_loop=256

LABEL partedmagic_5.5
    MENU LABEL PartedMagic 5.5
    LINUX pmagic_5.5/bzImage
    APPEND initrd=pmagic_5.5/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 loglevel=0 max_loop=256

menu begin pmagic_advanced
        menu title PartedMagic 5.5 Advanced
        label mainmenu
                menu label ^Back..
                menu exit
        include /pmagic_5.5/boot/syslinux.cfg
menu end

LABEL clonezilla_20100623
    MENU LABEL ^CloneZilla 2010.06.23
    KERNEL clonezilla_20100623/vmlinuz
    APPEND initrd=clonezilla_20100623/initrd.img boot=live union=aufs noswap noprompt vga=788 ocs_live_keymap=NONE ocs_lang=en_US.UTF-8 fetch=tftp://192.168.10.123/clonezilla_20100623/filesystem.squashfs

LABEL unattended_4.9
    MENU LABEL Unattended 4.9 for ^XP
    KERNEL unattended_4.9/bzImage
    APPEND initrd=unattended_4.9/initrd z_path=\192.168.10.123\install_4.9

LABEL slitaz
    MENU LABEL ^Slitaz.iso
    TEXT HELP
Testing boot from iso.
    ENDTEXT 
    KERNEL memdisk
    APPEND initrd=slitaz-cooking.iso

LABEL mini_ubutnu
    MENU LABEL Mini-Ubuntu
    KERNEL memdisk
    APPEND initrd=ubuntu_mini.iso

LABEL freedos_std
    MENU LABEL ^FreeDOS STD
    TEXT HELP
Testing boot from Floppy IMG.
    ENDTEXT 
    KERNEL memdisk
    APPEND initrd=FDSTD.144

LABEL anax_bios_flash
    MENU LABEL Anax Bios Flash
    KERNEL memdisk
    APPEND initrd=anax_bios_flash.img

LABEL openbsd
    MENU LABEL ^OpenBSD 3.9
    KERNEL openbsd_3.9/pxeboot.0

LABEL plop_4.0.0
    MENU LABEL PlopLinux 4.0.0
    KERNEL ploplinux_4.0.0/bzimage
    APPEND initrd=ploplinux_4.0.0/initrfs.gz vga=1 nfsmount=192.168.10.123:/media/gnu_files/_servers/tftp/ploplinux_4.0.0/ploplinux

LABEL ubuntu_10.04_install
        menu label ^Ubuntu 10.04 net install
        kernel ubuntu_10.04/vmlinuz
        append vga=normal initrd=ubuntu_10.04/initrd.gz -- quiet

LABEL ubuntu_10.04_cli
        menu label Ubuntu 10.04 ^command-line net install
        kernel ubuntu_10.04/vmlinuz
        append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=normal initrd=ubuntu_10.04/initrd.gz -- quiet

LABEL pxeserver2
        menu label Switch to 2nd PXE server...
        kernel pxechain.com
        append 192.168.10.254::pxelinux.0

Referência: AskUbuntu: Pxeboot Imagem múltipla

    
por 11.05.2015 / 08:13