OK that makes sense. This got me going for driver deployment. Thank you for your help!
Posts
-
RE: Fog driver injection in 2026.posted in Tutorials
-
RE: Fog driver injection in 2026.posted in Tutorials
@Tom-Elliott Hey that did the trick. Drivers copied as expected now. Thank you!
Is there a repository somewhere I can find updated post download scripts or did I just not find the correct forum post?
-
RE: Fog driver injection in 2026.posted in Tutorials
@Tom-Elliott Here is the script. I modified the original script to attempt to remove the detection for OS version and x86 or x64 version. I am only going to be deploying Windows 11 64 bit.
I tested this on my Lenovo ThinkPad and the system is detecting the Lenovo correctly, but the script still errors out with "Failed to download driver information for [ThinkPad P14s Gen 4]
Its possible I have not setup the target path correctly in the script, still playing with this part.
#!/bin/bash ceol=`tput el`; manu=`dmidecode -s system-manufacturer`; case $manu in [Ll][Ee][Nn][Oo][Vv][Oo]) machine=$(dmidecode -s system-version) ;; *[Dd][Ee][Ll][Ll]*) machine=$(dmidecode -s system-product-name) #pruduct is typo, just realized sorry :( ;; *) machine=$(dmidecode -s system-product-name) # Technically, we can remove the dell one as it's the "default" ;; esac [[ -z $machine ]] && return #assuming you want it to break if it is not lenovo or dell? machine="${machine%"${machine##*[![:space:]]}"}" #Removes Trailing Spaces ############################################# # Quick hack to find out if the installed OS image is a x86 or x64 #system64="/ntfs/Windows/SysWOW64/regedit.exe" # sloppy detect if 64bit or not #[[ ! -f $system64 ]] && arch="x86" || arch="x64" ############################################# #this section has been updated to bring the osn names in line # with how the Dell CABs are defined #case $osid in # 5) osn="win7" ;; # 6) osn="win8" ;; # 7) osn="win8.1" ;; # 9) osn="win10" ;; #esac ############################################# dots "Preparing Drivers" # below creates local folder on imaged pc # this can be anywhere you want just remember # to make sure it matches throughout! (case IS important here) clientdriverpath="/ntfs/Windows/DRV" remotedriverpath="/images/drivers/$machine" [[ ! -d $clientdriverpath ]] && mkdir -p "$clientdriverpath" >/dev/null 2>&1 echo -n "In Progress" #there's 3 ways you could handle this, #driver cab file, extracted driver files or both #so on the server put extracted driver files to match below folder tree #i.e. Model Latitude E5410, Windows 7 x86 image would be: #/fog/Drivers/Latitude E5410/win7/x86 rsync -aqz "$remotedriverpath" "$clientdriverpath" >/dev/null 2>&1 [[ ! $? -eq 0 ]] && handleError "Failed to download driver information for [$machine]" #this next bit adds driver location on pc to devicepath in registry (so sysprep uses it to reference) # remember to make devicepath= match the path you've used locally #also do not remove %SystemRoot%\inf #and to add more locations just use ; in between each location #regfile="/ntfs/Windows/System32/config/SOFTWARE" #key="\Microsoft\Windows\CurrentVersion\DevicePath" #devpath="%SystemRoot%\DRV;%SystemRoot%\inf;"; #reged -e "$regfile" &>/dev/null <<EOFREG #ed $key #$devpath #q #y #EOFREG echo -e "\b\b\b\b\b\b\b\b\b\b\b${ceol}Done"; # this just removes "In Progress and replaces it with done :-)" -
RE: Fog driver injection in 2026.posted in Tutorials
@Tom-Elliott Well I feel silly. I am using a Windows workstation to set this all up. I corrected this and now the script appears to run.
Now this errors out stating it did not find drivers, which in this case is true, I’m testing this on a VM. This also seems to fail the task and imaging restarts when the machine reboots. Is there any way to tell the task to “continue on error”?
I have a test laptop on the bench that I will play with next week. Thanks for your help.

-
Fog driver injection in 2026.posted in Tutorials
My org used FOG many years ago and is now tired of Microsoft Autopilot, so I am setting up a new FOG site for our org.
I have added the fog.drivers script from the tutorial site: https://forums.fogproject.org/topic/8889/fog-post-install-script-for-win-driver-injection
It looks like the script attempts to run, but indicates some errors preventing the script from running. (see screenshot). At first I was running a modified version of the script, attempting to simplify the machine identification, but I have since tried running the script as it came from the FOG tutorial and have the same result.

