Pxeboot Imagem múltipla

3

Como fazer o sistema operacional múltiplo em um único servidor Pxeboot.

Eu quero inicializar diferentes SO como Fedora, CentOS, RHEL no cliente

    
por Beginner 27.02.2014 / 14:25

1 resposta

2

Eu achei legal mencionar toda a configuração que tenho, que pode conter truques interessantes.

  • É possível criar diretórios separados dentro da pasta raiz do tftp:

    $ tree -L 2
    .
    ├── anax_bios_flash.img
    ├── clonezilla_20100623
    │   ├── filesystem.squashfs
    │   ├── initrd.img
    │   ├── parameters.txt
    │   └── vmlinuz
    ├── display_ubuntu
    │   ├── adtext.cfg
    │   ├── f10.txt
    │   ├── f1.txt
    │   ├── f2.txt
    │   ├── f3.txt
    │   ├── f4.txt
    │   ├── f5.txt
    │   ├── f6.txt
    │   ├── f7.txt
    │   ├── f8.txt
    │   ├── f9.txt
    │   ├── menu.cfg
    │   ├── po4a.cfg
    │   ├── prompt.cfg
    │   ├── splash0.png
    │   ├── splash1.png
    │   ├── splash.png
    │   ├── splash.xcf
    │   ├── stdmenu.cfg
    │   ├── text.cfg
    │   └── vesamenu.c32
    ├── etc
    │   └── boot.conf
    ├── FDSTD.144
    ├── hello.boot
    ├── memdisk
    ├── Notes.txt
    ├── openbsd_3.9
    │   ├── bsd
    │   ├── bsd.mp
    │   ├── bsd.rd
    │   └── pxeboot.0
    ├── ploplinux_4.0.0
    │   ├── boot.msg
    │   ├── bzimage
    │   ├── initrfs.gz
    │   ├── memtest
    │   ├── ploplinux
    │   ├── plpbt.bin
    │   ├── plpinstc.com
    │   ├── pluspacks
    │   ├── pxelinux.0
    │   ├── pxelinux.cfg
    │   └── readme.txt
    ├── pmagic_5.5
    │   ├── boot
    │   ├── bzImage
    │   ├── initramfs
    │   └── sample_pxelinux.cfg
    ├── pmagic_6.7
    │   ├── boot
    │   ├── bzImage
    │   └── initramfs
    ├── pxechain.com
    ├── pxelinux.0
    ├── pxelinux.cfg
    │   ├── default
    │   └── default.backup
    ├── slitaz-cooking.iso
    ├── ubuntu_10.04
    │   ├── initrd.gz
    │   └── vmlinuz
    ├── ubuntu_mini.iso
    └── unattended_4.9
        ├── bzImage
        ├── default
        ├── initrd
        ├── menu.c32
        └── pxelinux.0
    
  • Em seguida, altere pxelinux.cfg/default , pxelinux.cfg/CLIENT_MAC ou pxelinux.cfg/PORTION_OF_CLIENT_IP

    Para mim, usei o Ubuntu Netboot como modelo, assim como você pode ver pxelinux.cfg/default inclui display_ubuntu/menu.cfg que por si só inclui display_ubuntu/text.cfg que contém o menu principal de inicialização do Ubuntu:

    Conteúdo de pxelinux.cfg/default

    include display_ubuntu/menu.cfg
    default display_ubuntu/vesamenu.c32
    prompt 0
    timeout 0
    

    Conteúdo de display_ubuntu/menu.cfg

    menu hshift 7
    menu width 65
    menu margin 5
    
    menu title GNU/Linux Rescue Collection
    
    include display_ubuntu/stdmenu.cfg
    include display_ubuntu/text.cfg
    
    menu begin advanced
        menu title Advanced options
        label mainmenu
            menu label ^Back..
            menu exit
        include display_ubuntu/stdmenu.cfg
        include display_ubuntu/adtext.cfg
    menu end
    
    label help
        menu label ^Help
        config display_ubuntu/prompt.cfg
    

    Conteúdo de display_ubuntu/text.cfg

    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
    

Notas:

  • hello.boot é apenas um pequeno kernel, eu usei para testes iniciais de PXE.
  • memdisk é usado como kernel para carregar (sobre PXE):

    Imagens de disquetes crus: anax_bios_flash.img e FDSTD.144

    Imagens ISO de CD: slitaz-cooking.iso e ubuntu_mini.iso

  • pxechain.com usado para carregar em cadeia outro servidor PXE.

    pxechain.com está disponível no pacote syslinux-common a partir de trusty (graças a @muru) ou arquivo de projeto syslinux sob o nome de arquivo diferente pxechn.c32 .

  • Todas as distribuições Linux listadas são carregadas pelo mesmo pxelinux.0 localizado na pasta raiz do tftp. A exceção é com o OpenBSD (que possui o kernel BSD), pxelinux.0 carrega openbsd_3.9/pxeboot.0 , o bootstrap PXE vindo com o OpenBSD. Tem sua própria configuração em etc/boot.conf . (Esse método é chamado de carregamento de cadeia)

    Conteúdo de etc/boot.conf

    set image openbsd_3.9/bsd
    
  • Você pode usar include em vez de listar todo o menu em um único arquivo ou pode ser um menu em cadeia para manter os menus / opções avançados originais de cada distribuição.

por user.dz 12.03.2014 / 21:06

Tags