Passaggio da grub proprietario a grub2 per gestire il boot di un sistema x86
- Nome: Peter Jones
Al momento Fedora usa sostanzialmente un fork di GRUB 0.9x, per varie ragioni storiche. Sarebbe bello potersi allineare con la versione di sviluppo, anche se si tratta di un progetto interamente nuovo.
Vantaggi per Fedora
Grub (proprietario) non è più supportato e le patches non vengono accettate. GRUB2 ha già raggiunto una release stabile (14 maggio 2011 GRUB 1.99), che Grub non ha mai conquistato.
What Currently Works
- MBR Bios booting as chainloaded from grub1 works
- Booting from the MBR works
- Graphics mode works
- You have to have freetype2-devel installed and build with --enable-mkfont
- Also had to grab the unifont from http://unifoundry.com/unifont.html
- Simple hacked up module to load a background image is okay. Could certainly be made better
- Creating /usr/local/etc/defaults/grub (would be /etc, but prefix=/usr/local) allowed me to set the following
- default timeout, default distro name, default to graphics mode
- some of this is lame and should get auto-detected (eg, parse /etc/system-release)
Things that still have to be tested/worked on
- EFI mode
- passwords -- Debian and Ubuntu are working on this upstream as of 8 July
- hidden menu support that we use for flicker-less boot
- serial terminal support (with the timeouts)
- Always adding single user entry is not so good -- set GRUB_DISABLE_LINUX_RECOVERY in /etc/default/grub
- Chainloading various versions of Windows
- Auto-detection of Windows and adding it to the config file
- Can we ship the unifont ?
- support for multiple initrds
- Also, as I had it "built", the font wasn't quite right
- Ensuring all the other features we have and care about are present (if someone wants to make a list of these, it would be helpful)
- Documentation, documentation, documentation...
External things that would need work
- anaconda needs to be able to create the new file. Or at least run grub-mkconf
- grubby to update. Or phase out for grub-updconf?
How To Test
It is very easy to test from Grub Legacy type environment, but we will also need to test from Anaconda/Firstinstall.
From an Installed System with Grub Legacy
This was adapted from http://en.gentoo-wiki.com/wiki/Grub2
The following will automatically generate a GRUB2 configuration file including kernels images within your /boot folder, using the auto configuration scripts in /etc/grub.d, the -o specifices an output file, here the default, /boot/grub2/grub.cfg:
grub2-mkconfig -o /boot/grub2/grub.cfg
Testing With Chain Loading
GRUB2 includes a boot image that's loadable from GRUB Legacy, so you can try it out without wiping out your existing, working MBR. To set up GRUB2 without actually writing to the MBR, run
grub2-install --grub-setup=/bin/true /dev/sda
Writing to the MBR
If that works, you can go on testing to writing to your MBR. Same steps as above, but don't tell grub to run the dummy setup program /bin/true
Congratulations! You've reached the point of no return! If you can't boot now you will need to run a rescue CD
From a DVD with Anaconda
TBD as things get fleshed out more
Test matrix here: https://fedoraproject.org/wiki/User:Pjones/Grub2TestMatrix
Ultimately, the main thing a user could change is the different config file (grub.cfg vs grub.conf) and the different syntax in the config file. During the normal boot process, the idea should be that it's not that noticeable
We'll have to be sure to update anaconda for the new config file format and also deal with things like grubby (which updates boot loader configs)
Keep using GRUB legacy
- The only docs right now are at the upstream site, but they're slim at best.
Fedora switched from grub legacy to grub2 in Fedora 16. Grub 2 allows better configuration options, better support for non x86 architectures, scripting and localization support. Grub 2 has new configuration format and and files. Please consult the grub manual for more information.