-
RE: Trouble with Windows 8.1 image using Host Reg Bypassposted in FOG Problems
During installation I received the following error.
Press [Enter] key when database is updated/installed. * Setting up storage..........................................OK * Setting up and starting DHCP Server.........................../lib/common/functions.sh: line 155: 2600:1010:b021:8a9f:e506:70ec:3154:c398: syntax error in expression (error token is ":1010:b021:8a9f:e506:70ec:3154:c398") * Setting up and starting TFTP and PXE Servers................OKI then checked the status and sure enough DHCP had not started.
eud@FOGVM ~/fogtrunk/bin $ sudo service isc-dhcp-server status isc-dhcp-server stop/waiting eud@FOGVM ~/fogtrunk/bin $ sudo /etc/init.d/isc-dhcp-server start dhcpd self-test failed. Please fix /etc/dhcp/dhcpd.conf. The error was: Internet Systems Consortium DHCP Server 4.2.4 Copyright 2004-2012 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ /etc/dhcp/dhcpd.conf line 35: expecting numeric value. subnet netmask ^ Configuration file errors encountered -- exiting eud@FOGVM ~/fogtrunk/bin $ -
RE: Trouble with Windows 8.1 image using Host Reg Bypassposted in FOG Problems
Looks like i spoke too soon. Immediately after installing trunk everything was working fine. I then shutdown the VM to create a snapshot and rebooted and now the DHCP service will not start (automatically or manually).
This is what i get when trying to start the service.
eud@FOGVM ~/Desktop $ sudo /etc/init.d/isc-dhcp-server start dhcpd self-test failed. Please fix /etc/dhcp/dhcpd.conf. The error was: Internet Systems Consortium DHCP Server 4.2.4 Copyright 2004-2012 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ /etc/dhcp/dhcpd.conf line 0: expecting a parameter or declaration # Code ^ /etc/dhcp/dhcpd.conf line 17: no option space named PXE. option PXE.mtftp-ip ^ /etc/dhcp/dhcpd.conf line 18: no option space named PXE. option PXE.mtftp-cport ^ /etc/dhcp/dhcpd.conf line 19: no option space named PXE. option PXE.mtftp-sport ^ /etc/dhcp/dhcpd.conf line 20: no option space named PXE. option PXE.mtftp-tmout ^ /etc/dhcp/dhcpd.conf line 21: no option space named PXE. option PXE.mtftp-delay ^ /etc/dhcp/dhcpd.conf line 40: semicolon expected. max-lease-time ^ /etc/dhcp/dhcpd.conf line 40: expecting a parameter or declaration max-lease-time 43200; ^ Configuration file errors encountered -- exitingFOG 1.2.0 Base install dhcpd.conf before trunk update
# DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.sample # This file was created by FOG use-host-decl-names on; ddns-update-style interim; ignore client-updates; next-server 192.168.0.2; subnet 192.168.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.0.10 192.168.0.254; default-lease-time 21600; max-lease-time 43200; # option domain-name-servers x.x.x.x; # option routers x.x.x.x; filename "undionly.kpxe"; }FOG 1.2.0 dhcpd.conf AFTER trunk update
# DHCP Server Configuration file #see /usr/share/doc/dhcp*/dhcpd.conf.sample # This file was created by FOG #Definition of PXE-specific options # Code 1: Multicast IP Address of bootfile # Code 2: UDP Port that client should monitor for MTFTP Responses # Code 3: UDP Port that MTFTP servers are using to listen for MTFTP requests # Code 4: Number of seconds a client must listen for activity before trying # to start a new MTFTP transfer # Code 5: Number of seconds a client must listen before trying to restart # a MTFTP transfer option space PXE; option PXE.mtftp-ip code 1 = ip-address; option PXE.mtftp-cport code 2 = unsigned integer 16; option PXE.mtftp-sport code 3 = unsigned integer 16; option PXE.mtftp-tmout code 4 = unsigned integer 8; option PXE.mtftp-delay code 5 = unsigned integer 8; option arch code 93 = unsigned integer 16; # RFC4578 use-host-decl-names on; ddns-update-style interim; ignore client-updates; next-server 192.168.0.2; # Specify subnet of ether device you do NOT want service. for systems with # two or more ethernet devices. # subnet 136.165.0.0 netmask 255.255.0.0 {} subnet 192.168.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.0.10 192.168.0.254; default-lease-time 21600 max-lease-time 43200; # option domain-name-servers x.x.x.x; # option routers x.x.x.x; filename ; } -
RE: Trouble with Windows 8.1 image using Host Reg Bypassposted in FOG Problems
Ok I now have my test setup on a Virtualbox host with all of the same settings I was using on the physical machine and this time the update to trunk has no problems at all. I am able to PXE boot using my test machine.
It was not my intention to suggest that I will not be using Trunk or attempting to update to the latest and greatest. During this “test” I realized i could improve my methods a little. In the future I will be sure to report problems with my tests and try to work through them with the experts rather than just starting over off the bat.
I am going to test the functionality of my original posted question and I will report back.
-
RE: Trouble with Windows 8.1 image using Host Reg Bypassposted in FOG Problems
I am going to take the opportunity to setup the test server on a VM so I can make the rollback process easier. Once i get this setup I will try again and request help.
My production setup does not utilize the FOG DHCP service and i unfortunately do not have the resources to emulate prod so there wont be an issue related to DHCP on my production machine.
-
RE: Trouble with Windows 8.1 image using Host Reg Bypassposted in FOG Problems
Well unfortunately when I loaded Trunk on my test setup it caused the fog DHCP server to stop functioning. I am going to start over on the test machine.
-
RE: Trouble with Windows 8.1 image using Host Reg Bypassposted in FOG Problems
Thank you for that. I will give this a try on my test setup and report back.
-
Trouble with Windows 8.1 image using Host Reg Bypassposted in FOG Problems
Using Fog 1.2.0 on Linux Mint 17.1 everything has been working perfectly up until this point. I know this isn’t an official feature (even though i would love it to be) but I am running into some trouble using the Host Registration Bypass.
All of our Windows 7 images with Single disk resizable images it seem to work fine but I am trying to add a Windows 8.1 image that uses a single disk multi partition non resizable image and i get the error “Unable to locate image file for Windows 7/8 (sys.img.000)” I made what seems like the correct changes and tried a few different configurations to the advanced menu but always with the same result. I can pull this image down if i register a host and image normally however. Any help would be appreciated.
Here is a copy of my advanced PXE menu. The Windows 8 image in question is IMG4 listed below.
:MENU menu item --gap Please Select one of the images below item fog.local Boot from hard disk item img1 <Win7 64 Bit Production 3.2> item img2 <Public Health Win7 64 Bit Production 2.8> item img3 <Win7 64 Bit Laptop 3.2> item img4 <Win8.1 Test> item return Return to main menu choose --default fog.local target && goto ${target} :fog.local sanboot --no-describe --drive 0x80 || goto MENU :img1 kernel bzImage root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=192.168.0.1 web=${fog-ip}/fog/ consoleblank=0 loglevel=4 type=down img=WIN764PRODV3272715 ftp=${fog-ip} imgType=n osid=5 storage=${fog-ip}:/images capone=1 imgFormat=0 imgfetch init.xz boot || goto MENU :img2 kernel bzImage root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=192.168.0.1 web=${fog-ip}/fog/ consoleblank=0 loglevel=4 type=down img=PH64PRODV282415 ftp=${fog-ip} imgType=n osid=5 storage=${fog-ip}:/images capone=1 imgFormat=0 imgfetch init.xz boot || goto MENU :img3 kernel bzImage root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=192.168.0.1 web=${fog-ip}/fog/ consoleblank=0 loglevel=4 type=down img=WIN764MAKV3272715 ftp=${fog-ip} imgType=n osid=5 storage=${fog-ip}:/images capone=1 imgFormat=0 imgfetch init.xz boot || goto MENU :img4 kernel bzImage root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=192.168.0.1 web=${fog-ip}/fog/ consoleblank=0 loglevel=4 type=down img=81Sysprep ftp=${fog-ip} imgType=n osid=7 storage=${fog-ip}:/images capone=1 imgFormat=2 imgfetch init.xz boot || goto MENU :return chain http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php?mac=${net0/mac} || goto MENU autoboot``` -
RE: FOG .33b PXE Boot woesposted in FOG Problems
I had to create the tftp directory in /var/lib. After running the commands and rebooting the client i have the same message on screen. I also tried creating the links to /var/lib/tftpboot since that was an existing directory, though that also had no effect.
I also just tried with a newer client and receive the same error.
-
RE: FOG .33b PXE Boot woesposted in FOG Problems
Not sure if this will help, but here is a screen shot of what I am getting on the client PC.
[ATTACH=full]863[/ATTACH]
[url=“/_imported_xf_attachments/0/863_20140530_143053.jpg?:”]20140530_143053.jpg[/url]
-
RE: FOG .33b PXE Boot woesposted in FOG Problems
Good point. Is there another config file somewhere that deals with the path to the default.ipxe? I assume it just looks for it in the /tftpboot directory but perhaps this isnt the case?
-
RE: FOG .33b PXE Boot woesposted in FOG Problems
Both files are in the /tftpboot folder and are set to 644. Still throwing the same error. I currently have fog as the owner of the /tftpboot directory, should i change this back to root?
-
RE: FOG .33b PXE Boot woesposted in FOG Problems
Yes, I am able to retrieve undionly.kpxe and default.ipxe via TFTP.
-
RE: FOG .33b PXE Boot woesposted in FOG Problems
Changed ownership of /tftpboot to fog user and group and restarted the services and no change.
-
RE: FOG .33b PXE Boot woesposted in FOG Problems
Restarted the service and now it will boot back into iPXE. Now it stops at [I]/default.ipxe… No such file or directory ([url]http://ipxe.org/2d12603b[/url]) [/I]This reads to me like a permissions issue since the file is in the /tftpboot directory.