web-dev-qa-db-fra.com

Pxeboot Multiple image

Comment faire le système d'exploitation multiple dans un seul serveur Pxeboot.

Je veux démarrer différents systèmes d'exploitation tels que Fedora, CentOS, RHEL dans le client

3
Beginner

J'ai pensé qu'il était bon de mentionner toute la configuration que j'ai qui peut contenir des astuces intéressantes.

  • Il est possible de créer des répertoires distincts dans le dossier racine de 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
    
  • Puis changez pxelinux.cfg/default, pxelinux.cfg/CLIENT_MAC ou pxelinux.cfg/PORTION_OF_CLIENT_IP

    Pour moi, j'ai utilisé Ubuntu Netboot comme modèle. Ainsi, comme vous pouvez le voir, pxelinux.cfg/default inclut display_ubuntu/menu.cfg qui, à lui seul, inclut display_ubuntu/text.cfg qui contient le menu principal du démarrage d'Ubuntu:

    Contenu de pxelinux.cfg/default

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

    Contenu 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
    

    Contenu 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
    

Notes:

  • hello.boot est un noyau minuscule, je l'ai utilisé pour les tests initiaux PXE.
  • memdisk est utilisé en tant que noyau à charger (sur PXE):

    Images de disquette brutes: anax_bios_flash.img et FDSTD.144

    images ISO de CD: slitaz-cooking.iso et ubuntu_mini.iso

  • pxechain.com utilisé pour charger en chaîne un autre serveur PXE.

    pxechain.com est disponible dans le package syslinux-common à partir de trusty (Merci à @muru) ou archive du projet syslinux sous un nom de fichier différent pxechn.c32.

  • Toutes les distributions Linux répertoriées sont chargées par le même pxelinux.0 situé sur le dossier racine tftp. L'exception est avec OpenBSD (qui a le noyau BSD), pxelinux.0 charge openbsd_3.9/pxeboot.0, le PXE bootstrap à venir avec OpenBSD. Il a sa propre configuration à etc/boot.conf. (Cette méthode s'appelle le chargement en chaîne)

    Contenu de etc/boot.conf

    set image openbsd_3.9/bsd
    
  • Vous pouvez utiliser include au lieu de répertorier le menu entier dans un seul fichier, ou vous pouvez utiliser des menus chaînés pour conserver les menus/options avancés originaux de chaque distribution.

2
user.dz