Using FOG to PXE boot into your favorite installer images
-
Debian 10.7 Standard -Live
- 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
- 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
- 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
- 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.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 - That’s it, just pxe boot your target system and pick
Debian 10.7 Live
from the FOG iPXE boot menu.
-
Debian 10.7 Standard
- First we’ll create the required directories:
mkdir -p /images/os/debian/Server10.7 mkdir -p /tftpboot/os/debian/Server10.7
- 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
- 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
- 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.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 - That’s it, just pxe boot your target system and pick
Debian Server 10.7
from the FOG iPXE boot menu.
References:
-
This post is deleted! -
Windows 10 BIOS/UEFI 2021 edition
17-Mar-21 this post is currently being edited, so its not complete
-
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$
-
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
-
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.
-
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”.
-
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).
-
It might take as long as 20 minutes to install both packages depending on your network connection and target computer.
-
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.
-
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.
-
I realize that you may not be using a Dell for your imaging, don’t worry these drivers only cover network and disk subsystems.
-
Extract the winpe folder from the cab file and copy it in the winpe folder in the root of C drive (c:\winpe).
-
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. -
In the Deployment and Imaging Tools Environment command window you just opened you will need to execute the following commands.
-
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
- 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
-
Now move the C:\WinPE_amd64\WinPE_amd64.iso file to the FOG server in the /images/os/mswindows/7Pro-x64 directory.
-
The last bit of magic we need to do is setup a new FOG iPXE boot menu entry for this OS.
-
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 -
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 -
-
Bitdefender Rescue CD 31.01.2011
- First we’ll create the required directory:
mkdir -p /tftpboot/os/bitdefender
- 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 asfile
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 toBitdefenderRescue.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
- 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.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 - 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: -
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
- First we’ll create the required directories:
mkdir -p /images/os/dell/pfs620 mkdir -p /tftpboot/os/dell/pfs620
- 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
- 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
- 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.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 - That’s it, just pxe boot your target system and pick
Platform Specific Firmware R620
from the FOG iPXE boot menu.
-
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.
- First we’ll create the required directories:
mkdir -p /images/os/esxi/7.0u2
- 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
- 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 thetitle
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
- 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.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 - That’s it, just pxe boot your target system and pick
ESXi 7.0u2 Installer
from the FOG iPXE boot menu.
-
Debian 11.3 Server
- First we’ll create the required directories:
mkdir -p /images/os/debian/Server11.3 mkdir -p /tftpboot/os/debian/Server11.3
- 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
- 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
- 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.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 - That’s it, just pxe boot your target system and pick
Debian Server 11.3
from the FOG iPXE boot menu.
References:
-
-
-
-
-
-
-
-
-
-
-
-
-
Paragon Hard Disk Manager
Information kindly contributed by
@Wolfbane8653Configuration 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 fieldsMenu 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.
- https://github.com/ipxe/wimboot/blob/master/wimboot
-
-
-
Parted Magic version from May 2023
Please see this article posted by @renewedharry
https://forums.fogproject.org/topic/17498/successfully-booting-parted-magic
-
-
-
-