-
Bug
-
Resolution: Done
-
Major
-
6.12.0
-
0
-
False
-
-
False
-
CLOSED
-
2,100
-
Rocket
-
-
-
Important
-
Yes
Description of problem:
----------------------
After upgrading the Satellite Server from version 6.10 to 6.12, provisioning a Baremetal Cisco UCSX-210C-M6 using Full Host Image is failing since the host can't boot from the ISO.
The actual error that the customer gets is as follows -
error:/../../grub-core.script/lexer.c:352:syntax error.
error:/../../grub-core.script/lexer.c:352:Incorrect command.
error:/../../grub-core.script/lexer.c:352:syntax error.
Version-Release number of selected component (if applicable):
------------------------------------------------------------
Red Hat Satellite 6.12
Actual results:
--------------
Provisioning a Baremetal Cisco UCSX-210C-M6 using Full Host Image is fails.
Expected results:
----------------
Provisioning a Baremetal Cisco UCSX-210C-M6 using Full Host Image should be successful.
Additional info:
---------------
The provisioning was working as expected on Red Hat Satellite 6.10.
Thus, this might be a regression bug.
Provisioning fails with the error given in the problem description.
Following is the ISO structure which is generated on Satellite 6.12 and Satellite 6.10 -
Satellite 6.12 - NOT working
--------------
menuentry 'Foreman Bootdisk' {
linuxefi /BOOT/S_KICKSTART_8_6_7859_VMLINUZ BOOTIF=01-00-25-b5-76-a0-24 ks=http://sddvvrba378.612w.bns:8000/unattended/provision?static=1&token=4a39e689-5f17-441c-9572-1ef893f0fcae ip=10.92.101.25::10.92.101.1:255.255.255.192:sdpsvrbi827.scglobal.ad.scotiacapital.com::none nameserver=172.20.90.10 nameserver=172.22.1.30
initrdefi /BOOT/ICKSTART_8_6_7859_INITRD_IMG
}
Satellite 6.10 - It was working:
--------------
menuentry 'Foreman Bootdisk' {
linuxefi /BOOT/S_KICKSTART_8_6_7859_VMLINUZ ks=http://sddvvrba378.612w.bns:8000/unattended/provision?token=2974687b-db75-48ae-9107-4a8e4a084d2b BOOTIF=01-00-25-b5-76-a0-23 kssendmac ks.sendmac inst.ks.sendmac ip=10.92.101.24::10.92.101.1:255.255.255.192:sdpsvrbi826.scglobal.ad.scotiacapital.com::none nameserver=172.20.90.10 nameserver=172.22.1.30
initrdefi /BOOT/ICKSTART_8_6_7859_INITRD_IMG
}
In the Satellite 6.12 ISO structure, notice the presence of ampersand (&) in the URL in between static=1 and token=4a39... as follows -> static=1&token=4a39.
In the Satellite 6.10 ISO structure, ampersand (&) is not present.
The presence of this ampersand (&) is causing the issue as, Grub2 requires the ampersand "&" to be escaped or full argument to be quoted, as shown in the examples below -
Original URL (failing) -
----------------------
inst.ks=http://myserver.example.com/kickstarts/provision?token=someUUID&static=yes
Quoted URL -
----------
inst.ks="http://myserver.example.com/kickstarts/provision?token=someUUID&static=yes"
OR
inst.ks='http://myserver.example.com/kickstarts/provision?token=someUUID&static=yes'
Escaped ampersand "&" -
---------------------
inst.ks=http://myserver.example.com/kickstarts/provision?token=someUUID\&static=yes
- In grub, the & character without an escape is considered a word separation meta-character.
- In order to process the & as part of the URL and not a meta-character, it must be escaped or quoted.
Refer the following KCS article for additional details -