• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Using FOG to PXE boot into your favorite installer images

    Scheduled Pinned Locked Moved
    Tutorials
    2
    38
    80.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • george1421G
      george1421 Moderator
      last edited by

      ESXi 6.7u2

      NOTE: This guidance only supports network booting of the uefi installer for ESXi. The reason for this is the fog project does not ship iPXE kernels that support the comboot function. If you want to boot your ESXi server in legacy mode you will need to compile your own specific version of undionly.kpxe to add in the IMG_COMBOOT.

      1. First we’ll create the required directories:
      mkdir -p /images/os/esxi/6.7u2
      
      1. Now we’ll mount the ESXi installer iso over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
      mount -o loop -t iso9660 /{full path where you have the iso stored}/VMware-VMvisor-Installer-6.7.0.update02-13006603.x86_64.iso /mnt/loop
      
      cp -R /mnt/loop/* /images/os/esxi/6.7u2
      umount /mnt/loop
      
      1. Edit the boot configuration file to use NFS to access all of ESXi’s files.
      # remove forward slashes from the config file
      sed -i 's/\///g' /images/os/esxi/6.7u2/efi/boot/boot.cfg
      

      Now we need to edit the/images/os/esxi/6.7u2/efi/boot/boot.cfg file to insert or modify the prefix parameter. Insert/modify the following line just below the title parameter. Also, be sure to replace {fog_server_ip} (exactly including the curly braces) with the actual IP address of your fog server. Your prefix line should look similar to this:

      prefix=nfs://192.168.1.20:/images/os/esxi/6.7u2
      
      1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
      2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
        Set the following fields
        Menu Item: os.esxi67u2
        Description: ESXi 6.7u2 Installer
        Parameters:
        kernel nfs://${fog-ip}:/images/os/esxi/6.7u2/efi/boot/bootx64.efi -c nfs://${fog-ip}:/images/os/esxi/6.7u2/efi/boot/boot.cfg
        boot || goto MENU
        Menu Show with: All Hosts
      3. That’s it, just pxe boot your target system and pick ESXi 6.7u2 Installer from the FOG iPXE boot menu.

      If for some reason you can not use NFS to pxe boot into the ESXi installer you can use tftp or http. If you want to use tftp extract the ESXi install files to /tftpboot/os/esxi/6.7u2. Then update the nfs:// protocols to tftp:// Be sure to remove the ':/images' after the host name or you will have errors. (i.e. kernel nfs://${fog-ip}:/images/os/esxi would become kernel tftp://${fog-ip}/os/esxi)

      Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

      1 Reply Last reply Reply Quote 0
      • george1421G
        george1421 Moderator
        last edited by george1421

        Ubuntu 1910 Desktop

        1. First we’ll create the required directories:
        mkdir -p /images/os/ubuntu/Desk19.10
        mkdir -p /tftpboot/os/ubuntu/Desk19.10
        
        1. Now we’ll mount the Ubuntu 19.10 installer over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
        mount -o loop -t iso9660 /{full path where you have the iso stored}/ubuntu-19.10-desktop-amd64.iso /mnt/loop
        
        cp -R /mnt/loop/* /images/os/ubuntu/Desk19.10
        umount /mnt/loop
        
        1. Finally we’ll copy the pxe boot kernel and intfs to the tftpboot directory. We’ll need to download the netboot version from here: http://archive.ubuntu.com/ubuntu/dists/eoan/main/installer-amd64/current/images/netboot/netboot.tar.gz This version of bzlinuz.efi and initrd.lz support booting over an NFS share instead of the local DVD Drive.
        wget http://archive.ubuntu.com/ubuntu/dists/eoan/main/installer-amd64/current/images/netboot/netboot.tar.gz
        tar -zxf netboot.tar.gz
        cp ./ubuntu-installer/amd64/linux /tftpboot/os/ubuntu/Desk19.10
        cp ./ubuntu-installer/amd64/initrd.gz /tftpboot/os/ubuntu/Desk19.10
        
        1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
        2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
          Set the following fields
          Menu Item: os.Ubuntu.Desktop.19.10
          Description: Ubuntu Desktop 19.10
          Parameters:
          kernel tftp://${fog-ip}/os/ubuntu/Desk19.10/linux
          initrd tftp://${fog-ip}/os/ubuntu/Desk19.10/initrd.gz
          imgargs linux root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/images/os/ubuntu/Desk19.10/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=us quiet splash ip=dhcp rw
          boot || goto MENU
          Menu Show with: All Hosts
        3. That’s it, just pxe boot your target system and pick Ubuntu Desktop 19.10 from the FOG iPXE boot menu.

        References:

        Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

        1 Reply Last reply Reply Quote 1
        • george1421G
          george1421 Moderator
          last edited by george1421

          Veeam Agent Rescue DVD

          1. First we’ll create the required directories:
          mkdir -p /tftpboot/os/veeam
          
          1. Now we’ll mount the Veeam Recovery ISO over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
          mount -o loop /{full path where you have the iso stored}/ VeeamRecoveryMedia.iso /mnt/loop
          
          cp /mnt/loop/boot/BCD /tftpboot/os/veeam/
          cp /mnt/loop/boot/boot.sdi /tftpboot/os/veeam/
          cp /mnt/loop/sources/boot.wim /tftpboot/os/veeam/
          umount /mnt/loop
          
          1. Download and install the latest wimboot kernel and extract it from the zip file.
          cd /tmp
          wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
          unzip wimboot-latest.zip
          
          1. Copy the wimboot file from the archive directory to root of the /tftpboot directory (we’ll need this for every windows boot media, so we’ll place it in a common spot).
          cp ./wimboot-2.6.0-signed/wimboot /tftpboot
          
          1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this Veeam Recover Image.
          2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
            Set the following fields
            Menu Item: os.VeeamRecovery
            Description: Veeam Agent 4
            Parameters:
            set tftp-path tftp://${fog-ip}
            set pe-path ${tftp-path}/os/veeam
            kernel ${tftp-path}/wimboot gui
            imgfetch --name BCD ${pe-path}/BCD BCD
            imgfetch --name boot.sdi ${pe-path}/boot.sdi boot.sdi
            imgfetch --name boot.wim ${pe-path}/boot.wim boot.wim
            boot || goto MENU
          3. That’s it, just pxe boot your target system and pick Veeam Agent 4 from the FOG iPXE boot menu.

          Bonus round NOTE: the code below doesn't work at the moment, I'm getting an HTTP access denied message. The info is right, there is just something with apache at the moment that is stopping access to these individual files
          The above method shows how to load the Veeam Recover image over tftp. The following instructions show how to do the same thing over the faster http protocol.

          1. First we’ll create the required directories:
          mkdir -p /var/www/html/os/veeam
          
          1. Now we’ll mount the Veeam Recovery ISO over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
          mount -o loop /{full path where you have the iso stored}/ VeeamRecoveryMedia.iso /mnt/loop
          
          cp /mnt/loop/boot/BCD /var/www/html/os/veeam
          cp /mnt/loop/boot/boot.sdi /var/www/html/os/veeam
          cp /mnt/loop/sources/boot.wim /var/www/html/os/veeam
          umount /mnt/loop
          
          1. Download and install the latest wimboot kernel and extract it from the zip file.
          cd /tmp
          wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
          unzip wimboot-latest.zip
          
          1. Copy the wimboot file from the archive directory to root of the /var/www/html/os directory (we’ll need this for every windows boot media, so we’ll place it in a common spot).
          cp ./wimboot-2.6.0-signed/wimboot /var/www/html/os
          
          1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this Veeam Recover Image.
          2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
            Set the following fields
            Menu Item: os.VeeamRecoveryHTTP
            Description: Veeam Agent 4 (http)
            Parameters:
            set http-path http://${fog-ip}/os
            set pe-path ${http-path}/veeam
            kernel ${http-path}/wimboot gui
            imgfetch --name BCD ${pe-path}/BCD BCD
            imgfetch --name boot.sdi ${pe-path}/boot.sdi boot.sdi
            imgfetch --name boot.wim ${pe-path}/boot.wim boot.wim
            boot || goto MENU
          3. That’s it, just pxe boot your target system and pick Veeam Agent 4 (http) from the FOG iPXE boot menu.

          Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

          1 Reply Last reply Reply Quote 0
          • george1421G
            george1421 Moderator
            last edited by george1421

            Ubuntu 1910 Server

            WARNING: The installer files needed for 19.10 has been removed from the download site. Noticed 25-Jan-2021. This tutorial is for reference only.

            1. First we’ll create the required directories:
            mkdir -p /images/os/ubuntu/Server19.10
            mkdir -p /tftpboot/os/ubuntu/Server19.10
            
            1. Now we’ll mount the Ubuntu Server 19.10 installer over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
            mount -o loop -t iso9660 /{full path where you have the iso stored}/ubuntu-19.10-live-server-amd64.iso /mnt/loop
            
            cp -R /mnt/loop/* /images/os/ubuntu/Server19.10
            umount /mnt/loop
            
            1. Finally we’ll copy the pxe boot kernel and intfs to the tftpboot directory. We’ll need to download the netboot version from here: http://archive.ubuntu.com/ubuntu/dists/eoan/main/installer-amd64/current/images/netboot/netboot.tar.gz This version of bzlinuz.efi and initrd.lz support booting over an NFS share instead of the local DVD Drive.
            wget http://archive.ubuntu.com/ubuntu/dists/eoan/main/installer-amd64/current/images/netboot/netboot.tar.gz
            tar -zxf netboot.tar.gz
            cp ./ubuntu-installer/amd64/linux /tftpboot/os/ubuntu/Server19.10
            cp ./ubuntu-installer/amd64/initrd.gz /tftpboot/os/ubuntu/Server19.10
            
            1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
            2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
              Set the following fields
              Menu Item: os.Ubuntu.Server.19.10
              Description: Ubuntu Server 19.10
              Parameters:
              kernel tftp://${fog-ip}/os/ubuntu/Server19.10/linux
              initrd tftp://${fog-ip}/os/ubuntu/Server19.10/initrd.gz
              imgargs linux root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/images/os/ubuntu/Server19.10/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=us quiet splash ip=dhcp rw
              boot || goto MENU
              Menu Show with: All Hosts
            3. That’s it, just pxe boot your target system and pick Ubuntu Server 19.10 from the FOG iPXE boot menu.

            References:

            Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

            1 Reply Last reply Reply Quote 0
            • george1421G
              george1421 Moderator
              last edited by Sebastian Roth

              Ubuntu 20.04 Server

              This is solution still under investigation. It appears that Canonical has changed how their installer works and for me, its a bit strange since now they require the entire live iso to run from memory. That means transferring the 2.1GB iso image over the network to the network computer before the kernel boots. This kind of (imo) limits the target hardware to have at least 4GB of ram (2GB for the iso, 1GB for the OS and then 1GB for free RAM, said from an uneducated guess POV). To me this change seems a bit tone deaf to the Ubuntu user community only supplying the iso image in live boot mode.

              Reference threads:
              https://discourse.ubuntu.com/t/netbooting-the-live-server-installer/14510
              https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/1429030?_ga=2.229105820.1620676036.1595355002-1365610273.1592834629
              https://forums.fogproject.org/topic/14590/20-04-autoinstall

              Also looking into the mini.iso referenced here (but only for bios installs, it appears that the uefi bits are broken and won’t be fix to drive folks away from this solution): http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot

              Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

              1 Reply Last reply Reply Quote 0
              • george1421G
                george1421 Moderator
                last edited by george1421

                Debian 10.5 Standard-Live

                1. First we’ll create the required directories:
                mkdir -p /images/os/debian/10.5L
                mkdir -p /tftpboot/debian/10.5L
                
                # for FOG Server with RedHat based OS
                mkdir -p /var/www/html/os/debian/10.5L
                # for FOG Server with Debian based OS
                mkdir -p /var/www/os/debian/10.5L
                
                1. Now we’ll mount the Debian live DVD over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
                mount -o loop -t iso9660 /{full path where you have the iso stored}/debian-live-10.5.0-amd64-standard.iso /mnt/loop
                
                cp -R /mnt/loop/* /images/os/debian/10.5L
                umount /mnt/loop
                
                1. Finally we’ll copy the pxe boot kernel and intfs to the tftpboot directory.
                cp /images/os/debian/10.5L/live/vmlinuz-4.19.0-10-amd64 /tftpboot/debian/10.5L/vmlinuz
                cp /images/os/debian/10.5L/live/initrd.img-4.19.0-10-amd64 /tftpboot/debian/10.5L/initrd
                
                # for FOG Server with RedHat based OS
                cp /images/os/debian/10.5L/live/filesystem.squashfs /var/www/html/os/debian/10.5L
                # for FOG Server with Debian based OS
                cp /images/os/debian/10.5L/live/filesystem.squashfs /var/www/os/debian/10.5L
                
                1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                  Set the following fields
                  Menu Item: os.Debian.10.5L
                  Description: Debian 10.5 Live
                  Parameters:
                  kernel tftp://${fog-ip}/debian/10.5L/vmlinuz
                  initrd tftp://${fog-ip}/debian/10.5L/initrd
                  imgargs vmlinuz boot=live components fetch=http://${fog-ip}/os/debian/10.5L/filesystem.squashfs
                  boot || goto MENU
                  Menu Show with: All Hosts
                3. That’s it, just pxe boot your target system and pick Debian 10.5 Live from the FOG iPXE boot menu.

                Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                1 Reply Last reply Reply Quote 0
                • george1421G
                  george1421 Moderator
                  last edited by george1421

                  Acronis 2018 (WinPE)

                  1. First we’ll create the required directories:
                  mkdir -p /tftpboot/os/acronis18
                  
                  1. Now we’ll mount the Acronis 2018 WinPE ISO over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
                  mount -o loop /{full path where you have the iso stored}/acronis2018pe.iso /mnt/loop
                  
                  cp /mnt/loop/boot/BCD /tftpboot/os/acronis18/
                  cp /mnt/loop/boot/boot.sdi /tftpboot/os/acronis18/
                  cp /mnt/loop/sources/boot.wim /tftpboot/os/acronis18/
                  umount /mnt/loop
                  
                  1. Download and install the latest wimboot kernel and extract it from the zip file.
                  cd /tmp
                  wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
                  unzip wimboot-latest.zip
                  
                  1. Copy the wimboot file from the archive directory to root of the /tftpboot directory (we’ll need this for every windows boot media, so we’ll place it in a common spot).
                  cp ./wimboot-2.6.0-signed/wimboot /tftpboot
                  
                  1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this Acronis 2018 WinPE Image.
                  2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                    Set the following fields
                    Menu Item: os.Acronis2018PE
                    Description: Acronis 2018 WinPE
                    Parameters:
                    set tftp-path tftp://${fog-ip}
                    set pe-path ${tftp-path}/os/acronis18
                    kernel ${tftp-path}/wimboot gui
                    imgfetch --name BCD ${pe-path}/BCD BCD
                    imgfetch --name boot.sdi ${pe-path}/boot.sdi boot.sdi
                    imgfetch --name boot.wim ${pe-path}/boot.wim boot.wim
                    boot || goto MENU
                  3. That’s it, just pxe boot your target system and pick Acronis 2018 WinPE from the FOG iPXE boot menu.

                  Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                  1 Reply Last reply Reply Quote 1
                  • george1421G
                    george1421 Moderator
                    last edited by george1421

                    XenServer 8.2 Installer

                    1. Create the target directory on the FOG server
                    mkdir -p /tftpboot/EFI/xenserver
                    
                    
                    1. From the XenServer installer iso the following files and place them in the /tftpboot/EFI/xenserver directory
                      grubx64.efi install.img vmlinuz xen.gz
                    2. Create the grub.cfg configuration file in the /tftpboot/EFI/xenserver and insert this text into the grub.cfg file.
                    menuentry "XenServer Install (serial)" {
                     multiboot2 /EFI/xenserver/xen.gz dom0_mem=1024M,max:1024M watchdog dom0_max_vcpus=4 com1=115200,8n1 console=com1,vga
                     module2 /EFI/xenserver/vmlinuz console=hvc0
                     module2 /EFI/xenserver/install.img
                    } 
                    
                    1. Create a new FOG iPXE menu entry using the FOG Web ui FOG Configuration -> New iPXE Menu. Fill out the form using this data
                      Menu Item: os.xen.install
                      Description: XEN 8.2 Installer
                      Parameters:
                      chain tftp://${fog-ip}/EFI/xenserver/grubx64.efi || goto MENU
                      Menu Show with: All Hosts
                    2. That’s it, just pxe boot your target system and pick XEN 8.2 Installer from the FOG iPXE boot menu.

                    ref: https://support.citrix.com/article/CTX217680
                    ref: https://forums.fogproject.org/topic/14970/uefi-boot-install-of-xenserver-close-but-no-cigar

                    Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                    1 Reply Last reply Reply Quote 0
                    • george1421G
                      george1421 Moderator
                      last edited by george1421

                      Hiren’s BootCD PE x64 (v1.0.1)

                      Configuration currently works for UEFI only. It appears the wim file is missing bootmgr.exe for the BIOS booting systems

                      Be aware that your target computer will need at least 4GB of ram to deploy this image. The boot.wim file is 1.3GB in size. So you need 1.3GB of RAM just for the disk image, and then additional RAM to run the OS once its booted

                      1. First we’ll create the required directories:
                      mkdir -p /tftpboot/os/Hiren101
                      
                      1. Now we’ll mount the WinPE iso over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
                      mount -o loop /{full path where you have the iso stored}/HBCD_PE_x64.iso /mnt/loop
                      
                      cp /mnt/loop/BOOTMGR /tftpboot/os/Hiren101
                      cp /mnt/loop/boot/bcd /tftpboot/os/Hiren101
                      cp /mnt/loop/boot/boot.sdi /tftpboot/os/Hiren101
                      cp /mnt/loop/sources/boot.wim /tftpboot/os/Hiren101
                      umount /mnt/loop
                      
                      1. Download and install the latest wimboot kernel and extract it from the zip file. 10-Aug-21: There has been changes to the Hiren's wim file since this tutorial was created. To get Hiren's to properly boot you need to use winboot version **2.7.3** or later found here: https://github.com/ipxe/wimboot/blob/master/wimboot
                        The issue was discussed in this post: https://forums.fogproject.org/post/144293
                      cd /tmp
                      wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
                      unzip wimboot-latest.zip
                      
                      1. Copy the wimboot file from the archive directory to root of the os directory (we’ll need this for every windows boot media, so we’ll place it in a common spot).
                      cp ./wimboot-2.6.0-signed/wimboot /tftpboot/os
                      
                      1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                      2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                        Set the following fields
                        Menu Item: os.Hiren101
                        Description: Hirens BootCD PE x64 (v1.0.1)
                        Parameters:
                        set tftp-path tftp://${fog-ip}/os
                        set pe-path ${tftp-path}/Hiren101
                        kernel ${tftp-path}/wimboot gui
                        imgfetch --name BCD ${pe-path}/bcd BCD
                        imgfetch --name boot.sdi ${pe-path}/boot.sdi boot.sdi
                        imgfetch --name bootmgr ${pe-path}/BOOTMGR bootmgr
                        imgfetch --name boot.wim ${pe-path}/boot.wim boot.wim
                        boot || goto MENU

                      @mikr said that this parameter block worked with Hiren BootCD 1.0.2 in uefi mode ref: https://forums.fogproject.org/post/146996 Well done!

                      set tftp-path tftp://${fog-ip}
                      set http-path http://${fog-ip}/images/tools/hbcd102
                      kernel ${tftp-path}/win/wimboot gui
                      imgfetch --name bootmgr.exe ${http-path}/bootmgr.exe bootmgr.exe
                      imgfetch --name bootx64.efi ${http-path}/efi/boot/bootx64.efi bootx64.efi
                      imgfetch --name BCD ${http-path}/boot/bcd BCD
                      imgfetch --name boot.sdi ${http-path}/boot/boot.sdi boot.sdi
                      imgfetch --name boot.wim ${http-path}/sources/boot.wim boot.wim
                      boot || goto MENU
                      
                      1. That’s it, just pxe boot your target system and pick ** BootCD PE x64 (v1.0.1)** from the FOG iPXE boot menu.

                      References: None

                      Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                      1 Reply Last reply Reply Quote 0
                      • george1421G
                        george1421 Moderator
                        last edited by george1421

                        Debian 10.7 Standard -Live

                        1. First we’ll create the required directories:
                        mkdir -p /images/os/debian/10.7L
                        mkdir -p /tftpboot/debian/10.7L
                        
                        # for FOG Server with Redhat based OS
                        mkdir -p /var/www/html/os/debian/10.7L
                        # for FOG Server with Debian based OS
                        mkdir -p /var/www/os/debian/10.7L
                        
                        1. Now we’ll mount the Debian live DVD over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
                          I need to explain something here. The iso below is the "standard" version which is the debian console version. If you want to live boot into the debian XWindows interface you will need to download the ISO that contains your desired XWindows manager like Mate, XFCE, KDE, Gnome, etc The instructions are the same for all ISO, just the size if the initrd and squashfs will change
                        mount -o loop -t iso9660 /{full path where you have the iso stored}/debian-live-10.7.0-amd64-standard.iso /mnt/loop
                        
                        cp -R /mnt/loop/* /images/os/debian/10.7L
                        umount /mnt/loop
                        
                        1. Finally we’ll copy the pxe boot kernel and intfs to the tftpboot directory.
                        cp /images/os/debian/10.7L/live/vmlinuz-4.19.0-13-amd64 /tftpboot/debian/10.7L/vmlinuz
                        cp /images/os/debian/10.7L/live/initrd.img-4.19.0-13-amd64 /tftpboot/debian/10.7L/initrd
                        
                        # for FOG Server with RedHat based OS
                        cp /images/os/debian/10.7L/live/filesystem.squashfs /var/www/html/os/debian/10.7L
                        # for FOG Server with Debian based OS
                        cp /images/os/debian/10.7L/live/filesystem.squashfs /var/www/os/debian/10.7L
                        
                        1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                        2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                          Set the following fields
                          Menu Item: os.Debian.10.7L
                          Description: Debian 10.7 Live
                          Parameters:
                          kernel tftp://${fog-ip}/debian/10.7L/vmlinuz
                          initrd tftp://${fog-ip}/debian/10.7L/initrd
                          imgargs vmlinuz initrd=initrd boot=live components fetch=http://${fog-ip}/os/debian/10.7L/filesystem.squashfs
                          boot || goto MENU
                          Menu Show with: All Hosts
                        3. That’s it, just pxe boot your target system and pick Debian 10.7 Live from the FOG iPXE boot menu.

                        Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                        1 Reply Last reply Reply Quote 1
                        • george1421G
                          george1421 Moderator
                          last edited by george1421

                          Debian 10.7 Standard

                          1. First we’ll create the required directories:
                          mkdir -p /images/os/debian/Server10.7
                          mkdir -p /tftpboot/os/debian/Server10.7
                          
                          1. Now we’ll mount the Debian Server 10.7 installer over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
                          mount -o loop -t iso9660 /{full path where you have the iso stored}/debian-10.7.0-amd64-DVD-1.iso /mnt/loop
                          
                          cp -R /mnt/loop/* /images/os/debian/Server10.7
                          umount /mnt/loop
                          
                          1. Finally we’ll copy the pxe boot kernel and intfs to the tftpboot directory. We’ll need to download the netboot version from here: https://deb.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz This version of bzlinuz.efi and initrd.lz support booting over an NFS share instead of the local DVD Drive.
                          wget https://deb.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz
                          tar -zxf netboot.tar.gz
                          cp ./debian-installer/amd64/linux /tftpboot/os/debian/Server10.7
                          cp ./debian-installer/amd64/initrd.gz /tftpboot/os/debian/Server10.7
                          
                          1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                          2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                            Set the following fields
                            Menu Item: os.Debian.Server.10.7
                            Description: Debian Server 10.7
                            Parameters:
                            kernel tftp://${fog-ip}/os/debian/Server10.7/linux
                            initrd tftp://${fog-ip}/os/debian/Server10.7/initrd.gz
                            imgargs linux initrd=initrd.gz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/images/os/debian/Server10.7/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=us quiet splash ip=dhcp rw
                            boot || goto MENU
                            Menu Show with: All Hosts
                          3. That’s it, just pxe boot your target system and pick Debian Server 10.7 from the FOG iPXE boot menu.

                          References:

                          Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                          Tom ElliottT 1 Reply Last reply Reply Quote 0
                          • Tom ElliottT
                            Tom Elliott @george1421
                            last edited by

                            This post is deleted!
                            1 Reply Last reply Reply Quote 0
                            • george1421G
                              george1421 Moderator
                              last edited by george1421

                              Windows 10 BIOS/UEFI 2021 edition
                              17-Mar-21 this post is currently being edited, so its not complete

                              1. First we’ll create the required directories. In this tutorial we will use a windows server/workstation to host the installer files. This is the easiest solution, but if your goal is to only use the FOG server follow the instructions at the end of this thread for SAMBA install instructions. On your file server copy the content of the Windows installation DVD to a folder on your file server. Be sure to set the permission so that everyone has read only access to that directory. Now share that directory. For this tutorial the Windows file server will be called \fileserv01 with the share name of \win10$

                              2. In this next step you will need a valid user ID. It can be a domain level or machine level. Create this user id and password. For this tutorial we will create a domain account called consento\user01

                              3. Beyond this point you will need a Windows 10 1909 (or later) workstation. You also need to be aware what version of windows 10 you intend to deploy. You need to download the proper version of Windows ADK for the version of Windows 10 you will execute these instructions against.

                              4. Download the appropriate ADK for the version of Win10 you have from here: https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit You will need both downloads “Windows ADK for Windows 10” and “Windows PE add-on for the ADK”.

                              5. Launch the ADK installer. You will be presented with about 15 different modules to install. You only “need” the Deployment Tools feature from the “Windows ADK for Windows 10”. Now run the “Windows PE add-on for the ADK” installer . From this installer you will need (the only option) Windows Preinstallation Environment (Windows PE).

                              6. It might take as long as 20 minutes to install both packages depending on your network connection and target computer.

                              7. While this step is not necessary it is also a bit of an assurance that WinPE10 will have a good install of basic drivers needed to boot current hardware.

                              8. Download the WinPE10 drivers from the Dell Enterprise site here: https://www.dell.com/support/kbdoc/en-us/000180533/dell-command-deploy-driver-packs As always download the latest WinPE Cab pack. At the time of this writing it was A23.

                              9. I realize that you may not be using a Dell for your imaging, don’t worry these drivers only cover network and disk subsystems.

                              10. Extract the winpe folder from the cab file and copy it in the winpe folder in the root of C drive (c:\winpe).

                              11. After the install launch the ADK environment from Start Button->Windows Kits->Windows ADK->Deployment and Imaging Tools Environment Make sure you run this command window as Administrator. FYI: you’ll need admin rights to use DISM.

                              12. In the Deployment and Imaging Tools Environment command window you just opened you will need to execute the following commands.

                              13. For the rest of the instructions we’ll just go copy and paste. Its fast and quick.

                              cd c:\
                              copype amd64 C:\WinPE_amd64
                              
                              Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount"
                              
                              Dism /Add-Driver /Image:"C:\WinPE_amd64\mount" /Driver:"c:\winpe\x64" /Recurse /ForceUnsigned
                              
                              1. Now we need to edit the WinPE startup file to have it mount our windows (samba) network share.
                              notepad C:\WinPE_amd64\mount\Windows\System32\Startnet.cmd
                               @echo off
                                echo Setting up WinPE
                                wpeinit
                              
                                REM Set power configuration to Performance
                                powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
                              
                                echo Connecting to the remote share
                                net use z: \\<server_name>\<share_name> /user:<domain\uid> <pass>
                                z:
                                setup.exe
                              

                              I stopped here editing this document
                              15. Now that we have the settings the way we need them. Lets close the wim file and create our ISO.

                              Dism /Unmount-Image /MountDir:"C:\WinPE_amd64\mount" /commit
                              
                              MakeWinPEMedia /ISO C:\WinPE_amd64 C:\WinPE_amd64\WinPE_amd64.iso
                              
                              1. Now move the C:\WinPE_amd64\WinPE_amd64.iso file to the FOG server in the /images/os/mswindows/7Pro-x64 directory.

                              2. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.

                              3. NOTE: This instruction is for legacy bios only. If you need to boot both uefi and bios installs follow the WinPE10 section above. The issue is that memdisk utility is not supported in uefi mode, so another method is required. For bios mode memdisk IS the quickest method to boot a small iso image. https://forums.fogproject.org/topic/10944/using-fog-to-pxe-boot-into-your-favorite-installer-images/10
                                In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                                Set the following fields
                                Menu Item: os.Win7Pro-x64
                                Description: Windows 7 Pro x64 OEM
                                Parameters:
                                initrd nfs://${fog-ip}:/images/os/mswindows/7Pro-x64/WinPE_amd64.iso
                                chain memdisk iso raw
                                boot || goto MENU
                                Menu Show with: All Hosts

                              4. That’s it, just pxe boot your target system and pick Windows 7 Pro x64 OEM from the FOG iPXE boot menu.

                              For this process to function you must also setup SAMBA on your fog server below.

                              References:
                              https://forums.fogproject.org/topic/7765/pxe-booting-into-ms-windows-7-setup

                              Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                              1 Reply Last reply Reply Quote 3
                              • george1421G
                                george1421 Moderator
                                last edited by george1421

                                Bitdefender Rescue CD 31.01.2011

                                1. First we’ll create the required directory:
                                mkdir -p /tftpboot/os/bitdefender
                                
                                1. Now we’ll mount the Bitdefender Rescue CD installer over the loop directory. Then we’ll copy the required files to the directory we built above. Note: when I downloaded the iso from the bitdefender web site the file came down as file with no extension. I tacked on .iso then I was able to mount it with my linux mint desktop. I rename the entire file name to BitdefenderRescue.iso for this tutorial.
                                mount -o loop -t iso9660 /{full path where you have the iso stored}/BitdefenderRescue.iso /mnt/loop
                                
                                cp -R /mnt/loop/casper/vmlinuz /images/os/bitdefender
                                cp -R /mnt/loop/casper/initrd.gz /images/os/bitdefender
                                umount /mnt/loop
                                
                                1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                                2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                                  Set the following fields
                                  Menu Item: os.BitdefenderRescue
                                  Description: BitdefenderRescue v31.01.2011
                                  Parameters:
                                  kernel tftp://${fog-ip}/os/bitdefender/vmlinuz
                                  initrd tftp://${fog-ip}/os/bitdefender/initrd.gz
                                  imgargs vmlinuz initrd=initrd.gz file=file=/cdrom/preseed/ubuntu.seed boot=casper splash vga=791 lang=us
                                  boot || goto MENU
                                  Menu Show with: All Hosts
                                3. That’s it, just pxe boot your target system and pick BitdefenderRescue v31.01.2011 from the FOG iPXE boot menu.

                                I'm going to suspect this will not work because of the reference of the ubuntu.seed file. The image args are saying to look on the cdrom for that file, but since we are pxe booting from memory it won't find that file on the dvd/cvd. I'm sure it can be worked out. It will just take some debugging
                                References:

                                Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                                1 Reply Last reply Reply Quote 0
                                • george1421G
                                  george1421 Moderator @george1421
                                  last edited by george1421

                                  Platform Specific Bootable ISO, PER620

                                  There is a bug in the kernel parameters. I'm suspecting the root= value is incorrect. I'm getting an error when the rpms are trying to update

                                  1. First we’ll create the required directories:
                                  mkdir -p /images/os/dell/pfs620
                                  mkdir -p /tftpboot/os/dell/pfs620
                                  
                                  1. Now we’ll mount the Dell Bootable ISO over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
                                  mount -o loop -t iso9660 /{full path where you have the iso stored}/PER620_BOOTABLE_21.04.00.184.iso /mnt/loop
                                  
                                  cp -R /mnt/loop/* /images/os/dell/pfs620
                                  umount /mnt/loop
                                  
                                  1. Finally we’ll copy the pxe boot kernel and intfs to the tftpboot directory.
                                  cp /images/os/dell/pfs620/isolinux/SA.1 /tftpboot/os/dell/pfs620
                                  cp /images/os/dell/pfs620/isolinux/SA.2 /tftpboot/os/dell/pfs620
                                  
                                  
                                  1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                                  2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                                    Set the following fields
                                    Menu Item: os.platformR620
                                    Description: Platform Specific Firmware R620
                                    Parameters:
                                    kernel tftp://${fog-ip}/os/dell/pfs620/SA.1
                                    initrd tftp://${fog-ip}/os/dell/psf620/SA.2
                                    imgargs SA.1 initrd=SA.2 root=live:http://${fog-ip}/dellsquashfs.img rootfstype=auto rd.live.image rd.writable.fsimg rw DEBUG=0 share_type=nfs share_location=${fog-ip}:/images/os/dell/pfs620 share_opts=nolock loglevel=7 BUILD=0 selinux=0 edd=off rd.md=0 rd.dm=0 quiet – share_script=drm_files/apply_bundles.sh
                                    boot || goto MENU
                                    Menu Show with: All Hosts
                                  3. That’s it, just pxe boot your target system and pick Platform Specific Firmware R620 from the FOG iPXE boot menu.

                                  References:
                                  https://www.dell.com/support/home/en-us/drivers/driversdetails?driverId=FRMMC&oscode=naa&productcode=poweredge-R620

                                  Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                                  1 Reply Last reply Reply Quote 0
                                  • george1421G
                                    george1421 Moderator @george1421
                                    last edited by

                                    ESXi 7.0u2

                                    ***This menu entry is still under development. It has not been tested in a production environment***

                                    NOTE: This guidance only supports network booting of the uefi installer for ESXi.

                                    1. First we’ll create the required directories:
                                    mkdir -p /images/os/esxi/7.0u2
                                    
                                    1. Now we’ll mount the ESXi installer iso over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
                                    mount -o loop -t iso9660 /{full path where you have the iso stored}/VMware-VMvisor-Installer-7.0U2a-17867351.x86_64.iso /mnt/loop
                                    
                                    cp -R /mnt/loop/* /images/os/esxi/7.0u2
                                    umount /mnt/loop
                                    
                                    1. Edit the boot configuration file to use NFS to access all of ESXi’s files.
                                    # remove forward slashes from the config file
                                    sed -i 's/\///g' /images/os/esxi/7.0u2/efi/boot/boot.cfg
                                    

                                    Now we need to edit the/images/os/esxi/7.0u2/efi/boot/boot.cfg file to insert or modify the prefix parameter. Insert/modify the following line just below the title parameter. Also, be sure to replace {fog_server_ip} (exactly including the curly braces) with the actual IP address of your fog server. Your prefix line should look similar to this:

                                    prefix=nfs://192.168.1.20:/images/os/esxi/7.0u2
                                    
                                    1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                                    2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                                      Set the following fields
                                      Menu Item: os.esxi7.0u2
                                      Description: ESXi 7.0u2 Installer
                                      Parameters:
                                      kernel nfs://${fog-ip}:/images/os/esxi/7.0u2/efi/boot/bootx64.efi -c nfs://${fog-ip}:/images/os/esxi/7.0u2/efi/boot/boot.cfg
                                      boot || goto MENU
                                      Menu Show with: All Hosts
                                    3. That’s it, just pxe boot your target system and pick ESXi 7.0u2 Installer from the FOG iPXE boot menu.

                                    Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                                    1 Reply Last reply Reply Quote 0
                                    • george1421G
                                      george1421 Moderator @george1421
                                      last edited by george1421

                                      Debian 11.3 Server

                                      1. First we’ll create the required directories:
                                      mkdir -p /images/os/debian/Server11.3
                                      mkdir -p /tftpboot/os/debian/Server11.3
                                      
                                      1. Now we’ll mount the Debian Server 11.3 installer over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.
                                      mount -o loop -t iso9660 /{full path where you have the iso stored}/debian-11.3.0-amd64-DVD-1.iso /mnt/loop
                                      
                                      cp -R /mnt/loop/* /images/os/debian/Server11.3
                                      umount /mnt/loop
                                      
                                      1. Finally we’ll copy the pxe boot kernel and intfs to the tftpboot directory. We’ll need to download the netboot version from here: https://deb.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz This version of bzlinuz.efi and initrd.lz support booting over an NFS share instead of the local DVD Drive.
                                      wget https://deb.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz
                                      tar -zxf netboot.tar.gz
                                      cp ./debian-installer/amd64/linux /tftpboot/os/debian/Server11.3
                                      cp ./debian-installer/amd64/initrd.gz /tftpboot/os/debian/Server11.3
                                      
                                      1. The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                                      2. In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                                        Set the following fields
                                        Menu Item: os.Debian.Server.11.3
                                        Description: Debian Server 11.3
                                        Parameters:
                                        kernel tftp://${fog-ip}/os/debian/Server11.3/linux
                                        initrd tftp://${fog-ip}/os/debian/Server11.3/initrd.gz
                                        imgargs linux initrd=initrd.gz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/images/os/debian/Server11.3/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=us quiet splash ip=dhcp rw
                                        boot || goto MENU
                                        Menu Show with: All Hosts
                                      3. That’s it, just pxe boot your target system and pick Debian Server 11.3 from the FOG iPXE boot menu.

                                      References:

                                      Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                                      1 Reply Last reply Reply Quote 0
                                      • george1421G george1421 referenced this topic on
                                      • george1421G george1421 referenced this topic on
                                      • george1421G george1421 referenced this topic on
                                      • Tom ElliottT Tom Elliott referenced this topic on
                                      • D dvorak referenced this topic on
                                      • george1421G george1421 referenced this topic on
                                      • george1421G george1421 referenced this topic on
                                      • george1421G george1421 referenced this topic on
                                      • george1421G george1421 referenced this topic on
                                      • george1421G george1421 referenced this topic on
                                      • M mashina referenced this topic on
                                      • george1421G george1421 referenced this topic on
                                      • george1421G
                                        george1421 Moderator
                                        last edited by

                                        Paragon Hard Disk Manager

                                        Information kindly contributed by @Wolfbane8653

                                        Configuration currently works for UEFI only. It appears the wim file is missing bootmgr.exe for the BIOS booting systems

                                        It is highly recommended to use this on a machine that has 4GB+ RAM.

                                        First we’ll create the required directories:

                                        mkdir -p /var/www/fog/Tools/{iso folder name}
                                        chmod -R 777 /var/www/fog/Tools/{iso folder name}
                                        

                                        Now we’ll mount the WinPE iso over the loop directory. Then we’ll copy the contents of the DVD to the directory we built above.

                                        mkdir -p /mnt/loop
                                        mount -o loop /{full path where you have the iso stored}/{iso file} /mnt/loop
                                        

                                        We are going to copy to /var/www/fog/Tools so we can use the http protocal already setup for fog management.

                                        cp /mnt/loop/bootmgr /var/www/fog/Tools/{iso folder name}
                                        cp /mnt/loop/boot/bcd /var/www/fog/Tools/{iso folder name}
                                        cp /mnt/loop/boot/boot.sdi /var/www/fog/Tools/{iso folder name}
                                        cp /mnt/loop/sources/boot.wim /var/www/fog/Tools/{iso folder name}
                                        cp /mnt/loop/efi /var/www/fog/Tools/{iso folder name}
                                        
                                        umount /mnt/loop
                                        

                                        Download and install the latest wimboot kernel and extract it from the zip file.

                                        • https://github.com/ipxe/wimboot/blob/master/wimboot
                                          The issue was discussed in this post: https://forums.fogproject.org/post/144293
                                          We will use tftp protocal for this file in the fog menu.
                                        cd /tmp
                                        wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
                                        unzip wimboot-latest.zip
                                        

                                        Copy the wimboot file from the archive directory to root of the os directory (we’ll need this for every windows boot media, so we’ll place it in a common spot).

                                        mkdir -p /tftpboot/os
                                        cp ./wimboot-2.6.0-signed/wimboot /tftpboot/os
                                        chmod -R 777 tftpboot/os
                                        

                                        The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
                                        In the fog WebGUI go to FOG Configuration->iPXE New Menu Entry
                                        Set the following fields

                                        Menu Item: os.{iso file name}
                                        Description: {iso file you would like to boot from}
                                        Parameters:
                                        set tftp-path tftp://${fog-ip}
                                        set http-path http://${fog-ip}/fog/Tools/HD_Manager
                                        kernel ${tftp-path}/os/wimboot gui
                                        imgfetch --name bootmgr ${http-path}/bootmgr bootmgr
                                        imgfetch --name bootx64.efi ${http-path}/efi/boot/en_us/bootx64.efi bootx64.efi
                                        imgfetch --name BCD ${http-path}/bcd BCD
                                        imgfetch --name boot.sdi ${http-path}/boot.sdi boot.sdi
                                        imgfetch --name boot.wim ${http-path}/boot.wim boot.wim
                                        boot || goto MENU
                                        

                                        That’s it, just pxe boot your target system and pick os.{iso file name} from the FOG iPXE boot menu.

                                        Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                                        1 Reply Last reply Reply Quote 1
                                        • george1421G george1421 referenced this topic on
                                        • Tom ElliottT Tom Elliott referenced this topic on
                                        • george1421G
                                          george1421 Moderator @george1421
                                          last edited by

                                          Parted Magic version from May 2023

                                          Please see this article posted by @renewedharry

                                          https://forums.fogproject.org/topic/17498/successfully-booting-parted-magic

                                          Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

                                          1 Reply Last reply Reply Quote 0
                                          • Tom ElliottT Tom Elliott referenced this topic on
                                          • george1421G george1421 referenced this topic on
                                          • Tom ElliottT Tom Elliott referenced this topic on
                                          • O okafor-abc referenced this topic on
                                          • Tom ElliottT Tom Elliott referenced this topic on
                                          • george1421G george1421 referenced this topic on
                                          • 1
                                          • 2
                                          • 1 / 2
                                          • First post
                                            Last post

                                          234

                                          Online

                                          12.1k

                                          Users

                                          17.3k

                                          Topics

                                          155.3k

                                          Posts
                                          Copyright © 2012-2024 FOG Project