Problems with using-fog-to-pxe-boot-into-your-favorite-installer

  • @george1421 excelent guide, all the linux guides was very good, had some problems with ubuntu because i did not use the vmlinuz and initrd from “” which might be nice to have in the guide.
    im not sure if i have done something wrong following your Windows 10 guide, but i manage to boot into windows, but dont get past some driver issues in windows “A media driver your computer needs is missin. i also had to use tftp instead of nfs, because it was not supported… do you know whats going on hereg”

  • you need to use a WinPE image instead of Windows installer iso, I had the same issue while trying to use the installer iso. Make a WinPE image and redo the steps.

    1. Agreed, won’t be my main method but will be useful for other people and, to be fair, the odd quick install to test something over the network rather than breaking out usb sticks is always welcome

    2. Thanks, that’s good, suspected that it would be in sql and I should be able to follow those changes.
      Even for me I can see a useful script like “ hostname” which creates the deploy task from outside of the fog gui, reboots the machine then performs tasks afterwards (though I also need to look at the snapins). I’ve just noticed the API so suspect there may be something there and appreciate I’ve verging off topic with that one.

    Lots for me to follow up on so will leave you in peace for now but thanks for coming back to me so quickly.

  • Moderator


    1. I have not tested 20.04 yet. When I last looked at it, it was just released and I wanted to let the image bake a bit before attempting to setup to netboot it. I personally don’t install images this way (via netbooting) so I’ll typically setup a new entry when someone comes across a need for it. Netbooting in this method means mounting an nfs share and loading the OS from that share. With FOG you could pass different kernel parameters to the target system and then pickup those kernel parameters within the netbooted client via a custom script.

    2. You may find that FOG will compliment other tools such as ansible. I have not personally worked with it but know its function. Most of the fog settings (done outside of the fog installer with its command line switches) are done via the mysql database. I have not thought about it this way, but it should be possible to create new fog ipxe menu entries by just adding a record to the fog ipxemenu (may not be the exact table name) table in mysql. So a simple bash script that creates or deletes a bunch of standard rows in that table would be enough.

  • @george1421 Thanks for the speedy reply George and apologies for not being clear

    Two topics I guess…

    1. Instructions - I’m just starting to look at ubuntu 20.04 and, as fog is fairly new to me, I was going to start by getting the
      Note to self: I need to see how kickstart files work with 20.04 now as different and whether this is just server vs desktop
      Also whether fog can hand out different kickstart files

    2. I’m working with a couple of major tools for network setups. Hoping fog will become one of them and looking promising but I’m getting more and more into ansible and proxmox as host. The reasoning behind this question was “how do I deploy a fog server automatically/ through scripts”
      I can build the VM with ansible and deploy fog but was wondering whether there was a way to make config changes through command line e.g. insert this boot menu option.

  • Moderator

    @beardedfool AFAIK nothing has changed for ubuntu 16.04 in years. Are you having a specific issue? I can tell you later versions of ubuntu also boot using this method. In general if I add something to the that netbooting thread I’ve personally set it up and tested.

    I’m not sure I understand about scripting changes to the fog menu. The fog menu is powered by the FOG server. The fog server has built in management to add or remove entries in the iPXE menu. The language that powers the FOG iPXE menu is ipxe’s own programming language. You can see this programming language in action by opening up a web browser and pointing to this URL. http://<fog_server_ip>/fog/service/ipxe/boot/php?mac=00:00:00:00:00:00 The fog iPXE menu is specifically crafted by the fog script boot.php on the fog server.

    If you could could provide a bit more details on what you want to change I might be able to give you a direction to look in.

  • @george1421

    Can I just check that is still the latest information please.

    Also, if I wanted to script the changes to the fog menu (ansible or bash) do you know where I’d start looking for the boot menu options please?

  • I just wanted to add to this -
    If you have an antique server that totally and completely lacks UEFI support (such as my ML350 Gen8) then you can just follow the instructions that @george1421 posted for Windows ISO’s to boot any (most) ISO’s in legacy mode. I just tested it with VMWare 6.7U2 on the HP ML350 Gen8, worked flawlessly.

  • I hate to beat a dead horse, but I just wanted to say thank you for this in depth tutorial. It is amazing. Thank you!

  • @george1421 Fantastic!!! I got Mint running and booting live over the network. Thank you so much for the info.

    For everyone’s use I created:

    /images/os/mint where I used 7z to extract the entirety of the mint.iso
    /tftpboot/mint where I placed the vimlinuz and initrd.lz from the casper folder in the previously mentioned extracted iso.

    My menu item in PXE is now this:

    kernel tftp://${fog-ip}/mint/vmlinuz
    initrd tftp://${fog-ip}/mint/initrd.lz
    imgargs vmlinuz initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/images/os/mint systemd.mask=tmp.mount ip=dhcp rw

    Boots great!! ClamAV scanning of Windows drives here I come!

  • Moderator

  • Hey peeps,

    I’ve managed to get the installer portion running using a plethora of info out there but what really worked for me is this:

    Downloaded vmlinuz and initrd.gz from the netboot version of Ubuntu and placed them into the tftp root folder:

    Ubuntu Netboot

    Created a folder in /images/os called ubuntu and used 7z to extract Ubuntu 18.04 iso into this folder.

    My menu entry now looks like this:

    kernel tftp://${fog-ip}/ubuntu/vmlinuz
    initrd tftp://${fog-ip}/ubuntu/initrd.gz
    imgargs vmlinuz initrd=initrd.gz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/images/os/ubuntu splash ip=dhcp rw

    It now boots on any machine into an Ubuntu Installer BUT!

    This is great but not my final wish.

    Is there a way to avoid the straight to install process and at least load a Live CD so that I could use Ubuntu to say scan the PC’s drive with clamav?

    Any help would be great!


  • Moderator

    @Gamienator Thank you for the feedback and info, I will get the tutoral updated right away.

  • Hi there,

    I just noticed that on Linux Mint 19 and newer it’s not possible to boot anymore before you change the Boot Parameter! I got it going on after setting this:

    imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/iso/mint/ locale=de_DE.UTF-8 keyboard-configuration/layoutcode=de ip=dhcp toram -- || read void

    Keep in mind, I got a different folder! But the parameter toram is damn important, otherwise it’s not able to mount /tmp and goes into emergency mode!

    Maybe you want to update the wiki?

  • @george1421 I symlinked my /tftpboot to var/www/html/fog/ so that everything i do under tftpboot in the os folder is available via http.

    Turns out this works…

    kernel http://${fog-ip}/fog/os/win/wimboot pause gui
    initrd --name segmono_boot.ttf http://${fog-ip}/fog/os/win/winpe/amd64/media/Boot/Fonts/segmono_boot.ttf segmono_boot.ttf
    initrd --name segoe_slboot.ttf http://${fog-ip}/fog/os/win/winpe/amd64/media/Boot/Fonts/segoe_slboot.ttf segoe_slboot.ttf
    initrd --name segoen_slboot.ttf http://${fog-ip}/fog/os/win/winpe/amd64/media/Boot/Fonts/segoen_slboot.ttf segoen_slboot.ttf
    initrd --name wgl4_boot.ttf http://${fog-ip}/fog/os/win/winpe/amd64/media/Boot/Fonts/wgl4_boot.ttf wgl4_boot.ttf
    initrd --name BCD http://${fog-ip}/fog/os/win/winpe/amd64/media/Boot/BCD BCD
    initrd --name boot.sdi http://${fog-ip}/fog/os/win/winpe/amd64/media/Boot/boot.sdi boot.sdi
    initrd --name boot.wim http://${fog-ip}/fog/os/win/winpe/amd64/media/sources/boot.wim boot.wim
    boot || goto MENU

    Had to add the 4 lines for fonts and now it boots in UEFI. I am amazed this was the issue and only on this machine. The fonts btw where in the locations, so its not like moving them into tftpboot was a problem. It was explicitly placing the initrd lines for the fonts in the ipxe entry that made it work…go figure.

  • Moderator

    @zer0cool said in Problems with using-fog-to-pxe-boot-into-your-favorite-installer:

    http://${fog-ip}/fog/os/win/winpe/amd64/media/Boot/boot.sdi boot.sdi

    This is a risky path to place your files in. At the very least I would move them out of the /var/www/html/fog directory. The fog installer has been known to remove unexpected files in its path. My instructions suggest to use tftp protocol for testing.

  • @george1421 Hey, re: our pm’s with winpe and UEFI, I am still having trouble. Let me know if you would rather I create a new post for my issue or if its ok to carry on here.

    kernel http://${fog-ip}/fog/os/win/wimboot gui
    initrd --name BCD http://${fog-ip}/fog/os/win/winpe/am64/media/Boot/BCD BCD
    initrd --name boot.sdi http://${fog-ip}/fog/os/win/winpe/amd64/media/Boot/boot.sdi boot.sdi
    initrd --name boot.wim http://${fog-ip}/fog/os/win/winpe/amd64/media/sources/boot.wim boot.wim
    boot || goto MENU

    It loads the files, has about a dozen lines about patching the WIM file, says its loading ‘bootx64.efi’ and then just reboots (machine makes a single beep). It never gets to loading the winpe environment. BIOS it boots fine and moves on to winpe.

    I tried with/without:

    • ‘gui’ (on the kernel line)
    • ‘pause’ (on kernel line)
    • ‘rawbcd’ (on gui line)

    None of the above changed anything. I also rebuilt my winpe files using copype amd64 /path and still had same issue. When re-creating (using copype) I didnt even bother adding the commands to connect to network and run installer.

    I have seen others add 4 lines for fonts, I am going to give that a shot too. I also am searching for another viable test box to ensure its not just the specific hardware I am using.

    I am running copype on a Windows Server 2016 box with newest MDT and ADK. wimboot is latest, 2.6.0 I think (on FOG machine).

    Any help would be awesome, Thanks!

    EDIT: ok must be something about the Dell Precision Tower 3620. UEFI boot worked on an R620. I even added the latest Dell Winpe 10 drivers to the boot.wim and still get the crash when UEFI booting. Still could use a solution, but it may end up just being that this specific model is allergic to ipxe/winpe

  • Moderator

    @taspharel What are you having issues with, with SystemRescueCD? I just downloaded the ISO and you should be able to extract it and make it boot via pxe. There is a kernel file and an initrd file.

    I’m currently in the process of downloading ubuntu desktop 17.10.1 to see if there is a difference.

  • I seem to have a similar problem when trying to run System Rescue Disk via PXE. Also something about not finding root or along those lines.

    Will try booting on another machine to make sure that its not related to the Lenovo Laptop I am using …