efibootmgr -w overwrites existing unique MBR signature
Bug #1065261 reported by
Colin Watson
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
efibootmgr (Ubuntu) |
Fix Released
|
Critical
|
Colin Watson | ||
Quantal |
Fix Released
|
Critical
|
Colin Watson |
Bug Description
Kano reported on IRC that efibootmgr -w overwrites an existing unique MBR signature, and that this can break existing Windows installations. I had assumed that -w was "write unique MBR signature if that field is zero", but code inspection confirms that it's "write unique MBR signature no matter what".
However, I don't want to just drop -w; I'd much rather have the best of both worlds and leave existing signatures in place but also write a new signature if it's zero. My reading of the UEFI spec strongly encourages writing a signature; it notes for example that this field is always set by the OS, never by the firmware.
Changed in grub2 (Ubuntu Quantal): | |
status: | New → Triaged |
importance: | Undecided → Critical |
assignee: | nobody → Colin Watson (cjwatson) |
milestone: | none → ubuntu-12.10 |
To post a comment you must log in.
-w is consistently documented as "write unique sig to MBR *if needed*" (emphasis mine), and the original ChangeLog entry that introduced it said:
- Added test for non-zero signature on MBR-style disks,
and new -w flag to write a unique signature to the disk if so.
So I think this is an efibootmgr bug for failing to meet its own documentation, and since that documentation happens to describe a much more convenient behaviour, I'm going to fix efibootmgr rather than add some quite complex code to grub-install to parse the MBR.