SOLVED Booting to a Centos7 Image File

  • Hi all, I’ve been working on getting a working Centos Image file set up as a menu option on my fog server using this great guide by @george1421 but I seem to be running in to an issue pulling the image file down via TFTP. It attempts to load the file but times out as if it can’t reach it. The files are in the same directory as the rest of the files that are able to be copied via TFTP, but these ones dont work. I had thought it was a permission issue, and set the permissions to match the other files, but no luck.

    Here’s a copy of the config:

    kernel tftp://$[serverip]/os/centos/7/images/pxeboot/vmlinuz
    initrd tftp://$[serverip]/os/centos/7/images/pxeboot/initrd.img
    imgargs vmlinuz initrd=initrd.img root=live:nfs://$[serverip]:/images/os/centos/7/LiveOS/squashfs.img ip=dhcp inst.repo=nfs:$[serverip]:/images/os/centos/7 splash quiet
    boot || goto MENU

    Here is the path to the boot files, ftp / tftp directories are all set to the default:

    username@serverip:/images/os/centos/7/images/pxeboot$ pwd & ls
    [1] 23344
    initrd.img TRANS.TBL vmlinuz

    Anyone have any ideas? Am I missing a setting somewhere. Let me know if more info is needed


  • @george1421

    That was totally it! I was confusing myself with the /images directory for tftp. After changing the command to match the /tftpboot directory everything works perfectly. Thanks for your help!

  • Moderator

    @madnm said in Booting to a Centos7 Image File:

    kernel tftp://$[serverip]/os/centos/7/images/pxeboot/vmlinuz
    initrd tftp://$[serverip]/os/centos/7/images/pxeboot/initrd.img

    So you need to be aware of protocol document roots.
    For tftp its /tftpboot
    for nfs its /images
    for http its /var/www/html

    So what IPXE will do is download vmlinuz (kernel) and initrd.img (hard drive) over tftp so according to your ipxe command these files should exist in /tftpboot/os/centos/7/images/pxeboot/ on the fog server (confirm please).

    If they exist in that spot the tftpd program will send them to the target computer. The target computer will then boot them. Once the Centos kernel starts and mounts the initrd.img file it will connect over NFS to grab the squashfs which contains the centos installer files. Once the centos kernel starts then FOG and iPXE are out of the picture.

    So do you see vmlinuz get transferred just after iPXE banner is displayed? You have to have a quick eye to see both the kernel and initrd file get transferred. In the kernel parameters you can also add log=7 and as the centos kernel boots it will send out status messages so you can see its doing something.