[PATCH 2/5] filetype: add GPT support

Johannes Stezenbach js at sig21.net
Fri Feb 15 02:43:32 EST 2013


On Thu, Feb 14, 2013 at 11:08:55PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 20:17 Thu 14 Feb     , Sascha Hauer wrote:
> > On Thu, Feb 14, 2013 at 06:05:07PM +0100, Johannes Stezenbach wrote:
> > > On Thu, Feb 14, 2013 at 05:53:23PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > > On 17:36 Thu 14 Feb     , Sascha Hauer wrote:
> > > > > On Thu, Feb 14, 2013 at 04:52:24PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > > > > GPT need to be check before MBR
...
> > > > > > +	if (bufsize >= 520 && strncmp(&buf8[512], "EFI PART", 8) == 0)
> > > > > > +		return filetype_gpt;
> > > > > > +
> > > > > 
> > > > > The list is sorted by size, so please move this below:
> > > > on purpose
> > > > 
> > > > EFI need to be detect before mbr
> > > 
> > > IMHO the check is too simple, it will give false positive if
> > > GPT is replaced by DOS MBR and not zeroed out.  Need to check
> > > for protective MBR.
> > 
> > So is_fat_or_mbr() should test if the MBR is a protective MBR and return
> > false in this case?
> 
> no as the efi is more I do the check in efi.c protective bit and right type
> 
> I move the code to filetype
> 
> but efi need to be before MBR as you could have both for retro compatibility

Yes, Wikipedia says Apple Bootcamp creates hybrid MBR.
But if you run fdisk to create DOS MBR it will only
replace the first sector and leave the GPT alone.
Thus I think for usability it is important to check MBR
(for 0xAA55 marker and one of the part types must be 0xee).

Johannes



More information about the barebox mailing list