Ah, yeah, it's a bit of a struggle. I've got two F20 installs now on the same desktop pc (32 and 64 bit) and both using the Nvidia drivers. When you say:
"If I replace the automatically generated grub.cfg with manual grub2-mkconfig generated grub.cfg, I do not get GUI."
Do you mean the grub menu itself (low res screen, white text on plain black background), or the Plymouth boot screen, or both?
Myself, I always use a text screen boot mode (no filling up Fedora logo gui), and want that in a somewhat hi-res mode for my 1920x1080 native res LCD monitor. The "rhgb" is taken out of my kernel boot lines and for good measure I also run:
Code:
# plymouth-set-default-theme details --rebuild-initrc
What you DON'T want in your /etc/default/grub file is:
GRUB_GFXPAYLOAD_LINUX=text
That will only get you massive console ugliness and infuses the "set gfxpayload=text" entry. Either remove it altogether or replace it with:
GRUB_GFXPAYLOAD=keep
What you DO want in your /etc/default/grub file is:
GRUB_GFXPAYLOAD=keep
Which will get you the "set gfxpayload=keep" Without the "keep", if you have a nice colorful and themed grub menu screen, when it passes things over to Plymouth, it loses the higher resolution screen and current graphics mode and switches over to low res console text. Leigh claims you cannot have a gui Plymouth boot screen when using the nvidia drivers due to a frame buffer issue. Maybe that's so, but you can have a decent looking text mode Plymouth boot screen.
Here are my /etc/default/grub files from both of my installs that you can crib from and try for yourself if you care to:
F20 32 bit:
Code:
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) rd.luks=0 vconsole.keymap=us quiet LANG=en_US.UTF-8 nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off"
GRUB_DISABLE_RECOVERY="true"
GRUB_THEME="/boot/grub2/themes/system/theme.txt"
F20 64 bit:
Code:
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU="true"
GRUB_TERMINAL_OUTPUT="gfxterm"
GRUB_CMDLINE_LINUX="vconsole.font=latarcyrheb-sun16 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) vconsole.keymap=us quiet nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off"
GRUB_DISABLE_RECOVERY="true"
GRUB_GFXMODE=auto
GRUB_GFXPAYLOAD=keep
GRUB_THEME="/boot/grub2/themes/system/theme.txt"
The 32 bit install never gets a "grub2-mkconfig" due to the 64 bit install is my "Master" grub2 boot menu, which boots 4 OS's (W7 and 3 Fedora's).
And I admit to having to manually add "load_video" and "set gfxpayload=keep" into the other two Fedora menu entries in the F20 64 bit menu after running grub2-mkconfig, as they are then lost.
Is there no "GRUB_THEME="/boot/grub2/themes/system/theme.txt"" in your /etc/default/grub file? If not, add that entry, and make sure you have the grub2-starfield-theme package installed.
I can't really answer your opening question though, other than to say Anaconda's initial install and generation of the grub2 menu entries might have been done somewhat differently than what you do manually using the grub2-mkconfig command.