Opened 8 years ago

Closed 5 years ago

Last modified 7 weeks ago

#13260 closed bug (fixed)

GPT: Formatting a volume kills BootMan menu entries

Reported by: pulkomandy Owned by: jessicah
Priority: normal Milestone: R1/beta2
Component: Partitioning Systems/GPT Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

I guess this is because 9ba5f87313016ee6534290a71e2b42bf5552593d will make GPT rewrite itself and erase parts of bootman data when doing so.

Either we should fix this, or disallow use of bootman on a GPT formatted disk. It seems they can work together, but maybe bootman does erase some parts of the GPT headers, we should check carefully (it uses some sectors after the MBR).

Steps to reproduce:

  • Initialize drive with GPT
  • Install Haiku to a partition
  • Install BootMan and add Haiku to menu
  • Make sure it works
  • Reformat another partition on the GPT volume
  • Reboot
  • Notice bootman menu is now empty.

I use GPT but am booting from BIOS for now, so I can't use an UEFI bootloader to select which OS to boot.

Change History (5)

comment:1 by pulkomandy, 8 years ago

Owner: changed from axeld to jessicah
Status: newassigned

comment:2 by jessicah, 8 years ago

You can't use the second sector. This is the GPT partition header. It is purely the fact that GPT requires a backup header at the end of the disk that you haven't hosed your partitioning table.

The layout of GPT partitions is:

Block 0: Protective MBR Block 1: GPT header Blocks 2 onwards: GPT partition entries (size determined by GPT header).

comment:3 by jessicah, 8 years ago

Perhaps in http://cgit.haiku-os.org/haiku/tree/src/apps/bootmanager/LegacyBootMenu.cpp#n188 we can test if the partitioning system is GPT and set fFirstOffset accordingly. This would prevent Boot Manager from being installed.

comment:4 by waddlesplash, 5 years ago

Resolution: fixed
Status: assignedclosed

Done in hrev53251.

comment:5 by nielx, 5 years ago

Milestone: UnscheduledR1/beta2

Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone

Note: See TracTickets for help on using tickets.