KarmicGrub2

Differences between revisions 1 and 2
Revision 1 as of 2009-06-11 12:31:14
Size: 5222
Editor: 82-69-40-219
Comment: start
Revision 2 as of 2009-06-11 14:49:57
Size: 4631
Editor: 82-69-40-219
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:

This should provide an overview of the issue/functionality/change proposed here. Focus here on what will actually be DONE, summarising that so that other people don't have to read the whole spec. See also CategorySpec for examples.
Line 30: Line 28:
You can have subsections that better describe specific parts of the issue. By and large, GRUB 2 appears to be in a reasonably good state now, after a long period when we were unable to seriously contemplate a switch. There are some things to fix, of course, but for the most part these look tractable. The kernel team did extensive [[KernelTeam/Grub2Testing|testing]], which suggests a strong performance.
Line 34: Line 32:
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like: === Unsorted BoF dump ===
Line 36: Line 34:
=== UI Changes === {{{
* Some minor issues to fix, e.g. tidy up config updates
Line 38: Line 37:
Should cover changes required to the UI, or specific UI that is required to implement this  * LVM:
    - currently grub cannot boot from /boot for LVM, needs to use lilo.
    - check if grub2 can boot /boot LVM - and hence remove the need for the lilo on ISO
Line 40: Line 41:
=== Code Changes ===  * xfs: grub2 was known to have race condition installing grub - check racy code is now fixed
Line 42: Line 43:
Code changes should include an overview of what needs to change, and in some cases even the specific details.  * grub2 EFI/UEFI
   Mac and x86 PC with EFI support needs checking
   need to check EFI bootloaders on x86 H/W when we get the hardware
  
* PPC OpenFirmware?

* Modifying the default boot options (e.g. default OS to boot and timeouts) once booted to change bootup next time around:

  legacy grub has grub-reboot and grub-set-default to change boot. Can this be achieved in grub2? grub2 seems to
  provide ability to do this but had different commands to do this.

  e.g. for reboot - show menu, for failed kernels

  grub-reboot
    - for single shot mode - do once, go back to default mode thereafter
  grub-set-default
    - e.g. for last good boot

* Boot key
  user holds key - e.g. press shift shows menu, otherwise just continue boot process
  Make sure we use different key in grub2 from that in usplash:
    grub 1 - timeout and escape
    grub 2 - shift, alt, control, (should not use alt, Apple Macs)
          make sure grub2 uses shift to get into grub2 menu
    usplash - use a different key

* Older Hardware:

 - grub2 - test on Certification Farm
 - xubuntu - ask community to test as they probably have more legacy Hardware
 - debian
 - get community to test https://wiki.ubuntu.com/KernelTeam/Grub2Testing
}}}
Line 46: Line 79:
Include:
 * data migration, if any
 * redirects from old URLs to new ones, if any
 * how users will be pointed to the new way of doing things, if necessary.

== Test/Demo Plan ==

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

== Unresolved issues ==

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

== BoF agenda and discussion ==
Line 64: Line 80:
Capture of meeting discussion 27/05/2009 12:00-13:00 UDS Barcelona

* Some minor issues to fix, e.g. tidy up config updates
Line 91: Line 103:
  * purge process of grub1 removes menu.list - this is an issue that needs fixing.   * purge process of grub1 removes menu.lst - this is an issue that needs fixing.
Line 93: Line 105:
     make sure post rm is removed from grub      make sure postrm is removed from grub
Line 95: Line 107:
     use breaks to stop clobbering of menu.list on purge      use breaks to stop clobbering of menu.lst on purge
}}}
Line 97: Line 110:
 * LVM:
    - currently grub cannot boot from /boot for LVM, needs to use lilo.
    - check if grub2 can boot /boot LVM - and hence remove the need for the lilo on ISO
== Test/Demo Plan ==
Line 101: Line 112:
 * xfs: grub2 was known to have race condition installing grub - check racy code is now fixed It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.
Line 103: Line 114:
 * grub2 EFI/UEFI
   Mac and x86 PC with EFI support needs checking
   need to check EFI bootloaders on x86 H/W when we get the hardware
  
