about use refind(not fog env)



  • Server
    • FOG Version: none
    • OS: none
    Client
    • Service Version:none
    • OS:none
    Description

    hi, @Tom-Elliott, after that discussion, i was tring to refind. and i can’t find any way to use refind loading network file. i read the refind doc, it’s support ipxe, but it’s looks like loading refind -> jump to ipxe.efi, not any different between dhcp->ipxe.
    and when i try to use refind.conf setting to load manual conf, it’s not support loading network file, like “loader tftp://192.168.136.201/images/rhel64-x86_64/vmlinuz”, but grub support network and tftp, is refind have some setting?

    thank you.



  • @george1421 im very sorry to make you confused with word “cobbler”, yes, it is an opensource project

    if akin to FOG. later, i will try FOG to compare it.

    but now, i think my problem is how use dhcp + dnsmasq.proxy mode + ipxe install rhel67(old kernel without efi_stub) with uefi client make it general.

    or how gurb2 auto looking for grub.cfg @ ipxe environment.

    i was confused that, why grub can’t use anyother args like — grubx64.efi --net_bootp --net_default_server=xxxx --configfile=xxxxx/grub.cfg, or like ipxe support ${mac(ip):hexraw} to make grub.cfg be general. that’s will be perfect to support network install.

    how FOG do if someone need install rhel67 with general cfg @ dnsmasq.proxy mode & uefi client(for now all hp gen9 server use efi.)

    thank you.


  • Moderator

    @xutianhong I think we do have a language issue here. The issue is not with you, but me.

    You keep using the word cobbler.

    History lesson:
    Cobbler is an old english word for a person who would repair walking shoes and boots. In difficult economic times people would keep their shoes and not buy new ones by taking them to a cobbler to patch them with scraps of leather and other materials.

    The word cobbled is what a cobbler would do, build or repair something out of extra bits and left over parts from other things.

    When you kept referring to cobbler, I understood that as something YOU built out of extra bits and left over parts from other projects.

    Now I know that cobbler is an opensource project (akin to FOG). http://cobbler.github.io/manuals/quickstart/

    I need to reread this thread with that new understanding.



  • @george1421 http://${next-server}/cblr/svc/op/gpxe/system/${mac:hexraw} like blow
    http://192.168.136.201/cblr/svc/op/gpxe/system/000C2996FC90

    #!ipxe
    initrd --name initramfs http://192.168.136.201/cobbler/ks_mirror/rhel73/images/pxeboot/uefiinitrd.img
    kernel http://192.168.136.201/cobbler/ks_mirror/rhel73/images/pxeboot/uefivmlinuz initrd=initramfs  ksdevice=bootif lang=  text net.ifnames=0 biosdevname=0 kssendmac  ks=http://192.168.136.201/cblr/svc/op/ks/system/000C2996FC90
    boot
    

    it’s gen by cobbler.



  • @george1421 in rhel73 @ ipxe, i setting like this.

    #!ipxe
    
    :retry_dhcp
    dhcp && echo DHCP Succeeded || goto retry_dhcp
    
    :retry_fetch
    imgfree
    
    imgfetch http://${next-server}/cblr/svc/op/gpxe/system/${mac:hexraw} && echo Get InstallScript Succeeded && goto start_install || goto fail_sleep
    
    :fail_sleep
    echo Fetch/Install failed, sleep 30s && sleep 30 && goto retry_dhcp
    
    :start_install
    echo Booting from ${mac:hexraw}
    chain ${mac:hexraw} || goto fail_sleep
    

    make bin-x86_64-efi/ipxe.efi EMBED=uefi.ipx



  • @george1421 is i describe clearly what i need? sorry…



  • hi @george1421 , see u again.
    in my env, i want to use cobbler install rhel67&rhel73 with different mac use diff ksfile.
    it’s will be like blow
    client get ip with dhcp server & get tftp info with dnsmasq server.
    client to tftp server get bootinfo & files.
    in legacy bios, it’s works all fine. but uefi.
    the first is rhel73.
    i solved it cuz rhel73 kernel have bug, change the kernel to centos7.1611 kernel 3.10.514.2.2.
    the second is rhel67.
    it’s not efi_stub.
    i try to use ipxe {kernel tftpserver/vmlinuz, initrd tftpserver/initrd.img, boot} it’s not work.
    then, i try ipxe{chain grubx64.efi} it’s give me grub shell, in grub shell { net_bootp, linux tftpserver/vmlinuz, initrd tftpserver/initrd.img, boot} it’s worked.
    or i use grub2-mkstandalone balabalbal burn grub.cfg to grubx64.efi, it’s worked too.
    but i can’t use these two ways cuz grub shell can’t like ipxe can use script & ${mac:hexraw}, and i can’t make standalone grub.efi with every one client.

    so i hear rEFInd like grub. i tried…

    is FOG can do this like cobbler?


  • Moderator

    For pxe booting fog it uses iPXE. The FOG iPXE kernel (ipxe.efi) is custom built by the fog developers. It has a built in script that will contact the fog server and load an php file called boot.php which then builds the FOG iPXE menu. That menu looks similar to this:

    set fog-ip 192.168.1.53
    set fog-webroot fog
    set boot-url http://${fog-ip}/${fog-webroot}
    cpuid --ext 29 && set arch x86_64 || set arch i386
    goto get_console
    :console_set
    colour --rgb 0x00567a 1 ||
    colour --rgb 0x00567a 2 ||
    colour --rgb 0x00567a 4 ||
    cpair --foreground 7 --background 2 2 ||
    goto MENU
    :alt_console
    cpair --background 0 1 ||
    cpair --background 1 2 ||
    goto MENU
    :get_console
    console --picture http://192.168.1.53/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
    :MENU
    menu
    colour --rgb 0x00567a 0 ||
    cpair --foreground 1 1 ||
    cpair --foreground 0 3 ||
    cpair --foreground 4 4 ||
    item --gap Host is registered as 00505694aa40!
    item --gap -- -------------------------------------
    item fog.local Boot from hard disk
    item fog.memtest Run Memtest86+
    item fog.keyreg Update Product Key
    item fog.deployimage Deploy Image
    item fog.multijoin Join Multicast Session
    item fog.quickdel Quick Host Deletion
    item fog.sysinfo Client System Information (Compatibility)
    item mdtlti.x86 MDT LiteTouch x86 Boot
    choose --default fog.local --timeout 5000 target && goto ${target}
    :fog.local
    sanboot --no-describe --drive 0x80 || goto MENU
    :fog.memtest
    kernel http://192.168.1.53/fog/service/ipxe/memdisk initrd=http://192.168.1.53/fog/service/ipxe/memtest.bin iso raw
    initrd http://192.168.1.53/fog/service/ipxe/memtest.bin
    boot || goto MENU
    :fog.keyreg
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param keyreg 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.deployimage
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param qihost 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.multijoin
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param sessionJoin 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.quickdel
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param delhost 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.sysinfo
    kernel http://192.168.1.53/fog/service/ipxe/bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=192.168.1.53/fog/ consoleblank=0 rootfstype=ext4 storage=192.168.1.53:/images/ storageip=192.168.1.53 loglevel=4 mode=sysinfo
    imgfetch http://192.168.1.53/fog/service/ipxe/init_32.xz
    boot || goto MENU
    :mdtlti.x86
    initrd http://192.168.1.53/bootimg/LiteTouchPE_x86.iso
    chain http://192.168.1.53/bootimg/memdisk iso raw
    :bootme
    chain -ar http://192.168.1.53/fog/service/ipxe/boot.php##params ||
    goto MENU
    autoboot
    

    You wouldn’t need to have an external ipxe program this script could be built directly into the kernel. But that would also require you to rebuild your kernel if you updated your menu.

    This page gives you an idea of the scripting options: http://ipxe.org/scripting

    You can build your own custom ipxe kernel using the source files or by using the rom-o-matic site: https://rom-o-matic.eu/


  • Moderator

    I wonder if you are using the wrong tool for booting??

    From what I understand you are trying to pxe boot into a custom menu right?

    If so you could take some ideas that FOG uses to create your own menu.


Log in to reply
 

836
Online

39.3k
Users

11.0k
Topics

104.6k
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.