From Fedora Project Wiki
(Fixing and adding title of feature)
(delete content and use a redirect to the actual feature page)
 
Line 1: Line 1:
{{admon/important | Comments and Explanations | The page source contains comments providing guidance to fill out each section.  They are invisible when viewing this page.  To read it, choose the "edit" link.<br/> }}
#REDIRECT [[Features/Grub2]]
 
<!-- All fields on this form are required to be accepted by FESCo.
We also request that you maintain the same order of sections so that all of the feature pages are uniform.  -->
 
<!-- The actual name of your feature page should look something like: Features/YourFeatureName.  This keeps all features in the same namespace -->
 
= Use GRUB 2 as the default bootloader =
Switch to GRUB 2 for the default bootloader in Fedora 12 for new/clean installs
 
== Summary ==
Fedora (and Red Hat before it) have been maintaining a fork of GRUB Legacy (GNU GRUB 0.9x) because upstream switched to development of GRUB 2. Maintaining a single distro fork is unacceptable when Fedora's policy is to work with upstream.
 
== Owner ==
* Name: [[User:ngompa| Neal Gompa]]
 
* email: <ngompa13 {%} gmail {*} com>
 
== Current status ==
* Targeted release: [[Releases/12 | Fedora 12]]
* Last updated: July 10, 2009
* Percentage of completion: 0%
 
 
== Detailed Description ==
Back in 1996, GRUB development for GNU GRUB 0.9x basically stopped, and research & development began for GRUB 2. In 2009, with looming advent of a change in hard disks from 512 byte sectors to 4096 byte sectors by next year (which will mess up most existing boot loaders), and with Ubuntu even choosing to start testing for GRUB 2, Fedora should look into switching to GRUB 2 for new installs rather than GRUB Legacy
 
== Benefit to Fedora ==
GRUB 2 is being actively developed, so work from Fedora to fix bugs or improve GRUB 2 would be able to be pushed back upstream.
* Supports a wider array of filesystems to read from, in particular NTFS, ext4, and HFS+.
* Supports EFI GPT, standard PC, Macintosh, Amiga, Sun, and BSD partition maps
* Supports booting from PCs, Mac/PPC, SPARC, Mac/x86, OLPC/x86, and coreboot/x86.
* Supports chainloading, linux, multiboot, and BSD boot on PCs, and linux on Macs.
* Graphical menu support is available along with UTF-8.
* Supports command history in normal mode
* It is modular and supports module loading
* It is scriptable
 
== Scope ==
The work needed to make this feature ready for Fedora 12 release will depend on initial testing.
 
== How To Test ==
<!-- This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.
 
Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.
 
A good "how to test" should answer these four questions:
 
0. What special hardware / data / etc. is needed (if any)?
1. How do I prepare my system to test this feature? What packages
need to be installed, config files edited, etc.?
2. What specific actions do I perform to check that the feature is
working like it's supposed to?
3. What are the expected results of those actions?
-->
 
GRUB 2 needs to be tested on regular PCs both 32-bit and 64-bit, as well as Mac/PPC and Mac/Intel computers.
 
To test for this feature initially, no packages really need to be installed. This initial testing is done to determine the scope of work needed to get this feature ready for Fedora 12.
 
Here are the steps for initial testing:
 
1. Grab the source code and compile it. Make note of the revision.
Note: There are two branches of the source code that Fedora should test, with the expectation of them to be merged soon.
 
Branch 1: GRUB 2 mainline
To grab GRUB 2 mainline source code, run:
 
<code>
svn co svn://svn.savannah.gnu.org/grub/grub2/
</code>
 
Branch 2: GRUB 2 + gfxmenu (Similar to mainline, except includes graphical menu)
To grab GRUB 2 + gfxmenu source code, run:
 
<code>
bzr branch http://grub.gibibit.com/bzr/gfxmenu
</code>
 
2. Install it
 
The core image of GRUB 2 is also a Multiboot kernel, so you can load GRUB 2 by GRUB Legacy:
 
<code>
grub> root (hd0,0)
</code>
 
<code>
grub> kernel /boot/grub/core.img
</code>
 
<code>
grub> boot
</code>
 
You can generate core.img with grub-install (GRUB 2) by following way:
 
<code>
grub-install --grub-setup=/bin/true /dev/sda
</code>
Change /dev/sda to match your device.
 
 
Note: This will not install GRUB 2 (core.img) to your MBR. Instead it executes /bin/true for installation which does not do the actual installation. It will prepare core.img and copy necessary files to /boot/grub folder.
 
After this you can use grub-mkconfig (or it's alias update-grub) to generate /boot/grub/grub.cfg.
 
<code>
grub-mkconfig -o /boot/grub/grub.cfg
</code>
 
If you built from the gfxmenu branch, then set up a theme to use.
 
Grab some pre-made themes at [http://grub.gibibit.com/Themes| http://grub.gibibit.com/Themes]
 
{{admon/important | Very Important Note | The method of testing is subject to change depending on correctness of the procedure.<br/> }}
 
 
 
== User Experience ==
If the regular GRUB mainline branch is used, users should expect a very similar experience to using GRUB Legacy.
If the GRUB branch that includes the gfxmenu code is used, then either a similar experience to using GRUB Legacy or a new experience with themes used could be expected.
 
Examples of themes are at [http://grub.gibibit.com/Themes| http://grub.gibibit.com/Themes]
 
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
 
As far as I can tell, none, insofar RPMs. However, I would like to see the gfxmenu code used in GRUB 2 for Fedora. Colin D. Bennett, the writer of the gfxmenu code, hopes that within the next few weeks, the code would be merged into the mainline.
 
== Contingency Plan ==
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
 
None necessary, if this falls through, then revert to using GRUB Legacy.
 
== Documentation ==
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
 
* [http://grub.enbug.org/| GRUB 2 Wiki]
* [http://grub.gibibit.com/Themes| GRUB 2 gfxmenu themes]
* [http://grub.gibibit.com/Theme_format| GRUB 2 gfxmenu theme creation manual]
 
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
 
* Fedora now uses GRUB 2 for clean installs. With GRUB 2, there have been changes in how to configure GRUB. For more information, look at [http://grub.enbug.org/| the GRUB Wiki]
 
== Comments and Discussion ==
* See [[Talk:Features/UseGRUB2]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
 
 
[[Category:FeaturePageIncomplete]]
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
 
 
<!-- Note that the current Feature guidelines require useful Scope and Test Plans at certain milestones; QA is responsible for checking these, and will change this category as needed. -->

Latest revision as of 13:21, 26 August 2009

Redirect to: