Fog Menu loop
-
@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.