SOLVED Booting Linux and Windows ISO over PXE Post #1245

  • Ok, So I know that this question has been asked a thousand different ways by a thousand different people. I know this because I am sure I have read all of them, However; I still am having issues and I don’t know what I am doing wrong. Here is what I want:

    1. I want to be able to create submenus. Example: On the main Fog PXE menu I want a Windows menu and a Linux menu and a Tools menu. In my windows menu I want to be able to put different versions of Windows so that I can boot to them, the same thing with the Linux menu and the same thing with Tools menu.
    2. I want to be able to keep my .iso files on my server without having to extract them, if possible, and be able to boot into them as if I burned them to a disc and inserted into a computer.
    3. I need to be able to do Windows .iso, Linux .iso and pretty much anything else I may be able to get my hands on. I know that all .iso files act differently depending on what the .iso file is.

    Here is my Advance configuration Options:

    item --gap -- ----------blah blah blah----------
    item hostinfo Computer Information
    item Hirens Hirens Boot Disc 15.2
    item Ubuntu Ubuntu Dekstop 15.04 x64
    item Sophos Sophos Antivirus scan
    item Parted Parted Magic 03/06/2015
    item winVHP64bit Windows Vista Home Premium SP2 64 bit
    item winVHP32bit Windows Vista Home Premium SP2 32 bit
    item return return to previous menu
    choose --default return --timeout 15000 target && goto ${target}
    echo This Computer: ||
    echo MAC Address: ${net0/mac} ||
    echo IP Address: ${ip} ||
    echo Netmask: ${netmask} ||
    echo Serial: ${serial} ||
    echo Asset Number: ${asset} ||
    echo Manufacturer: ${manufacturer} ||
    echo Product: ${product} ||
    echo BIOS Platform: ${platform} ||
    echo ||
    echo Press Any Key To Return To Menu ||
    goto MENU
    sanboot http://${fog-ip}/${fog-webroot}/images/ISO/TOOLS/Hirens15.2.iso
    chain memdisk iso raw ||
    goto MENU
    kernel http://${fog-ip}/${fog-webroot}/images/ISO/LINUX/memdisk iso
    initrd http://${fog-ip}/${fog-webroot}/images/ISO/LINUX/UbuntuDesktop15.04x64.iso
    chain memdisk ||
    goto MENU
    sanboot http://${fog-ip}/${fog-webroot}/images/ISO/TOOLS/SophosAV.iso
    chain iso raw ||
    kernel http://${fog-ip}/${fog-webroot}/images/ISO/TOOLS/memdisk iso
    initrd http://${fog-ip}/${fog-webroot}/images/ISO/TOOLS/PartedMagic2015_03_06.iso
    chain memdisk iso raw||
    Goto MENU
    sanboot http://${fog-ip}/${fog-webroot}/images/ISO/WINDOWS/WinVHPSP264bit.iso
    chain memdisk iso raw||
    goto MENU
    initrd http://${fog-ip}/${fog-webroot}/images/ISO/WINDOWS/WinVHPSP232bit.iso
    chain memdisk iso raw ||
    goto MENU
    chain http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php? mac=${net0/mac} ||
    goto MENU

    I am new to fog server, I am not a programmer, so I am not familiar with any programming languages. So I am sure I butchered my commands up above. I have just been piecing together things I have found online.

    Basically what I am asking is can someone tell me what I am doing wrong. I can see the PXE server, it will boot to the FOG menu, and I can load Hirens, Ubuntu, Sophos, & Parted. Windows just loads to a cursor; However, nothing on the Hirens menu boots correctly, I get some kind of error on every selection, Ubuntu ends up saying it can’t find initramfs file, Sophos fails to completely load and comes up with command prompt, Parted says in can’t mount .sqfs file. I feel like I am missing something simple, but I don’t know what it is. I have seen some people include commands with nfs information in them. I can’t find a /nfs folder, but when I run apt-get install <nfs software> it tells me I already have it installed.

    I am running Ubuntu server 15.04 and FOG 4469 v.1.2.0.


  • Moderator

    @Wayne-Workman That is much more elegant than either of my solutions. I doubt you will need my help, but give me a poke if you want me to look at anything with you.

  • @Wayne-Workman Thanks guys for all your help.

  • @Tom-Elliott Thank you!

    With the help of this site I will eliminate “copying the iso to ram” that we have tragically been dealing with for so long.

    We will be able to boot a 200mb windows PE environment and auto-launch win7 installation from a network location on the fog server via Samba.

    Give me time - but expect a WiKi article on this in the near future 🙂

  • I’m only solving because, as far as I’m concerned, the thread question is solved. That said, of course I don’t mind, and I’m sure others won’t either, helping with the learning of the code.

    One of the best resources for learning how ipxe does coding, outside of the FOG stuff, is directly from

  • Moderator

    Booting a Windows image over the network will work best with a WDS server that you chain into FOG. I do not have the how-to handy though.

    As for using YUMI, good idea. I’ll take a look at my YUMI flash drive and see how it makes the boot file.

  • @steven.attaway for the record - I’ve been messing with adding win7 to FOG as an ISO… no luck so far - I’m working on it tonight too.

  • @Wayne-Workman I am fine with you guys marking it as solved, but I would still like some direction on the coding side and maybe a reference to where I can find a list of what commands I can use, so that I am not just following what other people are doing and I can learn it for my self. Thanks.

  • @Tom-Elliott I added windows ISO booting to the WiKi to-do - so now I won’t forget.

  • @Tom-Elliott As there isn’t much that we can do to “solve” the question, is it safe to at least solve the thread so people don’t think we’re trying to come up with a fix for the problem ourselves?

  • @steven.attaway Actually, I believe Windows ISO’s can just be loaded directly. They’re not implicitly looking for a CD/DVD Drive. The ONLY requirement is that you have enough RAM. For example, if it’s a 4GB DVD, you need AT LEAST 4GB of ram, but most likely far more.

  • @Wayne Workman @Tom-Elliot OK so it makes total sense now why extracting is the way to go. I’m not a big fan, but it does seem that it will be the most stable and proven method. So with that being said,

    1. What would be the correct command line for what I showed you earlier? Assuming all folders are the same and the .iso file will be extracted into some basic folder name, one folder deeper.
    2. Is this the same method for Microsoft?
    3. Is there a page that I can reference with all the commands that are being used in the fog advance configuration options? I like trying new things, but I can’t try new things if I can’t speak the language.
    4. I like the speed of Sanboot, but I notice a lot of initrd being used. Is one better than the other?

    Seriously, thanks for all the help.

  • @steven.attaway Here is an example for adding DBAN to FOG:'s_Boot_and_Nuke)

    This method will work with most Linux distributions - it uses the built in Memtest kernel that the FOG boot environment already has. You don’t always have to extract but if you don’t extract, you absolutely have to mount.

    For stuff that is non-Linux based, you will have to do some extracting to get the kernels and inits and such where they need to be for it to work.

  • @Tom-Elliott Was just trying to figure out a more simple way for folks. 😕

  • @steven-attaway The problem with booting Linux ISO’s depends on the Distro you’re trying to boot.

    For example, if you’re trying to run an ISO that install’s a linux distribution, the way they’re usually setup is to be booted from a CD. During the Load up of the OS, the OS will actually expect the CD in the drive, and if it’s not found it will not boot because it cannot be found. This is why you need to extract the ISO’s as the files in use on how the OS operates, are not forcibly looking for the CD, but the ISO options to boot are defining a look for the CD.

    YUMI or unetbootin are not required to perform the same things and this is because what they do. Essentially, the extract the ISO FOR you and place the files on the USB or Drive you choose.

  • Thanks Wayne. Don’t feel pressure to work on it.
    I understand where you are coming from. I worked on this all day.
    What is the proper way to make this work though, or can it work? Do I have to extract the .iso to folders? I really don’t want to do that, but if that is what I have to do to make it work then I am willing to do it.
    I am the systems admin for over 100 computers and a fog server would make life so much easier. Being able to install windows over PXE, test hardware over PXE, or run AV over PXE would cut down on so much time.
    Again don’t feel pressure to work over the weekend. This can wait. Thanks for the response though.

  • I have an idea… I don’t know if it will work or not…

    So there is this piece of software called YUMI that allows several ISOs on a single USB drive and allows that one USB drive to boot to them. Here is the link:

    IF (and that’s a very large if) you can figure out how to get YUMI to work via PXE boot with all it’s files in a web directory - then you can probably use the YUMI software to then add whatever bootable ISO you want.

    I’ll play with this over the weekend if I can - no guarantees…

    But to be quite honest with you and everyone else here, I’m really burnt out today… Work has been crazy busy and I just don’t feel like doing anything that requires technical abilities… 😕