• FOG Multicast Manager creating zombie processes. How to fix?

    Unsolved Linux Problems
    1
    0 Votes
    1 Posts
    94 Views
    No one has replied
  • Uploading an image to a host that has a stored Windows 11 Pro key

    Unsolved FOG Problems
    1
    0 Votes
    1 Posts
    437 Views
    No one has replied
  • Proper way to reinstall the FOG Client

    General Problems
    4
    0 Votes
    4 Posts
    451 Views
    jfernandzJ

    @Tom-Elliott oh, sorry, I didn’t notice this big yellow button in the General tab

    48c096ca-5f09-42d1-84dc-647e5bc6e22d-image.png

    And I can see the same button for the group, so I guess I can handle this. Thank you very much @Tom-Elliott ! 😄

  • Upgrading FOG

    General Problems
    5
    0 Votes
    5 Posts
    625 Views
    jfernandzJ

    @Tom-Elliott

    Well, the errors I can see in the /var/log/apache2/other_vhosts_access.log are:

    172.120.1.253:443 172.120.1.195 - - [09/Oct/2025:18:47:03 +0800] "POST /fog/service/Pre_Stage1.php HTTP/1.1" 500 3891 "-" "curl/8.14.1" 172.120.1.253:443 172.120.1.195 - - [09/Oct/2025:18:47:08 +0800] "POST /fog/service/Pre_Stage1.php HTTP/1.1" 500 3891 "-" "curl/8.14.1" 172.120.1.253:443 172.120.1.195 - - [09/Oct/2025:18:47:13 +0800] "POST /fog/service/Pre_Stage1.php HTTP/1.1" 500 3891 "-" "curl/8.14.1" 172.120.1.253:443 172.120.1.195 - - [09/Oct/2025:18:47:18 +0800] "POST /fog/service/Pre_Stage1.php HTTP/1.1" 500 3891 "-" "curl/8.14.1"

    Regarding the /var/log/apache2/error.log are:

    [Thu Oct 09 18:48:29.019424 2025] [proxy_fcgi:error] [pid 1662:tid 1662] [client 172.120.1.195:59922] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught ValueError: min(): Argument #1 ($value) must contain at least one element in /var/www/html/fog/lib/fog/image.class.php:396\nStack trace:\n#0 /var/www/html/fog/lib/fog/image.class.php(396): min()\n#1 /var/www/html/fog/lib/reg-task/taskqueue.class.php(112): Image->getStorageGroup()\n#2 /var/www/html/fog/service/Pre_Stage1.php(24): TaskQueue->checkIn()\n#3 {main}\n thrown in /var/www/html/fog/lib/fog/image.class.php on line 396' [Thu Oct 09 18:48:34.062774 2025] [proxy_fcgi:error] [pid 790:tid 790] [client 172.120.1.195:52762] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught ValueError: min(): Argument #1 ($value) must contain at least one element in /var/www/html/fog/lib/fog/image.class.php:396\nStack trace:\n#0 /var/www/html/fog/lib/fog/image.class.php(396): min()\n#1 /var/www/html/fog/lib/reg-task/taskqueue.class.php(112): Image->getStorageGroup()\n#2 /var/www/html/fog/service/Pre_Stage1.php(24): TaskQueue->checkIn()\n#3 {main}\n thrown in /var/www/html/fog/lib/fog/image.class.php on line 396' [Thu Oct 09 18:48:39.106621 2025] [proxy_fcgi:error] [pid 1461:tid 1461] [client 172.120.1.195:52776] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught ValueError: min(): Argument #1 ($value) must contain at least one element in /var/www/html/fog/lib/fog/image.class.php:396\nStack trace:\n#0 /var/www/html/fog/lib/fog/image.class.php(396): min()\n#1 /var/www/html/fog/lib/reg-task/taskqueue.class.php(112): Image->getStorageGroup()\n#2 /var/www/html/fog/service/Pre_Stage1.php(24): TaskQueue->checkIn()\n#3 {main}\n thrown in /var/www/html/fog/lib/fog/image.class.php on line 396'

    The php version the server is running is:

    # php --version PHP 8.2.29 (cli) (built: Jul 3 2025 16:16:05) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.29, Copyright (c) Zend Technologies with Zend OPcache v8.2.29, Copyright (c), by Zend Technologies
  • Report Download

    Unsolved FOG Problems
    5
    0 Votes
    5 Posts
    862 Views
    Tom ElliottT

    @ecoele The fact that dev-branch is in 1700’s this informatino seems to indicate your’e still running the latest stable.

    Once you switch to dev-branch you need to pull in the changes:

    cd /your/path/to/fogproject git checkout dev-branch git pull cd bin sudo ./installfog.sh -y

    Should get you installed.

    You may also need to (from the browser) do a “CTRL + SHIFT + R” to do whats called a hard refresh in the browser to get all the latest/new javascript information.

  • Resizable Linux

    General Problems
    5
    0 Votes
    5 Posts
    422 Views
    S

    @Tom-Elliott Hi, I finally made it. Here is a screenshot of the error, installing clone Linux, from 512 gb m2 ssd, to 500 gb m2 ssd. And an error is caused with the sections
    5576202d-a566-4124-9c8f-378d29cac505-image.png
    b64f740c-5e04-48db-b049-5630abcc1e0a-image.png

  • Subnet Groups Plugin | Dynamic Groups Not Working

    General Problems
    3
    0 Votes
    3 Posts
    315 Views
    C

    @Tom-Elliott, disregard this request.

    I edited ‘addsubnetgroup.hook.php’ which simplified getting the client IP and adding the host to the respective group. I understand this also removes certain checks that were in place but for my environment it is now working as intended.

    Old ‘addSubnetgroupHost’ function:

    public function addSubnetgroupHost($arguments) { if (!in_array($this->node, (array)self::$pluginsinstalled)) { return; } $Host = $arguments['Host']; $mac = $Host->get('mac'); if (!isset($mac)) { return; } // Setup for tests $name = $ipn = $Host->get('name'); $ip = $Host->get('ip'); $ipr = self::resolveHostname($name); // Perform all tests. $ip1t = filter_var($ip, FILTER_VALIDATE_IP); $ip2t = filter_var($ipn, FILTER_VALIDATE_IP); $ip3t = filter_var($ipr, FILTER_VALIDATE_IP); // If resolve hostname returns a valid IP, set IP appropriately. // Otherwise, if the name is valid, use it. // Otherwise, return if base $ip is false. if (false !== $ip3t) { $ip = $ipr; } elseif (false !== $ip2t) { $ip = $ipn; } elseif (false === $ip1t) { return; } // Now list our subnet groups. Route::listem('subnetgroup'); $SNGroups = json_decode(Route::getData()); foreach ($SNGroups->subnetgroups as &$SNGroup) { if (in_array($SNGroup->groupID, $Host->get('groups'))) { $Host->removeGroup($SNGroup->groupID)->save(); } $subnetList = str_replace(' ', '', $SNGroup->subnets); $subnets = explode(',', $subnetList); foreach ($subnets as &$subnet) { if ($this->_ipCIDRCheck($ip, $subnet)) { $Host->addGroup($SNGroup->groupID)->save(); unset($subnet); continue 2; } unset($subnet); } unset($SNGroup); } }

    New code:

    public function addSubnetgroupHost($arguments) { if (!in_array($this->node, (array)self::$pluginsinstalled)) { return; } $Host = $arguments['Host']; $mac = $Host->get('mac'); if (!isset($mac)) { return; } // Use the real source IP from the request $ip = $_SERVER['REMOTE_ADDR']; // Now list our subnet groups. Route::listem('subnetgroup'); $SNGroups = json_decode(Route::getData()); foreach ($SNGroups->subnetgroups as &$SNGroup) { if (in_array($SNGroup->groupID, $Host->get('groups'))) { $Host->removeGroup($SNGroup->groupID)->save(); } $subnetList = str_replace(' ', '', $SNGroup->subnets); $subnets = explode(',', $subnetList); foreach ($subnets as &$subnet) { if ($this->_ipCIDRCheck($ip, $subnet)) { $Host->addGroup($SNGroup->groupID)->save(); unset($subnet); continue 2; } unset($subnet); } unset($SNGroup); } }
  • Fog iPXE Menu no input

    Unsolved FOG Problems
    29
    0 Votes
    29 Posts
    13k Views
    L

    Sorry
    with ipxe 1.21.1+ (gc30b7) it works but not with the latest version

    @Lorenzo said in Fog iPXE Menu no input:

    @Tom-Elliott
    Hi
    using the new version of ipxe build I can confirm that the ipxe menu works with the keyboard.
    The problem is that chainloading grub, the keyboard doesn’t work.
    With ipxe 1.0.0 it works. So by now we keep using the old version.

    Lorenzo

  • Kernel Versions blank

    Unsolved FOG Problems
    12
    0 Votes
    12 Posts
    1k Views
    R

    @rogalskij Yes, I had read it and tried, but FQDN did not solve it for me…

  • Boot PXE on iMac 14.3 (catalina)

    Unsolved Mac Problems
    1
    0 Votes
    1 Posts
    171 Views
    No one has replied
  • rocky linux 9.6 quirks & php 8

    Unsolved Bug Reports
    4
    0 Votes
    4 Posts
    450 Views
    Tom ElliottT

    @mrowand The whole point of the checkAuthAndCSRF is to prevent unauthorized access. Based on the message I’m seeing, the 403 forbidden is happening because it’s crossing origin to get the data or the CSRF token isn’t passing correctly:

    Here’s the code that validates:

    // Optional defense-in-depth: Origin/Referer check for state-changing requests public static function checkOrigin(array $allowedOrigins): void { $method = strtoupper($_SERVER['REQUEST_METHOD'] ?? 'GET'); if (!in_array($method, ['POST','PUT','PATCH','DELETE'], true)) { return; } $origin = $_SERVER['HTTP_ORIGIN'] ?? null; $referer = $_SERVER['HTTP_REFERER'] ?? null; if ($origin) { foreach ($allowedOrigins as $allowed) { if (stripos($origin, $allowed) === 0) { return; } } http_response_code(403); echo _('Forbidden (disallowed Origin)'); exit; } elseif ($referer) { foreach ($allowedOrigins as $allowed) { if (stripos($referer, $allowed) === 0) { return; } } http_response_code(403); echo _('Forbidden (disallowed Referer)'); exit; } // If neither header is present, you can decide to be strict or lenient. // Often lenient to avoid breaking weird client setups. }

    I suspect your console has more information leading to the specific error that was hit.

    ultimately the code is working as expected and there’s something in your environment causing the issue. Now, to be fair, you said you installed Stable, and Dev-branch has a fix of which I admit I missed.

    If you’re willing/able to install the dev-branch I suspect you’ll see this is working much better.

  • Installing fog on Rocky Linux 9.6

    Solved FOG Problems
    8
    0 Votes
    8 Posts
    1k Views
    M

    @ rodluz

    Okay - So I got FOG working on my rocky 9.6 set up with a few caveats.

    I had to do some work to get tftp and pxe to work correctly.

    created a symlink from /var/lib/tftpboot > /tftpboot

    enabled and started the tftp service manually - systemctl enable tftp & systemctl start tftp

    then created a file in /etc/systemd/system/tftp.socket.d/override.conf (after making a director /tftp.socket.d and giving that file permissions) with the following code:

    [Socket]
    ListenDatagram=69

    [Service]
    ExecStart=
    ExecStart=/usr/sbn/in.tftpf --foreground --secure /tftpboot

    reloading the systemd service daemon - “systemctl daemon-reload” & “systemctl restart tftp.socket”

    The server would then pxeboot at least BIOS at this point.

    The Web UI currently seems to have php conflicts. I installed php-8.0.30-3 and the modules connected to this when installing the server. The web UI has a quirk on the FOG configuration page when you have a button for DefaultMember FOG Version: () it is not printing the version of FOG or the versions of bzimage or init.xz files and in checking using curl http://ip-address-of-server/fog/service/getversion.php - i ony see - 1.5.10.1698

    here is a picture of the error

    error.png

  • Group Export

    Solved FOG Problems
    7
    0 Votes
    7 Posts
    7k Views
    R

    Yes, was able to confirm it is working. Thank you for your help!

  • Export image doesn't seem to work anymore

    Unsolved FOG Problems
    2
    0 Votes
    2 Posts
    570 Views
    Tom ElliottT

    @boombasstic This is known and will be fixed automatically on the 15th, but please if you need to switch to the dev-branch and install it. Then you should be able to export reports.

  • Dell OptiPlex 3000 Thin Client

    Unsolved Hardware Compatibility
    5
    0 Votes
    5 Posts
    648 Views
    george1421G

    @phant0mbot said in Dell OptiPlex 3000 Thin Client:

    have tried both SAN and GRUB exit options

    boot loader == snponly.efi

    These are in contradiction with each other. SAN boot and Grub are bios boot methods. snponly.efi is a uefi boot loader. Since you are getting into the fog iPXE menu we can assume the hardware IS uefi based since it is booting snp.efi. Try a uefi exit mode of rEFInd (refind) to see if that will boot from the hard drive. The default value can be set globally in the fog configuration->fog settings page. Don’t force a bios attempted boot from a uefi booted computer, that never works.

  • Official Docker Image

    Feature Request
    11
    3 Votes
    11 Posts
    11k Views
    8

    Not sure if anybody has actually had a chance to look at my docker image yet. I’m throwing my hat in the ring for maintaining an official image, but I’d need some help with it.

  • Help Setting up replication across storage groups

    Solved FOG Problems
    5
    0 Votes
    5 Posts
    940 Views
    C

    @Tom-Elliott I figured it out.

    I was getting confused by the similar language between the installation process and storage group setup.

    A normal installation is just a fog storage node that has a web server and UI on it. A FOG network requires atleast one to work. However a Storage node can be set as the master of a storage group no matter the installation type.

    My problem was that because the storage node in the “Bris” storage group did not have a master node setup, the default group could not replicate any images or snapins over. All storage groups must have a master for it to work effectively.

    @Tom-Elliott feel free to clarify any of the above rant.

  • 0 Votes
    3 Posts
    404 Views
    F

    Thank you for the information. I used a bare metal machine. I started with a VM but then just used a old pc. I tried it with Fedora then Ubuntu but did not have any luck. I did not get any errors when installing with the install script.

    I will take a look at the information you gave me and see if I can get anything working.

  • New Dell Laptop - LINUX-EFI-INITRD-MEDIA-GUID

    FOG Problems
    6
    0 Votes
    6 Posts
    9k Views
    R

    @collegestjoseph Can you try out this testing kernel and let us know if it works? https://github.com/rluzuriaga/fos/releases/tag/EXP_20250927

  • How do i add more storage space to my Fog Storage repository

    Unsolved Linux Problems
    2
    0 Votes
    2 Posts
    606 Views
    george1421G

    @Jchinn412 The answer is it depends on how you have your disk structure setup

    Post the results of these two commands.

    lsblk
    df -h

    It maybe easy or harder (but not impossible) depending on how you have the disk created.