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

John Baldwin jhb at freebsd.org
Tue Mar 27 21:23:48 UTC 2012


On Tuesday, March 27, 2012 3:03:37 pm rank1seeker at gmail.com wrote:
> ----- 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?!

It would load the first sector fine (i.e. BIOS would read first 512 bytes off
the disk and start executing it), but it would not be able to properly parse
the MBR table layout so it would probably blow up when it tried to find boot1
to boot it, yes.

-- 
John Baldwin


More information about the freebsd-hackers mailing list