This is a list of GRUB issues, features and concerns the PowerPC team consider important to be addressed in Fedora 18.
Issues
No modules are loaded on network boot
https://bugzilla.redhat.com/show_bug.cgi?id=857936
Fedora: Patch committed
Upstream: Not needed (problem caused by a fedora patch)
Matthew's patch looks for the grub.cfg file in the bootlocation. In case the file is not found, it continues the normal path, which is to look for the grub.cfg using the prefix. The issue comes from the fact that the original patch does not clear the grub_errno in case the grub.cfg is not found in the bootlocation. This leads to a fake error later when grub tries to open the file "command.lst".
Fix: Matthew Garrett's grub-2.00-add-fw_path-search.patch patch was updated
Grub2 truncates device paths longer than 64 bytes
https://bugzilla.redhat.com/show_bug.cgi?id=857305
Fedora: Patch committed
Upstream: Patch sent to ML
Grub2 has a limit of 64 bytes for the device path. Some types of devices have path longer than 64 bytes. For example, we have a device with the following path: /io-hub@3efe00000000/pciex@3efe00080000/pci@0/pci@0/pci@6/pci1014,0339@0/sas/disk@0
Fix: Increase the buffer size
Netboot crashes when using HTTP
https://bugzilla.redhat.com/show_bug.cgi?id=860834
Fedora: Patch committed
Upstream: Patch submitted
If you use HTTP to download kernel/initrd, GRUB will crash due to access to invalid memory caused by trying to close an already closed connection.
Fix: Don't close the connection twice.
DNS is broken (can't resolve names)
https://bugzilla.redhat.com/show_bug.cgi?id=860829
Fedora: patch committed
Upstream: patch submitted
Grub sends 2 queries (ipv4 and ipv6) on a single DNS packet. Many DNS servers (including BIND) don't implement such feature due to protocol ambiguity on reporting partial results. Fix: Send separate DNS requests for ipv4 and ipv6.
Network boot on qemu is broken
Fedora: needs bugz
Upstream: needs investigation
Welcome to GRUB! error: variable `root' isn't set. Entering rescue mode... grub rescue> net_ls_addr grub rescue> net_bootp error: couldn't autoconfigure ofnet_net. grub rescue> net_ls_addr grub rescue>
GRUB2 error: file '/boot/grub2/locale/en.mo.gz' not found
https://bugzilla.redhat.com/show_bug.cgi?id=817187
Fedora: patch submitted
Upstream: discussed in https://savannah.gnu.org/bugs/?35880
This small issue makes GRUB look fragile and it should be easy to fix.
Fix: Suppress the error message
Grub2 crashes when net_bootp command fails
Fedora: needs bugzilla
Upstream: needs patch
When the module ofnet is not loaded on ppc64, the command net_bootp does not print any error message and a subsequent net_ls_addr crashes.
GRUB2 fails to install if destination is a symlink
https://bugzilla.redhat.com/show_bug.cgi?id=874234
Fedora: patch committed
Upstream: Patch sent to ML
If the device used in grub2-install is a symlink, the file command must "follow the link" in order to check the real device. This prevents from installing grub2 on multipath devices.
Features
GRUB must support IBM client architecture (CAS) reboot
https://bugzilla.redhat.com/show_bug.cgi?id=859223
Fedora: patch committed
Upstream: patch sent to ML
There are cases where the POWER firmware must reboot in order to support specific features requested by a kernel. The kernel calls ibm,client-architecture-support and it may either return or reboot with the new feature set. eg:
Calling ibm,client-architecture-support.../ Elapsed time since release of system processors: 70959 mins 50 secs Welcome to GRUB!
Instead of return to the GRUB menu, it will check if the flag for CAS reboot is set. If so, grub will automatically boot the last booted kernel using the same parameters
VLAN Tag support for network boot/install
https://bugzilla.redhat.com/show_bug.cgi?id=871563
Fedora: patch committed
Upstream: patch sent to ML
VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link but maintain isolation. This feature brings support for network installs and network boot support for these environments.
GRUB some modules should just be built-in on power
https://bugzilla.redhat.com/show_bug.cgi?id=866559
Fedora: patch committed
Upstream: patch sent to ML
grub2 has a very modular design, which is very useful to keep the bootloader fast and small. However, size is less of a concern for power. And not having certain features guaranteed to be present (due to issues with the bootloader configuration) is a real concern in the field. This applies to both the rescue and regular grub modes.
Add ability to autoload grub2's config file when netbooting
https://bugzilla.redhat.com/show_bug.cgi?id=873406
Fedora: needs patch
Upstream: needs patch
Similar to yaboot and pxelinux, grub2 network boot needs to auto load a config file. A few things that we need to fix:
1. net_bootp must default to the network we loaded grub2 off. RIght now it seems to default to the last network card. We need to use the info in boot-device to find the correct interface.
2. We need to load a machine specific config file over tftp. The algorithm used by both yaboot and pxelinux can be found at: http://syslinux.zytor.com/pxe.php#config
Concerns
/boot and prep partition on different devices is problematic on grub2
We have seen many cases in which grub2 does not handle well when the prep and the /boot partitions are on separate disk. Some bugs were fixed on f17, but further testing is still required to make sure it works fine.
grub2 is not quite reliable when dealing with non-virtual devices, like sas, fc, iscsi.
Some issues were fixed on f17, but further testing is still required to make sure it works fine.
Running grub2-mkconfig should be enough to be able to boot an OS in a newly attached disk whithout messing up with current grub2 config. Idea: grub2 might be able to discover newly attached disks on the fly, without grub2-mkconfig, by probing OFW. A new menu entry would be created automagically. Needs further discussion (check OFW support).
grub2 on qemu/kvm
We have seen grub2 having issues booting on a qemu/kvm environment. Some issues were fixed, but further testing is still required to make sure it works fine.