BUG: REL 9.0 - 'boot0cfg' fails with providers of non 512 byte sectorsize

rank1seeker at gmail.com rank1seeker at gmail.com
Tue Mar 27 19:03:40 UTC 2012


----- Original Message -----
From: John Baldwin <jhb at freebsd.org>
To: rank1seeker at gmail.com
Cc: hackers at freebsd.org
Date: Mon, 26 Mar 2012 16:29:58 -0400
Subject: Re: BUG: REL 9.0 - 'boot0cfg' fails with providers of non 512 byte sectorsize

> On Monday, March 26, 2012 2:02:53 pm rank1seeker at gmail.com wrote:
> > ----- Original Message -----
> > From: John Baldwin <jhb at freebsd.org>
> > To: freebsd-hackers at freebsd.org
> > Cc: rank1seeker at gmail.com, hackers at freebsd.org
> > Date: Mon, 26 Mar 2012 10:17:41 -0400
> > Subject: Re: BUG: REL 9.0 - 'boot0cfg' fails with providers of non 512 byte 
> sectorsize
> > 
> > > On Sunday, March 25, 2012 11:05:06 am rank1seeker at gmail.com wrote:
> > > > I've created a vnode image (md0) with sectorsizes of 8192 and 4096
> > > > 
> > > > After installing MBR's bootcode '/boot/boot0', in provider 'md0' I did:
> > > > # boot0cfg -o noupdate -m 0xc md0
> > > > boot0cfg: read /dev/md0: Invalid argument
> > > > # boot0cfg -v md0
> > > > boot0cfg: read /dev/md0: Invalid argument
> > > > 
> > > > If custom sectorsize isn't specifed(512 bytes), then both above CMDs 
> will 
> > > work.
> > > 
> > > MBR bootstraps (such as boot0) assume a 512 byte sector.  They won't boot 
> > > correctly on media with a different sector size.  So even if you "fixed" 
> > > boot0cfg, you wouldn't have a bootable system.
> > > 
> > > -- 
> > > John Baldwin
> > > 
> > 
> > 
> > Is it so?
> > This is also true for '/boot/mbr' file?
> 
> Yes.


So If in above image with custom sector size (4k for 4k HDD) with slices and bsdlabels and world + kernel
If I would 'dd' it to BIOS bassed PC and then power on, it wouldn't boot?!

> 
> > Well, majority of PC's are still BIOS bassed so MBR scheme is still around 
> and there are also now HDD's with 4b sector sizes and SSD's with 4b and 8k 
> sector sizes.
> > 
> > So how does things work in those cases, without GPT?
> 
> The BIOS still emulates 512 byte sectors.
> 

In above example sector has a size of 4k
MBR of 512 bytes is written to it, so there are empyt 3,5k of sector 0.
What happens upon power on?


Domagoj Smolčić



More information about the freebsd-hackers mailing list