Fog Menu loop
-
@Rebelman Lets take a divide an concur approach here.
Lets assume the upgrade did not go as expected. This will be part 1
- From the linux console change to /var/www
- If there is a fog directory there rename it to fog.old.
- Change to /var/www/html
- If there is a
fog
directory there rename it to fog.old - Change to the directory where you downloaded the fog installer. Depending on which instructions it might be
/root/fogproject
- Change to the bin directory and rerun the fog installer. The fog installer should not ask the questions over again since it should have detected the settings from the previous install. That will rebuild the entire web ui fog directory. Don’t skip the part about updating the database instructions in the linux console. You will need to use a web browser and key in the url listed on the web console.
- Reboot the fog server after the reinstall is done.
Now test the fog menu. You should see the fog menu without having to hit escape. There is no negative impact of doing this step.
-
@Rebelman I am ob the road and can’t post a long answer right now. Looking at the boot.php output you posted I already see that there seems to be an issue with the iPXE code generated. I will have a closer look when I get home tonight.
-
@Rebelman said in Fog Menu loop:
s
What’s the output of mysql statement:
SELECT settingKey,settingValue FROM globalSettings WHERE settingKey IN ('FOG_EFI_BOOT_EXIT_TYPE','FOG_KERNEL_ARGS','FOG_KERNEL_DEBUG','FOG_KERNEL_LOGLEVEL','FOG_KERNEL_RAMDISK_SIZE','FOG_KEYMAP','FOG_KEY_SEQUENCE','FOG_MEMTEST_KERNEL','FOG_PXE_BOOT_IMAGE','FOG_PXE_BOOT_IMAGE_32','FOG_PXE_HIDDENMENU_TIMEOUT','FOG_PXE_MENU_HIDDEN','FOG_PXE_MENU_TIMEOUT','FOG_TFTP_PXE_KERNEL','FOG_TFTP_PXE_KERNEL_32') ORDER BY settingKey;
There should be 15 values returned, and I’m suspecting one of these keys is missing. Please copy and paste the statement into your shell to get the return, then copy and paste the return values into a posting so we can see what’s going on a little easier.
To make things easier to see (and for us to easily view the items more directly) the values in order would be something like:
- FOG_EFI_BOOT_EXIT_TYPE
- FOG_KERNEL_ARGS
- FOG_KERNEL_DEBUG
- FOG_KERNEL_LOGLEVEL
- FOG_KERNEL_RAMDISK_SIZE
- FOG_KEYMAP
- FOG_KEY_SEQUENCE
- FOG_MEMTEST_KERNEL
- FOG_PXE_BOOT_IMAGE
- FOG_PXE_BOOT_IMAGE_32
- FOG_PXE_HIDDENMENU_TIMEOUT
- FOG_PXE_MENU_HIDDEN
- FOG_PXE_MENU_TIMEOUT
- FOG_TFTP_PXE_KERNEL
- FOG_TFTP_PXE_KERNEL_32
I suspect something between 1-12 is actually missing, causing the MENU_TIMEOUT value to to be put in place of the MENU_HIDDEN value (timeout is usually defaulted to 3 - 5 seconds) which is triggering the boot menu to think it is a hidden item.
-
@Rebelman I’m noticing here, that the bzImage is not being generated (specifically it should be trying to get a bzImage32 but it’s blank, leading me more suspicion to my prior posting.)
-
@Tom-Elliott
So I’m getting an error when typing that in on my FOG database -
ERROR 1146 (42S02): Table ‘fog.global’ doesn’t exist -
@Rebelman I updated the query, sorry there shouldn’t have been a space between global and Settings. It should’ve appeared as
globalSettings
-
mysql> SELECT settingKey,settingValue FROM globalSettings WHERE settingKey IN ('FOG_EFI_BOOT_EXIT_TYPE','FOG_KERNEL_ARGS','FOG_KERNEL_DEBUG','FOG_KERNEL_LOGLEVEL','FOG_KERNEL_RAMDISK_SIZE','FOG_KEYMAP','FOG_KEY_SEQUENCE','FOG_MEMTEST_KERNEL','FOG_PXE_BOOT_IMAGE','FOG_PXE_BOOT_IMAGE_32','FOG_PXE_HIDDENMENU_TIMEOUT','FOG_PXE_MENU_HIDDEN','FOG_PXE_MENU_TIMEOUT','FOG_TFTP_PXE_KERNEL','FOG_TFTP_PXE_KERNEL_32') ORDER BY settingKey; +----------------------------+--------------+ | settingKey | settingValue | +----------------------------+--------------+ | FOG_EFI_BOOT_EXIT_TYPE | refind_efi | | FOG_KERNEL_ARGS | | | FOG_KERNEL_DEBUG | | | FOG_KERNEL_LOGLEVEL | 4 | | FOG_KERNEL_RAMDISK_SIZE | 127000 | | FOG_KEY_SEQUENCE | | | FOG_MEMTEST_KERNEL | memtest.bin | | FOG_PXE_BOOT_IMAGE | init.xz | | FOG_PXE_BOOT_IMAGE_32 | init_32.xz | | FOG_PXE_HIDDENMENU_TIMEOUT | 30 | | FOG_PXE_MENU_HIDDEN | 0 | | FOG_PXE_MENU_TIMEOUT | 3 | | FOG_TFTP_PXE_KERNEL | bzImage | | FOG_TFTP_PXE_KERNEL_32 | bzImage32 | +----------------------------+--------------+ 14 rows in set (0.00 sec)```
-
@Rebelman So you’re missing the FOG_KEYMAP value.
Please run:
INSERT INTO fog.globalSettings (settingKey,settingDesc,settingValue,settingCategory) VALUES ('FOG_KEYMAP','This setting defines the keymap used on the client boot image.','','General Settings');
You should have more success in the “hidden” menu issue, as well as no longer have the loop.
-
mysql> SELECT settingKey,settingValue FROM globalSettings WHERE settingKey IN ('FOG_EFI_BOOT_EXIT_TYPE','FOG_KERNEL_ARGS','FOG_KERNEL_DEBUG','FOG_KERNEL_LOGLEVEL','FOG_KERNEL_RAMDISK_SIZE','FOG_KEYMAP','FOG_KEY_SEQUENCE','FOG_MEMTEST_KERNEL','FOG_PXE_BOOT_IMAGE','FOG_PXE_BOOT_IMAGE_32','FOG_PXE_HIDDENMENU_TIMEOUT','FOG_PXE_MENU_HIDDEN','FOG_PXE_MENU_TIMEOUT','FOG_TFTP_PXE_KERNEL','FOG_TFTP_PXE_KERNEL_32') ORDER BY settingKey; +----------------------------+--------------+ | settingKey | settingValue | +----------------------------+--------------+ | FOG_EFI_BOOT_EXIT_TYPE | refind_efi | | FOG_KERNEL_ARGS | | | FOG_KERNEL_DEBUG | | | FOG_KERNEL_LOGLEVEL | 4 | | FOG_KERNEL_RAMDISK_SIZE | 127000 | | FOG_KEYMAP | | | FOG_KEY_SEQUENCE | | | FOG_MEMTEST_KERNEL | memtest.bin | | FOG_PXE_BOOT_IMAGE | init.xz | | FOG_PXE_BOOT_IMAGE_32 | init_32.xz | | FOG_PXE_HIDDENMENU_TIMEOUT | 30 | | FOG_PXE_MENU_HIDDEN | 0 | | FOG_PXE_MENU_TIMEOUT | 3 | | FOG_TFTP_PXE_KERNEL | bzImage | | FOG_TFTP_PXE_KERNEL_32 | bzImage32 | +----------------------------+--------------+ 15 rows in set (0.00 sec)
Here is the return now with that included, I’ve also tried doing a new install on my UEFI machine and it went further into the menu until it crashed on cannot find disk on the system. I had to make a change in my BIOS and I’m now able to successfully install an image onto the machine. Everything completes with no errors.
-
@Rebelman So you’re saying things are working as expected now, and no more having to press ESC to get into the menu and all?
-
@Tom-Elliott Yes, everything is working as expected, I don’t have to press escape to get into the menu, it partclones without any problems and performs a full reg.
-
Great you guys have figured this out!!
-
@Tom-Elliott Would it be possible to prevent from this issue when returning and empty string instead of nothing when the key in
globalSettings
does not exist?! Not sure if that would break things in other places. You know fogmanagercontroller.class and all that way better than I do. -
@Sebastian-Roth the simplest method would be to use individual calls, but that would mean 15 separate queries to the database. The way it runs now, is just one query.
-
@Tom-Elliott Ok, I suppose we just leave it like that as it has been the first time (I know of) this has happened and we were able to figure it out in less than a week. Good enough I reckon.
-
@Sebastian-Roth said in Fog Menu loop:
Would it be possible to prevent from this issue when returning and empty string instead of nothing when the key in globalSettings does not exist?
I don’t know about how fog interacts directly with the database but MSSQL has an ifnull statement where if the field is null (or missing in q joined table) you can return a specific alternate string. It appears that mysql has a similar construct.