* PPC OpenFirmware?
This need not be added or completed until the specification is nearing beta.
Line 109: Line 116:
* Modifying the default boot options (e.g. default OS to boot and timeouts) once booted to change bootup next time around: == Unresolved issues ==
Line 111: Line 118:
  legacy grub has grub-reboot and grub-setdefault to change boot. Can this be achieved in grub2? grub2 seems to
  provide ability to do this but had different commands to do this.

  e.g. for reboot - show menu, for failed kernels

  grub-reboot
    - for single shot mode - do once, go back to default mode thereafter
  grub-setdefault
    - e.g. for last good boot

* Boot key
  user holds key - e.g. press shift shows menu, otherwise just continue boot process
  Make sure we use different key in grub2 from that in usplash:
    grub 1 - timeout and escape
    grub 2 - shift, alt, control, (should not use alt, Apple Macs)
          make sure grub2 uses shift to get into grub2 menu
    usplash - use a different key

* Older Hardware:

 - grub2 - test on Certification Farm
 - xubuntu - ask community to test as they probably have more legacy Hardware
 - debian
 - get community to test https://wiki.ubuntu.com/KernelTeam/Grub2Testing
}}}
This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

Summary

Move to GRUB 2 as the default boot loader.

Release Note

This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.

Rationale

This should cover the _why_: why is this change being proposed, what justifies it, where we see this justified.

User stories

Assumptions

Design

By and large, GRUB 2 appears to be in a reasonably good state now, after a long period when we were unable to seriously contemplate a switch. There are some things to fix, of course, but for the most part these look tractable. The kernel team did extensive testing, which suggests a strong performance.

Implementation

Unsorted BoF dump

* Some minor issues to fix, e.g. tidy up config updates

 * LVM:
    - currently grub cannot boot from /boot for LVM, needs to use lilo.
    - check if grub2 can boot /boot LVM - and hence remove the need for the lilo on ISO 

 * xfs:  grub2 was known to have race condition installing grub - check racy code is now fixed

 * grub2 EFI/UEFI 
   Mac and x86 PC with EFI support needs checking
   need to check EFI bootloaders on x86 H/W when we get the hardware
  
* PPC OpenFirmware?

* Modifying the default boot options (e.g. default OS to boot and timeouts) once booted to change bootup next time around:

  legacy grub has grub-reboot and grub-set-default to change boot. Can this be achieved in grub2?  grub2 seems to
  provide ability to do this but had different commands to do this.

  e.g. for reboot - show menu, for failed kernels

  grub-reboot
    - for single shot mode - do once, go back to default mode thereafter
  grub-set-default
    - e.g. for last good boot

* Boot key
  user holds key - e.g. press shift shows menu, otherwise just continue boot process
  Make sure we use different key in grub2 from that in usplash:
    grub 1 - timeout and escape
    grub 2 - shift, alt, control, (should not use alt, Apple Macs)
          make sure grub2 uses shift to get into grub2 menu
    usplash - use a different key

* Older Hardware:

 - grub2 - test on Certification Farm
 - xubuntu - ask community to test as they probably have more legacy Hardware
 - debian
 - get community to test https://wiki.ubuntu.com/KernelTeam/Grub2Testing

Migration

* grub1 -> grub2 upgrade

 Go for chainloading grub2 in the upgrade
 Grub 2 for new installation
 Karmic +1 to drop grub 1?

 Make update-grub only update grub2 

 Do automatic change to grub 2:

   - detect chainloaded from grub 1
   - then install grub 2 
        change menu.lst in grub 1 - with zero timeout and chainload grub2

    leave stage1.5 (don't scrub it)
    - grub loads grub stage 1.5 (in 32K start of partition)
    - then loads grub stage 2 from fs
    - then chainloads grub2 (2nd stage)

    Note: do not remove grub stage1.5 + stage2

   - device map (hdX,Y) may not 100% correct on some systems

  * purge process of grub1 removes menu.lst - this is an issue that needs fixing.
   - dependency issues:
     make sure postrm is removed from grub
     grub-pc replaces grub
     use breaks to stop clobbering of menu.lst on purge

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

See also

Previous (misnamed) specification in this series: FoundationsTeam/Specs/Grub2ByDefault

Kernel team testing page


CategorySpec

FoundationsTeam/Specs/KarmicGrub2 (last edited 2009-09-04 18:13:16 by 82-69-40-219)