@louis-tasse said in Using FOG without PXE - FOG client on USB key:
if you can provide a starter image for network USB booting that would be awesome.
The instructions for creating the FOS linux boot drive is here: https://forums.fogproject.org/topic/7727/building-usb-booting-fos-image Look at the FOG forum chat for an additional hint.
In regards to what RipAU mentioned that method will also work, you gain the ability of multicast imaging and quick deploy image if you boot using iPXE. As was mentioned you just need to update the boot time script with the IP address of your fog server. FOG has the needed tools built in to compile ipxe, there is no need for the rom-o-matic site that seems to have been retired. I have a tutorial here on how to recompile ipxe on the fog server: https://forums.fogproject.org/topic/15826/updating-compiling-the-latest-version-of-ipxe I would run through the script the first time to compile everything. Now comes the part to integrate what RipAU mentioned. In the based directory where you cloned the fogproject github site (typically /root/fogproject or /opt/fogproject depending on whos instructions you used) There will be a src/ipxe directory. In that directory tere will be a src and src-efi directory, these are the source files used to create FOG’s version of iPXE. If you go into each of those directories there will be a file called ipxescript That is where the startup script for iPXE is.
#!ipxe
isset ${net0/mac} && ifopen net0 && dhcp net0 || goto dhcpnet1
echo Received DHCP answer on interface net0 && goto proxycheck
:dhcpnet1
isset ${net1/mac} && ifopen net1 && dhcp net1 || goto dhcpnet2
echo Received DHCP answer on interface net1 && goto proxycheck
:dhcpnet2
isset ${net2/mac} && ifopen net2 && dhcp net2 || goto dhcpall
echo Received DHCP answer on interface net2 && goto proxycheck
:dhcpall
dhcp && goto proxycheck || goto dhcperror
:dhcperror
prompt --key s --timeout 10000 DHCP failed, hit 's' for the iPXE shell; reboot in 10 seconds && shell || reboot
:proxycheck
isset ${proxydhcp/next-server} && set next-server ${proxydhcp/next-server} || goto nextservercheck
:nextservercheck
isset ${next-server} && goto netboot || goto setserv
:setserv
echo -n Please enter tftp server: && read next-server && goto netboot || goto setserv
:chainloadfailed
prompt --key s --timeout 10000 Chainloading failed, hit 's' for the iPXE shell; reboot in 10 seconds && shell || reboot
:netboot
chain tftp://${next-server}/default.ipxe || goto chainloadfailed
Remove the following lines from that script
isset ${proxydhcp/next-server} && set next-server ${proxydhcp/next-server} || goto nextservercheck
:nextservercheck
isset ${next-server} && goto netboot || goto setserv
:setserv
echo -n Please enter tftp server: && read next-server && goto netboot || goto setserv
now change the very last line
chain tftp://${next-server}/default.ipxe || goto chainloadfailed
Replacing ${next-server} with the IP address of your fog server. Do this for both the fogproject/src/src and fogproject/src/src-ipxe ipxescript files.
Now recompile iPXE and move the updated files to the /tftpboot directory as instructed in the previously linked tutorial.